From 0a7b656af6ac5c70a408abb082f95ecd51ee8bd0 Mon Sep 17 00:00:00 2001 From: christ66 Date: Fri, 16 Sep 2016 21:41:12 -0700 Subject: [PATCH 0001/1763] [JENKINS-34855] Make atomic file write more atomic by using JDK 7 apis. --- .../java/hudson/util/AtomicFileWriter.java | 45 +++++++++++++------ 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index f49d4b9ff5..e789fb9faa 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -32,6 +32,12 @@ import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.OpenOption; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.nio.file.attribute.BasicFileAttributes; +import java.nio.file.attribute.FileAttribute; /** * Buffered {@link FileWriter} that supports atomic operations. @@ -45,8 +51,8 @@ import java.nio.charset.Charset; public class AtomicFileWriter extends Writer { private final Writer core; - private final File tmpFile; - private final File destFile; + private final Path tmpFile; + private final Path destFile; /** * Writes with UTF-8 encoding. @@ -60,17 +66,17 @@ public class AtomicFileWriter extends Writer { * File encoding to write. If null, platform default encoding is chosen. */ public AtomicFileWriter(File f, String encoding) throws IOException { - File dir = f.getParentFile(); + Path dir = f.toPath().getParent(); try { - dir.mkdirs(); - tmpFile = File.createTempFile("atomic",null, dir); + Files.createDirectories(dir); + tmpFile = Files.createTempFile(dir, "atomic", null, (FileAttribute) null); } catch (IOException e) { throw new IOException("Failed to create a temporary file in "+ dir,e); } - destFile = f; + destFile = f.toPath(); if (encoding==null) encoding = Charset.defaultCharset().name(); - core = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(tmpFile),encoding)); + core = Files.newBufferedWriter(tmpFile, Charset.forName(encoding), StandardOpenOption.SYNC); } @Override @@ -103,34 +109,47 @@ public class AtomicFileWriter extends Writer { */ public void abort() throws IOException { close(); - tmpFile.delete(); + Files.deleteIfExists(tmpFile); } public void commit() throws IOException { close(); - if (destFile.exists()) { + if (Files.exists(destFile)) { try { - Util.deleteFile(destFile); + Files.delete(tmpFile); // First try with NIO. + Util.deleteFile(destFile.toFile()); // Then try with the util method. } catch (IOException x) { - tmpFile.delete(); + Files.delete(tmpFile); throw x; } } - tmpFile.renameTo(destFile); + Files.move(tmpFile, destFile, null); } @Override protected void finalize() throws Throwable { // one way or the other, temporary file should be deleted. close(); - tmpFile.delete(); + Files.deleteIfExists(tmpFile); } /** * Until the data is committed, this file captures * the written content. + * + * @deprecated Use getTemporaryPath() for JDK 7+ */ + @Deprecated public File getTemporaryFile() { + return tmpFile.toFile(); + } + + /** + * Until the data is committed, this file captures + * the written content. + * + */ + public Path getTemporaryPath() { return tmpFile; } } -- GitLab From f9f10adf259851e1d90e5fe4833b871bdefa840f Mon Sep 17 00:00:00 2001 From: christ66 Date: Sat, 17 Sep 2016 00:11:30 -0700 Subject: [PATCH 0002/1763] Perform ATOMIC_MOVE when copying the file. If we are unable to perform the ATOMIC_MOVE operation then we fallback to an operation which is supported by all OSes. Create constructor for charsets. Delete tempdir instead of destdir. --- .../java/hudson/util/AtomicFileWriter.java | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index e789fb9faa..31cb18901c 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -32,9 +32,12 @@ import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.nio.charset.Charset; +import java.nio.file.AtomicMoveNotSupportedException; +import java.nio.file.CopyOption; import java.nio.file.Files; import java.nio.file.OpenOption; import java.nio.file.Path; +import java.nio.file.StandardCopyOption; import java.nio.file.StandardOpenOption; import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.FileAttribute; @@ -64,8 +67,18 @@ public class AtomicFileWriter extends Writer { /** * @param encoding * File encoding to write. If null, platform default encoding is chosen. + * + * @deprecated Use AtomicFileWriter */ public AtomicFileWriter(File f, String encoding) throws IOException { + this(f, Charset.forName(encoding)); + } + + /** + * @param charset + * File charset to write. If null, platform default encoding is chosen. + */ + public AtomicFileWriter(File f, Charset charset) throws IOException { Path dir = f.toPath().getParent(); try { Files.createDirectories(dir); @@ -74,9 +87,9 @@ public class AtomicFileWriter extends Writer { throw new IOException("Failed to create a temporary file in "+ dir,e); } destFile = f.toPath(); - if (encoding==null) - encoding = Charset.defaultCharset().name(); - core = Files.newBufferedWriter(tmpFile, Charset.forName(encoding), StandardOpenOption.SYNC); + if (charset==null) + charset = Charset.defaultCharset(); + core = Files.newBufferedWriter(tmpFile, charset, StandardOpenOption.SYNC); } @Override @@ -116,14 +129,20 @@ public class AtomicFileWriter extends Writer { close(); if (Files.exists(destFile)) { try { - Files.delete(tmpFile); // First try with NIO. - Util.deleteFile(destFile.toFile()); // Then try with the util method. + Util.deleteFile(tmpFile.toFile()); } catch (IOException x) { Files.delete(tmpFile); throw x; } } - Files.move(tmpFile, destFile, null); + try { + // Try to make an atomic move. + Files.move(tmpFile, destFile, StandardCopyOption.ATOMIC_MOVE); + } catch (IOException e) { + // If it falls here that means that Atomic move is not supported by the OS. + // In this case we need to fall-back to a copy option which is supported by all OSes. + Files.move(tmpFile, destFile, StandardCopyOption.REPLACE_EXISTING); + } } @Override -- GitLab From c960c75c86025b778a8a17397d6770f92a6fdf28 Mon Sep 17 00:00:00 2001 From: christ66 Date: Sat, 17 Sep 2016 00:27:29 -0700 Subject: [PATCH 0003/1763] Finish javadoc deprecated statement. --- core/src/main/java/hudson/util/AtomicFileWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index 31cb18901c..0e0c6f4cd2 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -68,7 +68,7 @@ public class AtomicFileWriter extends Writer { * @param encoding * File encoding to write. If null, platform default encoding is chosen. * - * @deprecated Use AtomicFileWriter + * @deprecated Use {@link #AtomicFileWriter(File, Charset)} */ public AtomicFileWriter(File f, String encoding) throws IOException { this(f, Charset.forName(encoding)); -- GitLab From 88a6f76c1ba6272ccb169703643b42cebeabe193 Mon Sep 17 00:00:00 2001 From: christ66 Date: Sat, 17 Sep 2016 10:09:22 -0700 Subject: [PATCH 0004/1763] Commit should not perform a delete as it is already performing a move. Add suffix to create temp file. --- core/src/main/java/hudson/util/AtomicFileWriter.java | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index 0e0c6f4cd2..f6d58c5295 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -82,7 +82,7 @@ public class AtomicFileWriter extends Writer { Path dir = f.toPath().getParent(); try { Files.createDirectories(dir); - tmpFile = Files.createTempFile(dir, "atomic", null, (FileAttribute) null); + tmpFile = Files.createTempFile(dir, "atomic", "tmp"); } catch (IOException e) { throw new IOException("Failed to create a temporary file in "+ dir,e); } @@ -127,14 +127,6 @@ public class AtomicFileWriter extends Writer { public void commit() throws IOException { close(); - if (Files.exists(destFile)) { - try { - Util.deleteFile(tmpFile.toFile()); - } catch (IOException x) { - Files.delete(tmpFile); - throw x; - } - } try { // Try to make an atomic move. Files.move(tmpFile, destFile, StandardCopyOption.ATOMIC_MOVE); -- GitLab From 8434afc25036dc9105ac67dcb486181716fca7a8 Mon Sep 17 00:00:00 2001 From: christ66 Date: Sat, 17 Sep 2016 11:56:22 -0700 Subject: [PATCH 0005/1763] Add unit test for atomic file writer. --- .../hudson/util/AtomicFileWriterTest.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 core/src/test/java/hudson/util/AtomicFileWriterTest.java diff --git a/core/src/test/java/hudson/util/AtomicFileWriterTest.java b/core/src/test/java/hudson/util/AtomicFileWriterTest.java new file mode 100644 index 0000000000..ba8e22ae2a --- /dev/null +++ b/core/src/test/java/hudson/util/AtomicFileWriterTest.java @@ -0,0 +1,75 @@ +package hudson.util; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; + +import static org.junit.Assert.*; + +public class AtomicFileWriterTest { + File af; + AtomicFileWriter afw; + String expectedContent = "hello world"; + + + @Before + public void setUp() throws IOException { + af = File.createTempFile("AtomicFileWriter", ".tmp"); + afw = new AtomicFileWriter(af, Charset.defaultCharset()); + } + + @After + public void tearDown() throws IOException { + Files.deleteIfExists(af.toPath()); + Files.deleteIfExists(afw.getTemporaryPath()); + } + + @Test + public void createFile() throws Exception { + // Verify the file we created exists + assertTrue(Files.exists(afw.getTemporaryPath())); + } + + @Test + public void writeToAtomicFile() throws Exception { + // Given + afw.write(expectedContent, 0, expectedContent.length()); + + // When + afw.flush(); + + // Then + assertTrue("File writer did not properly flush to temporary file", + Files.size(afw.getTemporaryPath()) == expectedContent.length()); + } + + @Test + public void commitToFile() throws Exception { + // Given + afw.write(expectedContent, 0, expectedContent.length()); + + // When + afw.commit(); + + // Then + System.err.println(Files.size(af.toPath())); + assertTrue(Files.size(af.toPath()) == expectedContent.length()); + } + + @Test + public void abortDeletesTmpFile() throws Exception { + // Given + afw.write(expectedContent, 0, expectedContent.length()); + + // When + afw.abort(); + + // Then + assertTrue(Files.notExists(afw.getTemporaryPath())); + } +} \ No newline at end of file -- GitLab From f8c9c04ce44b1aff89bd2af09c7a0b3ec1b18ed5 Mon Sep 17 00:00:00 2001 From: christ66 Date: Sun, 18 Sep 2016 09:35:50 -0700 Subject: [PATCH 0006/1763] Fix javadocs. --- core/src/main/java/hudson/util/AtomicFileWriter.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index f6d58c5295..89d5a0b14c 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -65,8 +65,7 @@ public class AtomicFileWriter extends Writer { } /** - * @param encoding - * File encoding to write. If null, platform default encoding is chosen. + * @param encoding File encoding to write. If null, platform default encoding is chosen. * * @deprecated Use {@link #AtomicFileWriter(File, Charset)} */ @@ -75,8 +74,7 @@ public class AtomicFileWriter extends Writer { } /** - * @param charset - * File charset to write. If null, platform default encoding is chosen. + * @param charset File charset to write. If null, platform default encoding is chosen. */ public AtomicFileWriter(File f, Charset charset) throws IOException { Path dir = f.toPath().getParent(); -- GitLab From 8d64ff51a95b53f1a56922906e13aef8f279d512 Mon Sep 17 00:00:00 2001 From: christ66 Date: Sun, 18 Sep 2016 09:42:37 -0700 Subject: [PATCH 0007/1763] Do not create the directory if it already exists. --- core/src/main/java/hudson/util/AtomicFileWriter.java | 4 +++- core/src/test/java/hudson/util/AtomicFileWriterTest.java | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index 89d5a0b14c..eeaac35e09 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -79,7 +79,9 @@ public class AtomicFileWriter extends Writer { public AtomicFileWriter(File f, Charset charset) throws IOException { Path dir = f.toPath().getParent(); try { - Files.createDirectories(dir); + if (Files.notExists(dir)) { + Files.createDirectories(dir); + } tmpFile = Files.createTempFile(dir, "atomic", "tmp"); } catch (IOException e) { throw new IOException("Failed to create a temporary file in "+ dir,e); diff --git a/core/src/test/java/hudson/util/AtomicFileWriterTest.java b/core/src/test/java/hudson/util/AtomicFileWriterTest.java index ba8e22ae2a..6eb881d5ab 100644 --- a/core/src/test/java/hudson/util/AtomicFileWriterTest.java +++ b/core/src/test/java/hudson/util/AtomicFileWriterTest.java @@ -57,7 +57,6 @@ public class AtomicFileWriterTest { afw.commit(); // Then - System.err.println(Files.size(af.toPath())); assertTrue(Files.size(af.toPath()) == expectedContent.length()); } -- GitLab From 5d40c78e5f811e35f5aa18c4d611579335955f14 Mon Sep 17 00:00:00 2001 From: christ66 Date: Thu, 22 Sep 2016 14:17:16 -0400 Subject: [PATCH 0008/1763] Move destFile initiation to top. --- core/src/main/java/hudson/util/AtomicFileWriter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index eeaac35e09..6076d43904 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -77,7 +77,8 @@ public class AtomicFileWriter extends Writer { * @param charset File charset to write. If null, platform default encoding is chosen. */ public AtomicFileWriter(File f, Charset charset) throws IOException { - Path dir = f.toPath().getParent(); + destFile = f.toPath(); + Path dir = destFile.getParent(); try { if (Files.notExists(dir)) { Files.createDirectories(dir); @@ -86,7 +87,6 @@ public class AtomicFileWriter extends Writer { } catch (IOException e) { throw new IOException("Failed to create a temporary file in "+ dir,e); } - destFile = f.toPath(); if (charset==null) charset = Charset.defaultCharset(); core = Files.newBufferedWriter(tmpFile, charset, StandardOpenOption.SYNC); -- GitLab From e98d8002d8ce1646d00be54d82d2489cb549d354 Mon Sep 17 00:00:00 2001 From: christ66 Date: Thu, 22 Sep 2016 14:19:43 -0400 Subject: [PATCH 0009/1763] Only catch AtomicMoveNotSupportedException. --- core/src/main/java/hudson/util/AtomicFileWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index 6076d43904..5ce2cff032 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -130,7 +130,7 @@ public class AtomicFileWriter extends Writer { try { // Try to make an atomic move. Files.move(tmpFile, destFile, StandardCopyOption.ATOMIC_MOVE); - } catch (IOException e) { + } catch (AtomicMoveNotSupportedException e) { // If it falls here that means that Atomic move is not supported by the OS. // In this case we need to fall-back to a copy option which is supported by all OSes. Files.move(tmpFile, destFile, StandardCopyOption.REPLACE_EXISTING); -- GitLab From 2df07337ed4ca894c85f2bd90da9f1e1290f8439 Mon Sep 17 00:00:00 2001 From: christ66 Date: Thu, 22 Sep 2016 14:30:39 -0400 Subject: [PATCH 0010/1763] Use temporary file, and assertEquals in tests. --- .../java/hudson/util/AtomicFileWriterTest.java | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/core/src/test/java/hudson/util/AtomicFileWriterTest.java b/core/src/test/java/hudson/util/AtomicFileWriterTest.java index 6eb881d5ab..49fd588a53 100644 --- a/core/src/test/java/hudson/util/AtomicFileWriterTest.java +++ b/core/src/test/java/hudson/util/AtomicFileWriterTest.java @@ -2,7 +2,9 @@ package hudson.util; import org.junit.After; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import java.io.File; import java.io.IOException; @@ -15,20 +17,15 @@ public class AtomicFileWriterTest { File af; AtomicFileWriter afw; String expectedContent = "hello world"; + @Rule public TemporaryFolder tmp = new TemporaryFolder(); @Before public void setUp() throws IOException { - af = File.createTempFile("AtomicFileWriter", ".tmp"); + af = tmp.newFile(); afw = new AtomicFileWriter(af, Charset.defaultCharset()); } - @After - public void tearDown() throws IOException { - Files.deleteIfExists(af.toPath()); - Files.deleteIfExists(afw.getTemporaryPath()); - } - @Test public void createFile() throws Exception { // Verify the file we created exists @@ -44,8 +41,8 @@ public class AtomicFileWriterTest { afw.flush(); // Then - assertTrue("File writer did not properly flush to temporary file", - Files.size(afw.getTemporaryPath()) == expectedContent.length()); + assertEquals("File writer did not properly flush to temporary file", + expectedContent.length(), Files.size(afw.getTemporaryPath())); } @Test @@ -57,7 +54,7 @@ public class AtomicFileWriterTest { afw.commit(); // Then - assertTrue(Files.size(af.toPath()) == expectedContent.length()); + assertEquals(expectedContent.length(), Files.size(af.toPath())); } @Test -- GitLab From a1fae1cc1fd2670269e8ee94e89e3c6c0e05b580 Mon Sep 17 00:00:00 2001 From: David Rutqvist Date: Sun, 9 Oct 2016 15:29:03 +0200 Subject: [PATCH 0011/1763] Made autocomplete for new job case-insensitive --- .../main/java/hudson/model/AutoCompletionCandidates.java | 8 +++++--- core/src/main/java/hudson/model/ComputerSet.java | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/model/AutoCompletionCandidates.java b/core/src/main/java/hudson/model/AutoCompletionCandidates.java index 0373b552bb..719b050a76 100644 --- a/core/src/main/java/hudson/model/AutoCompletionCandidates.java +++ b/core/src/main/java/hudson/model/AutoCompletionCandidates.java @@ -118,16 +118,18 @@ public class AutoCompletionCandidates implements HttpResponse { @Override public void onItem(Item i) { String n = contextualNameOf(i); - if ((n.startsWith(value) || value.startsWith(n)) + String lowerCaseN = n.toLowerCase(); + String lowerCaseValue = value.toLowerCase(); + if ((lowerCaseN.startsWith(lowerCaseValue) || lowerCaseValue.startsWith(lowerCaseN)) // 'foobar' is a valid candidate if the current value is 'foo'. // Also, we need to visit 'foo' if the current value is 'foo/bar' - && (value.length()>n.length() || !n.substring(value.length()).contains("/")) + && (lowerCaseValue.length()>lowerCaseN.length() || !lowerCaseN.substring(lowerCaseValue.length()).contains("/")) // but 'foobar/zot' isn't if the current value is 'foo' // we'll first show 'foobar' and then wait for the user to type '/' to show the rest && i.hasPermission(Item.READ) // and read permission required ) { - if (type.isInstance(i) && n.startsWith(value)) + if (type.isInstance(i) && lowerCaseN.startsWith(lowerCaseValue)) candidates.add(n); // recurse diff --git a/core/src/main/java/hudson/model/ComputerSet.java b/core/src/main/java/hudson/model/ComputerSet.java index 89ed31f289..6e7e0af9df 100644 --- a/core/src/main/java/hudson/model/ComputerSet.java +++ b/core/src/main/java/hudson/model/ComputerSet.java @@ -388,7 +388,7 @@ public final class ComputerSet extends AbstractModelObject implements Describabl final AutoCompletionCandidates r = new AutoCompletionCandidates(); for (Node n : Jenkins.getInstance().getNodes()) { - if (n.getNodeName().startsWith(value)) + if (n.getNodeName().toLowerCase().contains(value.toLowerCase())) r.add(n.getNodeName()); } -- GitLab From c8f5dcf21feae1bc6b1b9f6364480c90bf73a08e Mon Sep 17 00:00:00 2001 From: David Rutqvist Date: Tue, 11 Oct 2016 16:03:10 +0200 Subject: [PATCH 0012/1763] Revert "Made autocomplete for new job case-insensitive" This reverts commit a1fae1cc1fd2670269e8ee94e89e3c6c0e05b580. --- .../main/java/hudson/model/AutoCompletionCandidates.java | 8 +++----- core/src/main/java/hudson/model/ComputerSet.java | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/hudson/model/AutoCompletionCandidates.java b/core/src/main/java/hudson/model/AutoCompletionCandidates.java index 719b050a76..0373b552bb 100644 --- a/core/src/main/java/hudson/model/AutoCompletionCandidates.java +++ b/core/src/main/java/hudson/model/AutoCompletionCandidates.java @@ -118,18 +118,16 @@ public class AutoCompletionCandidates implements HttpResponse { @Override public void onItem(Item i) { String n = contextualNameOf(i); - String lowerCaseN = n.toLowerCase(); - String lowerCaseValue = value.toLowerCase(); - if ((lowerCaseN.startsWith(lowerCaseValue) || lowerCaseValue.startsWith(lowerCaseN)) + if ((n.startsWith(value) || value.startsWith(n)) // 'foobar' is a valid candidate if the current value is 'foo'. // Also, we need to visit 'foo' if the current value is 'foo/bar' - && (lowerCaseValue.length()>lowerCaseN.length() || !lowerCaseN.substring(lowerCaseValue.length()).contains("/")) + && (value.length()>n.length() || !n.substring(value.length()).contains("/")) // but 'foobar/zot' isn't if the current value is 'foo' // we'll first show 'foobar' and then wait for the user to type '/' to show the rest && i.hasPermission(Item.READ) // and read permission required ) { - if (type.isInstance(i) && lowerCaseN.startsWith(lowerCaseValue)) + if (type.isInstance(i) && n.startsWith(value)) candidates.add(n); // recurse diff --git a/core/src/main/java/hudson/model/ComputerSet.java b/core/src/main/java/hudson/model/ComputerSet.java index 6e7e0af9df..89ed31f289 100644 --- a/core/src/main/java/hudson/model/ComputerSet.java +++ b/core/src/main/java/hudson/model/ComputerSet.java @@ -388,7 +388,7 @@ public final class ComputerSet extends AbstractModelObject implements Describabl final AutoCompletionCandidates r = new AutoCompletionCandidates(); for (Node n : Jenkins.getInstance().getNodes()) { - if (n.getNodeName().toLowerCase().contains(value.toLowerCase())) + if (n.getNodeName().startsWith(value)) r.add(n.getNodeName()); } -- GitLab From 6b933bd383824e94f672b8e3bd66ed36f111a7a0 Mon Sep 17 00:00:00 2001 From: David Rutqvist Date: Tue, 11 Oct 2016 16:38:23 +0200 Subject: [PATCH 0013/1763] Redid fix so it uses the user setting used by global search instead of defaulting to case-insensitive --- .../hudson/model/AutoCompletionCandidates.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/model/AutoCompletionCandidates.java b/core/src/main/java/hudson/model/AutoCompletionCandidates.java index 0373b552bb..57f79eae99 100644 --- a/core/src/main/java/hudson/model/AutoCompletionCandidates.java +++ b/core/src/main/java/hudson/model/AutoCompletionCandidates.java @@ -25,6 +25,7 @@ package hudson.model; import hudson.search.Search; +import hudson.search.UserSearchProperty; import jenkins.model.Jenkins; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerRequest; @@ -118,16 +119,26 @@ public class AutoCompletionCandidates implements HttpResponse { @Override public void onItem(Item i) { String n = contextualNameOf(i); - if ((n.startsWith(value) || value.startsWith(n)) + boolean caseInsensitive = UserSearchProperty.isCaseInsensitive(); + + String hay = n; + String needle = value; + + if(caseInsensitive) { + hay = hay.toLowerCase(); + needle = needle.toLowerCase(); + } + + if ((hay.startsWith(needle) || needle.startsWith(hay)) // 'foobar' is a valid candidate if the current value is 'foo'. // Also, we need to visit 'foo' if the current value is 'foo/bar' - && (value.length()>n.length() || !n.substring(value.length()).contains("/")) + && (needle.length()>hay.length() || !hay.substring(needle.length()).contains("/")) // but 'foobar/zot' isn't if the current value is 'foo' // we'll first show 'foobar' and then wait for the user to type '/' to show the rest && i.hasPermission(Item.READ) // and read permission required ) { - if (type.isInstance(i) && n.startsWith(value)) + if (type.isInstance(i) && hay.startsWith(needle)) candidates.add(n); // recurse -- GitLab From 9fee6cc3f0d2240b8e23b447318fde36b5e0eb8e Mon Sep 17 00:00:00 2001 From: David Rutqvist Date: Tue, 11 Oct 2016 16:54:29 +0200 Subject: [PATCH 0014/1763] [FIXED JENKINS-38812] Commented on the implementation. Uses the same setting as used globally --- .../main/java/hudson/model/AutoCompletionCandidates.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/AutoCompletionCandidates.java b/core/src/main/java/hudson/model/AutoCompletionCandidates.java index 57f79eae99..f410633441 100644 --- a/core/src/main/java/hudson/model/AutoCompletionCandidates.java +++ b/core/src/main/java/hudson/model/AutoCompletionCandidates.java @@ -119,7 +119,11 @@ public class AutoCompletionCandidates implements HttpResponse { @Override public void onItem(Item i) { String n = contextualNameOf(i); - boolean caseInsensitive = UserSearchProperty.isCaseInsensitive(); + + //Check user's setting on whether to do case sensitive comparison, configured in user -> configure + //This is the same setting that is used by the global search field, should be consistent throughout + //the whole application. + boolean caseInsensitive = UserSearchProperty.isCaseInsensitive(); String hay = n; String needle = value; -- GitLab From c62f4f753d16210b67ec381b9e5d1d60145594d8 Mon Sep 17 00:00:00 2001 From: Stephen Connolly Date: Mon, 6 Feb 2017 14:25:30 +0000 Subject: [PATCH 0015/1763] [JENKINS-21017] When unmarshalling into an existing object, reset missing fields --- .../util/RobustReflectionConverter.java | 77 +++++++ .../test/java/hudson/util/XStream2Test.java | 218 ++++++++++++++++++ 2 files changed, 295 insertions(+) diff --git a/core/src/main/java/hudson/util/RobustReflectionConverter.java b/core/src/main/java/hudson/util/RobustReflectionConverter.java index 3ec65ec994..a65c7f4e17 100644 --- a/core/src/main/java/hudson/util/RobustReflectionConverter.java +++ b/core/src/main/java/hudson/util/RobustReflectionConverter.java @@ -271,8 +271,71 @@ public class RobustReflectionConverter implements Converter { return serializationMethodInvoker.callReadResolve(result); } + private static final class FieldExpectation { + private final Class definingClass; + private final String name; + + public FieldExpectation(Class definingClass, String name) { + this.definingClass = definingClass; + this.name = name; + } + + public Class getDefiningClass() { + return definingClass; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + FieldExpectation that = (FieldExpectation) o; + + if (definingClass != null ? !definingClass.equals(that.definingClass) : that.definingClass != null) { + return false; + } + return name.equals(that.name); + } + + @Override + public int hashCode() { + int result = definingClass != null ? definingClass.hashCode() : 0; + result = 31 * result + name.hashCode(); + return result; + } + + @Override + public String toString() { + return "FieldExpectation{" + + "definingClass=" + definingClass + + ", name='" + name + '\'' + + '}'; + } + + + } + public Object doUnmarshal(final Object result, final HierarchicalStreamReader reader, final UnmarshallingContext context) { final SeenFields seenFields = new SeenFields(); + final boolean existingObject = context.currentObject() != null; + final Map expectedFields = existingObject ? new HashMap() : null; + final Object cleanInstance = existingObject ? reflectionProvider.newInstance(result.getClass()) : null; + if (existingObject) { + reflectionProvider.visitSerializableFields(cleanInstance, new ReflectionProvider.Visitor() { + @Override + public void visit(String name, Class type, Class definedIn, Object value) { + expectedFields.put(new FieldExpectation(definedIn, name), value); + } + }); + } Iterator it = reader.getAttributeNames(); // Remember outermost Saveable encountered, for reporting below if (result instanceof Saveable && context.get("Saveable") == null) @@ -301,6 +364,10 @@ public class RobustReflectionConverter implements Converter { } reflectionProvider.writeField(result, attrName, value, classDefiningField); seenFields.add(classDefiningField, attrName); + if (existingObject) { + expectedFields.remove(new FieldExpectation( + classDefiningField == null ? result.getClass() : classDefiningField, attrName)); + } } } } @@ -342,6 +409,10 @@ public class RobustReflectionConverter implements Converter { LOGGER.warning("Cannot convert type " + value.getClass().getName() + " to type " + type.getName()); // behave as if we didn't see this element } else { + if (existingObject) { + expectedFields.remove(new FieldExpectation( + classDefiningField == null ? result.getClass() : classDefiningField, fieldName)); + } if (fieldExistsInClass) { reflectionProvider.writeField(result, fieldName, value, classDefiningField); seenFields.add(classDefiningField, fieldName); @@ -371,6 +442,12 @@ public class RobustReflectionConverter implements Converter { OldDataMonitor.report((Saveable)result, (ArrayList)context.get("ReadError")); context.put("ReadError", null); } + if (existingObject) { + for (Map.Entry entry : expectedFields.entrySet()) { + reflectionProvider.writeField(result, entry.getKey().getName(), entry.getValue(), + entry.getKey().getDefiningClass()); + } + } return result; } diff --git a/core/src/test/java/hudson/util/XStream2Test.java b/core/src/test/java/hudson/util/XStream2Test.java index aeb781f672..5f65fac491 100644 --- a/core/src/test/java/hudson/util/XStream2Test.java +++ b/core/src/test/java/hudson/util/XStream2Test.java @@ -23,6 +23,7 @@ */ package hudson.util; +import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.*; import com.google.common.collect.ImmutableList; @@ -32,11 +33,14 @@ import hudson.XmlFile; import hudson.model.Result; import hudson.model.Run; import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; +import jenkins.model.Jenkins; import org.apache.commons.io.FileUtils; import org.junit.Test; import org.jvnet.hudson.test.Issue; @@ -296,4 +300,218 @@ public class XStream2Test { assertEquals("3.2.1", XStream2.trimVersion("3.2.1")); assertEquals("3.2-SNAPSHOT", XStream2.trimVersion("3.2-SNAPSHOT (private-09/23/2012 12:26-jhacker)")); } + + @Issue("JENKINS-21017") + @Test + public void unmarshalToDefault_populated() { + String populatedXml = "\n" + + " my string\n" + + " not null\n" + + " \n" + + " 1\n" + + " 2\n" + + " 3\n" + + " \n" + + " \n" + + " 1\n" + + " 2\n" + + " 3\n" + + " \n" + + " \n" + + " 1\n" + + " 2\n" + + " 3\n" + + " \n" + + " \n" + + " 1\n" + + " 2\n" + + " 3\n" + + " \n" + + " \n" + + " 1\n" + + " 2\n" + + " 3\n" + + " \n" + + " \n" + + " 1\n" + + " 2\n" + + " 3\n" + + " \n" + + ""; + + WithDefaults existingInstance = new WithDefaults("foobar", + "foobar", + new String[]{"foobar", "barfoo", "fumanchu"}, + new String[]{"foobar", "barfoo", "fumanchu"}, + new String[]{"foobar", "barfoo", "fumanchu"}, + Arrays.asList("foobar", "barfoo", "fumanchu"), + Arrays.asList("foobar", "barfoo", "fumanchu"), + Arrays.asList("foobar", "barfoo", "fumanchu") + ); + + WithDefaults newInstance = new WithDefaults(); + + String xmlA = Jenkins.XSTREAM2.toXML(Jenkins.XSTREAM2.fromXML(populatedXml, existingInstance)); + String xmlB = Jenkins.XSTREAM2.toXML(Jenkins.XSTREAM2.fromXML(populatedXml, newInstance)); + String xmlC = Jenkins.XSTREAM2.toXML(Jenkins.XSTREAM2.fromXML(populatedXml, null)); + + assertThat("Deserializing over an existing instance is the same as with no root", xmlA, is(xmlC)); + assertThat("Deserializing over an new instance is the same as with no root", xmlB, is(xmlC)); + } + + + @Issue("JENKINS-21017") + @Test + public void unmarshalToDefault_default() { + String defaultXml = "\n" + + " defaultValue\n" + + " \n" + + " first\n" + + " second\n" + + " \n" + + " \n" + + " \n" + + " first\n" + + " second\n" + + " \n" + + " \n" + + ""; + + WithDefaults existingInstance = new WithDefaults("foobar", + "foobar", + new String[]{"foobar", "barfoo", "fumanchu"}, + new String[]{"foobar", "barfoo", "fumanchu"}, + new String[]{"foobar", "barfoo", "fumanchu"}, + Arrays.asList("foobar", "barfoo", "fumanchu"), + Arrays.asList("foobar", "barfoo", "fumanchu"), + Arrays.asList("foobar", "barfoo", "fumanchu") + ); + + WithDefaults newInstance = new WithDefaults(); + + String xmlA = Jenkins.XSTREAM2.toXML(Jenkins.XSTREAM2.fromXML(defaultXml, existingInstance)); + String xmlB = Jenkins.XSTREAM2.toXML(Jenkins.XSTREAM2.fromXML(defaultXml, newInstance)); + String xmlC = Jenkins.XSTREAM2.toXML(Jenkins.XSTREAM2.fromXML(defaultXml, null)); + + assertThat("Deserializing over an existing instance is the same as with no root", xmlA, is(xmlC)); + assertThat("Deserializing over an new instance is the same as with no root", xmlB, is(xmlC)); + } + + + @Issue("JENKINS-21017") + @Test + public void unmarshalToDefault_empty() { + String emptyXml = ""; + + WithDefaults existingInstance = new WithDefaults("foobar", + "foobar", + new String[]{"foobar", "barfoo", "fumanchu"}, + new String[]{"foobar", "barfoo", "fumanchu"}, + new String[]{"foobar", "barfoo", "fumanchu"}, + Arrays.asList("foobar", "barfoo", "fumanchu"), + Arrays.asList("foobar", "barfoo", "fumanchu"), + Arrays.asList("foobar", "barfoo", "fumanchu") + ); + + WithDefaults newInstance = new WithDefaults(); + + String xmlA = Jenkins.XSTREAM2.toXML(Jenkins.XSTREAM2.fromXML(emptyXml, existingInstance)); + String xmlB = Jenkins.XSTREAM2.toXML(Jenkins.XSTREAM2.fromXML(emptyXml, newInstance)); + String xmlC = Jenkins.XSTREAM2.toXML(Jenkins.XSTREAM2.fromXML(emptyXml, null)); + + assertThat("Deserializing over an existing instance is the same as with no root", xmlA, is(xmlC)); + assertThat("Deserializing over an new instance is the same as with no root", xmlB, is(xmlC)); + } + + public static class WithDefaults { + private String stringDefaultValue = "defaultValue"; + private String stringDefaultNull; + private String[] arrayDefaultValue = { "first", "second" }; + private String[] arrayDefaultEmpty = new String[0]; + private String[] arrayDefaultNull; + private List listDefaultValue = new ArrayList<>(Arrays.asList("first", "second")); + private List listDefaultEmpty = new ArrayList<>(); + private List listDefaultNull; + + public WithDefaults() { + } + + public WithDefaults(String stringDefaultValue, String stringDefaultNull, String[] arrayDefaultValue, + String[] arrayDefaultEmpty, String[] arrayDefaultNull, + List listDefaultValue, List listDefaultEmpty, + List listDefaultNull) { + this.stringDefaultValue = stringDefaultValue; + this.stringDefaultNull = stringDefaultNull; + this.arrayDefaultValue = arrayDefaultValue == null ? null : arrayDefaultValue.clone(); + this.arrayDefaultEmpty = arrayDefaultEmpty == null ? null : arrayDefaultEmpty.clone(); + this.arrayDefaultNull = arrayDefaultNull == null ? null : arrayDefaultNull.clone(); + this.listDefaultValue = listDefaultValue == null ? null : new ArrayList<>(listDefaultValue); + this.listDefaultEmpty = listDefaultEmpty == null ? null : new ArrayList<>(listDefaultEmpty); + this.listDefaultNull = listDefaultNull == null ? null : new ArrayList<>(listDefaultNull); + } + + public String getStringDefaultValue() { + return stringDefaultValue; + } + + public void setStringDefaultValue(String stringDefaultValue) { + this.stringDefaultValue = stringDefaultValue; + } + + public String getStringDefaultNull() { + return stringDefaultNull; + } + + public void setStringDefaultNull(String stringDefaultNull) { + this.stringDefaultNull = stringDefaultNull; + } + + public String[] getArrayDefaultValue() { + return arrayDefaultValue; + } + + public void setArrayDefaultValue(String[] arrayDefaultValue) { + this.arrayDefaultValue = arrayDefaultValue; + } + + public String[] getArrayDefaultEmpty() { + return arrayDefaultEmpty; + } + + public void setArrayDefaultEmpty(String[] arrayDefaultEmpty) { + this.arrayDefaultEmpty = arrayDefaultEmpty; + } + + public String[] getArrayDefaultNull() { + return arrayDefaultNull; + } + + public void setArrayDefaultNull(String[] arrayDefaultNull) { + this.arrayDefaultNull = arrayDefaultNull; + } + + public List getListDefaultValue() { + return listDefaultValue; + } + + public void setListDefaultValue(List listDefaultValue) { + this.listDefaultValue = listDefaultValue; + } + + public List getListDefaultEmpty() { + return listDefaultEmpty; + } + + public void setListDefaultEmpty(List listDefaultEmpty) { + this.listDefaultEmpty = listDefaultEmpty; + } + + public List getListDefaultNull() { + return listDefaultNull; + } + + public void setListDefaultNull(List listDefaultNull) { + this.listDefaultNull = listDefaultNull; + } + } } -- GitLab From ce4f639175d0357792b5522c801f303c12e0ea8d Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Wed, 26 Apr 2017 08:30:40 -0700 Subject: [PATCH 0016/1763] [maven-release-plugin] prepare release jenkins-2.46.2 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 2b4ff41e4b..7f824e79d9 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.46.2-SNAPSHOT + 2.46.2 cli diff --git a/core/pom.xml b/core/pom.xml index 9c40139beb..c51f4412a0 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.2-SNAPSHOT + 2.46.2 jenkins-core diff --git a/pom.xml b/pom.xml index 7f473ff967..67f99cf47c 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.2-SNAPSHOT + 2.46.2 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.46.2 diff --git a/test/pom.xml b/test/pom.xml index 8005542cac..99e149f7fb 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.2-SNAPSHOT + 2.46.2 test diff --git a/war/pom.xml b/war/pom.xml index b2fff9e462..3d08b8f6f2 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.2-SNAPSHOT + 2.46.2 jenkins-war -- GitLab From 6bcd968e9f397d508f7c75dd6c38f9189ef9cdef Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Wed, 26 Apr 2017 08:30:41 -0700 Subject: [PATCH 0017/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 7f824e79d9..8b9ac06095 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.46.2 + 2.46.3-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index c51f4412a0..fd02e86467 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.2 + 2.46.3-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index 67f99cf47c..faf227600e 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.2 + 2.46.3-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.46.2 + HEAD diff --git a/test/pom.xml b/test/pom.xml index 99e149f7fb..7b2f071069 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.2 + 2.46.3-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 3d08b8f6f2..e47be05e09 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.2 + 2.46.3-SNAPSHOT jenkins-war -- GitLab From 6f44ff7dee22e277cdfb94494c1b23e0c676ebbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Thu, 6 Apr 2017 14:30:50 +0200 Subject: [PATCH 0018/1763] [FIXED JENKINS-43279] Make sure Cloud.PROVISION is properly initialized (cherry picked from commit d35dfcb24fb2272076f863780fdc3de93d0ec04b) --- core/src/main/java/hudson/model/Computer.java | 6 ++++++ .../src/test/java/hudson/slaves/CloudTest.java | 15 ++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) rename {core => test}/src/test/java/hudson/slaves/CloudTest.java (60%) diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index bed7b0f7d5..59af335ad4 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -29,6 +29,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.EnvVars; import hudson.Extension; import hudson.Launcher.ProcStarter; +import hudson.slaves.Cloud; import jenkins.util.SystemProperties; import hudson.Util; import hudson.cli.declarative.CLIMethod; @@ -1733,5 +1734,10 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces public static final Permission CONNECT = new Permission(PERMISSIONS,"Connect", Messages._Computer_ConnectPermission_Description(), DISCONNECT, PermissionScope.COMPUTER); public static final Permission BUILD = new Permission(PERMISSIONS, "Build", Messages._Computer_BuildPermission_Description(), Permission.WRITE, PermissionScope.COMPUTER); + // This permission was historically scoped to this class albeit declared in Cloud. While deserializing, Jenkins loads + // the scope class to make sure the permission is initialized and registered. since Cloud class is used rather seldom, + // it might appear the permission does not exist. Referencing the permission from here to make sure it gets loaded. + private static final @Deprecated Permission CLOUD_PROVISION = Cloud.PROVISION; + private static final Logger LOGGER = Logger.getLogger(Computer.class.getName()); } diff --git a/core/src/test/java/hudson/slaves/CloudTest.java b/test/src/test/java/hudson/slaves/CloudTest.java similarity index 60% rename from core/src/test/java/hudson/slaves/CloudTest.java rename to test/src/test/java/hudson/slaves/CloudTest.java index bed5bad5f7..8b7c93bf6d 100644 --- a/core/src/test/java/hudson/slaves/CloudTest.java +++ b/test/src/test/java/hudson/slaves/CloudTest.java @@ -7,11 +7,17 @@ import hudson.security.Permission; import hudson.security.SidACL; import jenkins.model.Jenkins; import org.acegisecurity.acls.sid.Sid; +import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.WithoutJenkins; public class CloudTest { - @Test + @Rule public JenkinsRule j = new JenkinsRule(); + + @Test @WithoutJenkins @Issue("JENKINS-37616") public void provisionPermissionShouldBeIndependentFromAdminister() throws Exception { SidACL acl = new SidACL() { @Override protected Boolean hasPermission(Sid p, Permission permission) { @@ -23,4 +29,11 @@ public class CloudTest { assertFalse(acl.hasPermission(Jenkins.ANONYMOUS, Jenkins.ADMINISTER)); assertEquals(Cloud.PROVISION, Computer.PERMISSIONS.find("Provision")); } + + @Test @Issue("JENKINS-37616") + public void ensureProvisionPermissionIsLoadable() throws Exception { + // Name introduced by JENKINS-37616 + Permission p = Permission.fromId("hudson.model.Computer.Provision"); + assertEquals("Provision", p.name); + } } -- GitLab From 1c56f01283719e8ade32e872ef9fa636a4437d2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fe=CC=81lix=20Belzunce=20Arcos?= Date: Fri, 28 Apr 2017 13:56:36 +0200 Subject: [PATCH 0019/1763] [JENKINS-43936] Only migrate legacy users once per restart (cherry picked from commit f091c9de34e2c8fcaf93966180226dea52f90e38) --- core/src/main/java/hudson/model/User.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/User.java b/core/src/main/java/hudson/model/User.java index 57ecacc93e..953c681897 100644 --- a/core/src/main/java/hudson/model/User.java +++ b/core/src/main/java/hudson/model/User.java @@ -432,7 +432,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr byNameLock.readLock().unlock(); } final File configFile = getConfigFileFor(id); - if (!configFile.isFile() && !configFile.getParentFile().isDirectory()) { + if (u == null && !configFile.isFile() && !configFile.getParentFile().isDirectory()) { // check for legacy users and migrate if safe to do so. File[] legacy = getLegacyConfigFilesFor(id); if (legacy != null && legacy.length > 0) { -- GitLab From 161095e01b649e5453e65d5277f3bbcbefa480f4 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Fri, 21 Apr 2017 09:40:22 -0400 Subject: [PATCH 0020/1763] [JENKINS-21695] - The CompressionFilter.uncaughtExceptionHandler must not attempt to write to a committed response. (#2834) (cherry picked from commit 0c7e7bbc55a24cfa24ac835fd32d31a6e4e8243b) --- .../impl/InstallUncaughtExceptionHandler.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/init/impl/InstallUncaughtExceptionHandler.java b/core/src/main/java/hudson/init/impl/InstallUncaughtExceptionHandler.java index be55c08ff4..d8412f6ad4 100644 --- a/core/src/main/java/hudson/init/impl/InstallUncaughtExceptionHandler.java +++ b/core/src/main/java/hudson/init/impl/InstallUncaughtExceptionHandler.java @@ -20,11 +20,18 @@ import org.kohsuke.stapler.Stapler; * @author Kohsuke Kawaguchi */ public class InstallUncaughtExceptionHandler { + + private static final Logger LOGGER = Logger.getLogger(InstallUncaughtExceptionHandler.class.getName()); + @Initializer public static void init(final Jenkins j) throws IOException { CompressionFilter.setUncaughtExceptionHandler(j.servletContext, new UncaughtExceptionHandler() { @Override public void reportException(Throwable e, ServletContext context, HttpServletRequest req, HttpServletResponse rsp) throws ServletException, IOException { + if (rsp.isCommitted()) { + LOGGER.log(Level.WARNING, null, e); + return; + } req.setAttribute("javax.servlet.error.exception",e); try { WebApp.get(j.servletContext).getSomeStapler() @@ -38,10 +45,10 @@ public class InstallUncaughtExceptionHandler { }); try { Thread.setDefaultUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler()); - DefaultUncaughtExceptionHandler.LOGGER.log(Level.FINE, "Successfully installed a global UncaughtExceptionHandler."); + LOGGER.log(Level.FINE, "Successfully installed a global UncaughtExceptionHandler."); } catch (SecurityException ex) { - DefaultUncaughtExceptionHandler.LOGGER.log(Level.SEVERE, + LOGGER.log(Level.SEVERE, "Failed to set the default UncaughtExceptionHandler. " + "If any threads die due to unhandled coding errors then there will be no logging of this information. " + "The lack of this diagnostic information will make it harder to track down issues which will reduce the supportability of Jenkins. " + @@ -53,8 +60,6 @@ public class InstallUncaughtExceptionHandler { /** An UncaughtExceptionHandler that just logs the exception */ private static class DefaultUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler { - private static final Logger LOGGER = Logger.getLogger(InstallUncaughtExceptionHandler.class.getName()); - @Override public void uncaughtException(Thread t, Throwable ex) { // if this was an OutOfMemoryError then all bets about logging are off - but in the absence of anything else... @@ -65,4 +70,7 @@ public class InstallUncaughtExceptionHandler { } } + + private InstallUncaughtExceptionHandler() {} + } -- GitLab From 0e2cadf5ea0a37780718207fab1e077a32127162 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 22 Apr 2017 15:08:04 +0200 Subject: [PATCH 0021/1763] [JENKINS-42717] - Prevent NPE when a non-existent Default View is specified in the global config (#2815) * [JENKINS-42717] - Document view management methods in Jenkins and ViewGroupMixIn * [KENKINS-42717] - GlobalDefauldViewConfiguration should not fail with NPE when the view is missing * [JENKINS-42717] - Draft the direct unit test * [JENKINS-42717] - Fix the tes implementation * [JENKINS-42717] - Make FormException localizable * [JENKINS-42717] - Fix te build glitch (cherry picked from commit 4074818b97d50b98b754f723842f03306a1ddaea) --- .../java/hudson/model/ViewGroupMixIn.java | 10 ++- .../views/GlobalDefaultViewConfiguration.java | 14 +++- core/src/main/java/jenkins/model/Jenkins.java | 11 ++- .../hudson/views/Messages.properties | 2 + .../GlobalDefaultViewConfigurationTest.java | 66 +++++++++++++++ .../stapler/MockStaplerRequestBuilder.java | 81 +++++++++++++++++++ 6 files changed, 180 insertions(+), 4 deletions(-) create mode 100644 test/src/test/java/hudson/views/GlobalDefaultViewConfigurationTest.java create mode 100644 test/src/test/java/org/kohsuke/stapler/MockStaplerRequestBuilder.java diff --git a/core/src/main/java/hudson/model/ViewGroupMixIn.java b/core/src/main/java/hudson/model/ViewGroupMixIn.java index dcdc5a803c..ad39b2f716 100644 --- a/core/src/main/java/hudson/model/ViewGroupMixIn.java +++ b/core/src/main/java/hudson/model/ViewGroupMixIn.java @@ -35,6 +35,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; +import javax.annotation.CheckForNull; /** * Implements {@link ViewGroup} to be used as a "mix-in". @@ -91,7 +92,14 @@ public abstract class ViewGroupMixIn { owner.save(); } - public View getView(String name) { + /** + * Gets a view by the specified name. + * The method iterates through {@link ViewGroup}s if required. + * @param name Name of the view + * @return View instance or {@code null} if it is missing + */ + @CheckForNull + public View getView(@CheckForNull String name) { for (View v : views()) { if(v.getViewName().equals(name)) return v; diff --git a/core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java b/core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java index 40a045a084..c76ae404c3 100644 --- a/core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java +++ b/core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java @@ -24,6 +24,7 @@ package hudson.views; import hudson.Extension; +import hudson.model.View; import jenkins.model.GlobalConfiguration; import jenkins.model.Jenkins; import net.sf.json.JSONObject; @@ -41,7 +42,18 @@ public class GlobalDefaultViewConfiguration extends GlobalConfiguration { public boolean configure(StaplerRequest req, JSONObject json) throws FormException { // for compatibility reasons, the actual value is stored in Jenkins Jenkins j = Jenkins.getInstance(); - j.setPrimaryView(json.has("primaryView") ? j.getView(json.getString("primaryView")) : j.getViews().iterator().next()); + if (json.has("primaryView")) { + final String viewName = json.getString("primaryView"); + final View newPrimaryView = j.getView(viewName); + if (newPrimaryView == null) { + throw new FormException(Messages.GlobalDefaultViewConfiguration_ViewDoesNotExist(viewName), "primaryView"); + } + j.setPrimaryView(newPrimaryView); + } else { + // Fallback if the view is not specified + j.setPrimaryView(j.getViews().iterator().next()); + } + return true; } } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 351a6dca97..eeb844b888 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -1825,7 +1825,14 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve return names; } - public View getView(String name) { + /** + * Gets a view by the specified name. + * The method iterates through {@link ViewGroup}s if required. + * @param name Name of the view + * @return View instance or {@code null} if it is missing + */ + @CheckForNull + public View getView(@CheckForNull String name) { return viewGroupMixIn.getView(name); } @@ -1884,7 +1891,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve return viewGroupMixIn.getPrimaryView(); } - public void setPrimaryView(View v) { + public void setPrimaryView(@Nonnull View v) { this.primaryView = v.getViewName(); } diff --git a/core/src/main/resources/hudson/views/Messages.properties b/core/src/main/resources/hudson/views/Messages.properties index eef88e7266..34cfb87fbd 100644 --- a/core/src/main/resources/hudson/views/Messages.properties +++ b/core/src/main/resources/hudson/views/Messages.properties @@ -30,3 +30,5 @@ StatusColumn.DisplayName=Status WeatherColumn.DisplayName=Weather DefaultViewsTabsBar.DisplayName=Default Views TabBar DefaultMyViewsTabsBar.DisplayName=Default My Views TabBar + +GlobalDefaultViewConfiguration.ViewDoesNotExist=The specified view does not exist: {0} diff --git a/test/src/test/java/hudson/views/GlobalDefaultViewConfigurationTest.java b/test/src/test/java/hudson/views/GlobalDefaultViewConfigurationTest.java new file mode 100644 index 0000000000..41e9bf8925 --- /dev/null +++ b/test/src/test/java/hudson/views/GlobalDefaultViewConfigurationTest.java @@ -0,0 +1,66 @@ +/* + * The MIT License + * + * Copyright (c) 2017 Oleg Nenashev. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION 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.views; + +import hudson.model.Descriptor; +import net.sf.json.JSONObject; +import static org.hamcrest.Matchers.*; +import org.junit.Assert; +import static org.junit.Assert.assertThat; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.JenkinsRule; +import org.kohsuke.stapler.MockStaplerRequestBuilder; +import org.kohsuke.stapler.StaplerRequest; + +/** + * Tests of {@link GlobalDefaultViewConfiguration}. + * @author Oleg Nenashev + */ +public class GlobalDefaultViewConfigurationTest { + + @Rule + public JenkinsRule j = new JenkinsRule(); + + @Test + @Issue("JENKINS-42717") + public void shouldNotFailIfTheDefaultViewIsMissing() { + String viewName = "NonExistentView"; + GlobalDefaultViewConfiguration c = new GlobalDefaultViewConfiguration(); + + StaplerRequest create = new MockStaplerRequestBuilder(j, "/configure").build(); + JSONObject params = new JSONObject(); + params.accumulate("primaryView", viewName); + try { + c.configure(create, params); + } catch(Descriptor.FormException ex) { + assertThat("Wrong exception message for the form failure", + ex.getMessage(), containsString(Messages.GlobalDefaultViewConfiguration_ViewDoesNotExist(viewName))); + return; + } + Assert.fail("Expected FormException"); + } + +} diff --git a/test/src/test/java/org/kohsuke/stapler/MockStaplerRequestBuilder.java b/test/src/test/java/org/kohsuke/stapler/MockStaplerRequestBuilder.java new file mode 100644 index 0000000000..2825314a91 --- /dev/null +++ b/test/src/test/java/org/kohsuke/stapler/MockStaplerRequestBuilder.java @@ -0,0 +1,81 @@ +/* + * The MIT License + * + * Copyright (c) 2017 Oleg Nenashev. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION 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.kohsuke.stapler; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import javax.annotation.Nonnull; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import jenkins.model.Jenkins; +import org.eclipse.jetty.server.Request; +import org.jvnet.hudson.test.JenkinsRule; +import org.mockito.Mockito; +import org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest; + +/** + * Mocked version of {@link StaplerRequest}. + * @author Oleg Nenashev + */ +public class MockStaplerRequestBuilder{ + + private final JenkinsRule r; + + private final List ancestors = new ArrayList<>(); + private final TokenList tokens; + final Map getters = new HashMap<>(); + private Stapler stapler; + + public MockStaplerRequestBuilder(@Nonnull JenkinsRule r, String url) { + this.r = r; + this.tokens = new TokenList(url); + } + + public MockStaplerRequestBuilder withStapler(Stapler stapler) { + this.stapler = stapler; + return this; + } + + public MockStaplerRequestBuilder withGetter(String objectName, Object object) { + this.getters.put(objectName, object); + return this; + } + + public MockStaplerRequestBuilder withAncestor(AncestorImpl ancestor) { + this.ancestors.add(ancestor); + return this; + } + + public StaplerRequest build() throws AssertionError { + HttpServletRequest rawRequest = Mockito.mock(HttpServletRequest.class); + return new RequestImpl(stapler != null ? stapler : new Stapler(), rawRequest, ancestors, tokens); + } + +} -- GitLab From c553801a2b37a5a1ea0839109e7359c490534c37 Mon Sep 17 00:00:00 2001 From: kzantow Date: Thu, 30 Mar 2017 15:32:14 -0400 Subject: [PATCH 0022/1763] JENKINS-41778 - setup wizard issues when failures (cherry picked from commit a3bf6a9801a755c2b62e9b11e513b5cc616d3e47) --- .../main/java/hudson/model/UpdateCenter.java | 5 ++- war/src/main/js/pluginSetupWizardGui.js | 42 +++++++++++++++---- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index 3e1949ac4b..3c1b1428b4 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -1938,8 +1938,11 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas throw new RuntimeException(e); } } + // Must check for success, otherwise may have failed installation + if (ij.status instanceof Success) { + return true; + } } - return true; } } } diff --git a/war/src/main/js/pluginSetupWizardGui.js b/war/src/main/js/pluginSetupWizardGui.js index ef33b7cdf4..15711c8baa 100644 --- a/war/src/main/js/pluginSetupWizardGui.js +++ b/war/src/main/js/pluginSetupWizardGui.js @@ -461,9 +461,34 @@ var createPluginSetupWizard = function(appendTarget) { setPanel(pluginSuccessPanel, { installingPlugins : installingPlugins, failedPlugins: true }); return; } - + + var attachScrollEvent = function() { + var $c = $('.install-console-scroll'); + if (!$c.length) { + setTimeout(attachScrollEvent, 50); + return; + } + var events = $._data($c[0], "events"); + if (!events || !events.scroll) { + $c.on('scroll', function() { + if (!$c.data('wasAutoScrolled')) { + var top = $c[0].scrollHeight - $c.height(); + if ($c.scrollTop() === top) { + // resume auto-scroll + $c.data('userScrolled', false); + } else { + // user scrolled up + $c.data('userScrolled', true); + } + } else { + $c.data('wasAutoScrolled', false); + } + }); + } + }; + initInstallingPluginList(); - setPanel(progressPanel, { installingPlugins : installingPlugins }); + setPanel(progressPanel, { installingPlugins : installingPlugins }, attachScrollEvent); // call to the installStatus, update progress bar & plugin details; transition on complete var updateStatus = function() { @@ -491,8 +516,8 @@ var createPluginSetupWizard = function(appendTarget) { $('.progress-bar').css({width: ((100.0 * complete)/total) + '%'}); // update details - var $c = $('.install-text'); - $c.children().remove(); + var $txt = $('.install-text'); + $txt.children().remove(); for(i = 0; i < jobs.length; i++) { j = jobs[i]; @@ -538,7 +563,7 @@ var createPluginSetupWizard = function(appendTarget) { else { $div.addClass('dependent'); } - $c.append($div); + $txt.append($div); var $itemProgress = $('.selected-plugin[id="installing-' + jenkins.idIfy(j.name) + '"]'); if($itemProgress.length > 0 && !$itemProgress.is('.'+state)) { @@ -547,13 +572,14 @@ var createPluginSetupWizard = function(appendTarget) { } } - $c = $('.install-console-scroll'); - if($c.is(':visible')) { + var $c = $('.install-console-scroll'); + if($c && $c.is(':visible') && !$c.data('userScrolled')) { + $c.data('wasAutoScrolled', true); $c.scrollTop($c[0].scrollHeight); } // keep polling while install is running - if(complete < total || data.state === 'INITIAL_PLUGINS_INSTALLING') { + if(complete < total && data.state === 'INITIAL_PLUGINS_INSTALLING') { setPanel(progressPanel, { installingPlugins : installingPlugins }); // wait a sec setTimeout(updateStatus, 250); -- GitLab From 6128459dd39a7a1722894cd0a5a69a6c8c767abb Mon Sep 17 00:00:00 2001 From: Andrew Bayer Date: Fri, 7 Apr 2017 12:39:29 -0700 Subject: [PATCH 0023/1763] [FIXED JENKINS-42043] Catch and log RuntimeException in setNode Also make sure we don't mark the Computer as used so that we kill any executors that may be related to it somehow. (cherry picked from commit 23b0085f453454462542ae6e0fd67915b760ee4e) --- core/src/main/java/hudson/model/AbstractCIBase.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/model/AbstractCIBase.java b/core/src/main/java/hudson/model/AbstractCIBase.java index cf487105c2..16744334e5 100644 --- a/core/src/main/java/hudson/model/AbstractCIBase.java +++ b/core/src/main/java/hudson/model/AbstractCIBase.java @@ -36,6 +36,7 @@ import org.kohsuke.stapler.StaplerProxy; import java.util.*; import java.util.concurrent.CopyOnWriteArraySet; +import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.CheckForNull; @@ -115,7 +116,12 @@ public abstract class AbstractCIBase extends Node implements ItemGroup0 || n==Jenkins.getInstance()) { @@ -131,8 +137,8 @@ public abstract class AbstractCIBase extends Node implements ItemGroup Date: Sat, 8 Apr 2017 00:40:05 +0200 Subject: [PATCH 0024/1763] Merge pull request #2828 from sathiya-mit/master [JENKINS-42852] - Jenkins Configuration Save Option (cherry picked from commit 77804c145134d93b3ac0bd64d3181a2e21538fb7) --- .../management/AdministrativeMonitorsConfiguration.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/management/AdministrativeMonitorsConfiguration.java b/core/src/main/java/jenkins/management/AdministrativeMonitorsConfiguration.java index 390d5a3eec..d0dfa9abf5 100644 --- a/core/src/main/java/jenkins/management/AdministrativeMonitorsConfiguration.java +++ b/core/src/main/java/jenkins/management/AdministrativeMonitorsConfiguration.java @@ -27,6 +27,7 @@ package jenkins.management; import hudson.Extension; import hudson.model.AdministrativeMonitor; import jenkins.model.GlobalConfiguration; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -41,9 +42,15 @@ import java.util.logging.Logger; public class AdministrativeMonitorsConfiguration extends GlobalConfiguration { @Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { + JSONArray monitors = json.optJSONArray("administrativeMonitor"); for (AdministrativeMonitor am : AdministrativeMonitor.all()) { try { - boolean disable = !json.getJSONArray("administrativeMonitor").contains(am.id); + boolean disable; + if(monitors != null) { + disable = !monitors.contains(am.id); + }else { + disable = !am.id.equals(json.optString("administrativeMonitor")); + } am.disable(disable); } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to process form submission for " + am.id, e); -- GitLab From e91a82d27c67b194113fba6ac805cd4d6193cbfb Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 22 Apr 2017 15:06:04 +0200 Subject: [PATCH 0025/1763] [JENKINS-42861] - Properly deprecate the HudsonExceptionNote implementation (#2811) * [JENKINS-42861] - Properly deprecate the HudsonExceptionNote implementation It is a replacement of the original fix in https://github.com/jenkinsci/jenkins/pull/2808. The implementation provides deprecates the annotation of the new stacktraces, but it retains the binary and the persisted data compatibility, which were missing in the original PR. In the longer-term the hyperlinks should be replaced by the best possible equivalent (JIRA search, grepcode or whatever). * [JENKINS-42861] - Cleanup the deprecated functionality (cherry picked from commit 77a9f026f88d7cbbceca12f8f5645277a6aadaa0) --- .../java/hudson/console/ConsoleAnnotator.java | 11 ++- .../hudson/console/HudsonExceptionNote.java | 87 +++---------------- .../java/hudson/util/StreamTaskListener.java | 2 +- 3 files changed, 22 insertions(+), 78 deletions(-) diff --git a/core/src/main/java/hudson/console/ConsoleAnnotator.java b/core/src/main/java/hudson/console/ConsoleAnnotator.java index eab2376ddd..c19ac974b6 100644 --- a/core/src/main/java/hudson/console/ConsoleAnnotator.java +++ b/core/src/main/java/hudson/console/ConsoleAnnotator.java @@ -30,6 +30,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.ListIterator; +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; /** * Annotates one line of console output. @@ -71,15 +73,16 @@ public abstract class ConsoleAnnotator implements Serializable { * Annotates one line. * * @param context - * The object that owns the console output. Never null. + * The object that owns the console output. Never {@code 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. + * The callee should put markup into this object. Never {@code 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. + * To indicate that you are not interested in the following lines, return {@code null}. */ - public abstract ConsoleAnnotator annotate(T context, MarkupText text ); + @CheckForNull + public abstract ConsoleAnnotator annotate(@Nonnull T context, @Nonnull MarkupText text ); /** * Cast operation that restricts T. diff --git a/core/src/main/java/hudson/console/HudsonExceptionNote.java b/core/src/main/java/hudson/console/HudsonExceptionNote.java index c442dff2fd..83511694ce 100644 --- a/core/src/main/java/hudson/console/HudsonExceptionNote.java +++ b/core/src/main/java/hudson/console/HudsonExceptionNote.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2010-2011, CloudBees, Inc. + * Copyright (c) 2010-2017, CloudBees, Inc. * * 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,73 +27,31 @@ import hudson.Extension; import hudson.MarkupText; import org.jenkinsci.Symbol; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - +// TODO: the implementation has been deprecated due to JENKINS-42861 +// Consider providing alternate search mechanisms (JIRA, grepcode, etc.) as proposed in +// https://github.com/jenkinsci/jenkins/pull/2808#pullrequestreview-27467560 (JENKINS-43612) /** - * Placed on the beginning of the exception stack trace produced by Hudson, which in turn produces hyperlinked stack trace. + * Placed on the beginning of the exception stack trace produced by Jenkins, + * 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. + * that occur inside Jenkins. * * @author Kohsuke Kawaguchi - * @since 1.349 + * @since 1.349 - produces search hyperlinks to the http://stacktrace.jenkins-ci.org service + * @since TODO - does nothing due to JENKINS-42861 + * @deprecated This ConsoleNote used to provide hyperlinks to the + * http://stacktrace.jenkins-ci.org/ service, which is dead now (JENKINS-42861). + * This console note does nothing right now. */ +@Deprecated 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.addHyperlinkLowKey(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.addHyperlinkLowKey(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.addHyperlinkLowKey(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) { - return "http://stacktrace.jenkins-ci.org/search/?query="+className+'.'+methodName+"&entity=method"; - } - - private String annotateClassName(String className) { - return "http://stacktrace.jenkins-ci.org/search?query="+className; + return null; } @Extension @Symbol("stackTrace") @@ -103,21 +61,4 @@ public class HudsonExceptionNote extends ConsoleNote { 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\n"); } diff --git a/core/src/main/java/hudson/util/StreamTaskListener.java b/core/src/main/java/hudson/util/StreamTaskListener.java index 5e4a294fb0..a015a7e690 100644 --- a/core/src/main/java/hudson/util/StreamTaskListener.java +++ b/core/src/main/java/hudson/util/StreamTaskListener.java @@ -142,7 +142,7 @@ public class StreamTaskListener extends AbstractTaskListener implements Serializ out.print(prefix); out.println(msg); - // the idiom in Hudson is to use the returned writer for writing stack trace, + // the idiom in Jenkins is to use the returned writer for writing stack trace, // so put the marker here to indicate an exception. if the stack trace isn't actually written, // HudsonExceptionNote.annotate recovers gracefully. try { -- GitLab From 543d184004e175da1efca68d9769eaa838763606 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 3 May 2017 10:36:51 -0400 Subject: [PATCH 0026/1763] [FIXED JENKINS-44010] It is possible for Jenkins.crumbIssuer to be unset while the setup wizard is running. (cherry picked from commit ae1fdc95a1d50df65a97447ff536d21cb2c5dba2) --- core/src/main/java/jenkins/install/SetupWizard.java | 5 ++++- core/src/main/java/jenkins/model/Jenkins.java | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/install/SetupWizard.java b/core/src/main/java/jenkins/install/SetupWizard.java index 17f9e0e6e7..9546c25a70 100644 --- a/core/src/main/java/jenkins/install/SetupWizard.java +++ b/core/src/main/java/jenkins/install/SetupWizard.java @@ -254,7 +254,10 @@ public class SetupWizard extends PageDecorator { a = securityRealm.getSecurityComponents().manager.authenticate(a); SecurityContextHolder.getContext().setAuthentication(a); CrumbIssuer crumbIssuer = Jenkins.getInstance().getCrumbIssuer(); - JSONObject data = new JSONObject().accumulate("crumbRequestField", crumbIssuer.getCrumbRequestField()).accumulate("crumb", crumbIssuer.getCrumb(req)); + JSONObject data = new JSONObject(); + if (crumbIssuer != null) { + data.accumulate("crumbRequestField", crumbIssuer.getCrumbRequestField()).accumulate("crumb", crumbIssuer.getCrumb(req)); + } return HttpResponses.okJSON(data); } else { return HttpResponses.okJSON(); diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index eeb844b888..8d16eaed99 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -3664,6 +3664,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve * * @return null if none is in use. */ + @CheckForNull public CrumbIssuer getCrumbIssuer() { return crumbIssuer; } -- GitLab From 7db9fe95669d426812dd4510b512fcd95ff1a64e Mon Sep 17 00:00:00 2001 From: Allan Burdajewicz Date: Fri, 5 May 2017 17:44:43 +1000 Subject: [PATCH 0027/1763] [JENKINS-42707] AccessDeniedException exception in ReverseBuildTrigger (#2846) * [JENKINS-42707] AccessDeniedException vulnerability in ReverseBuildTrigger. * [JENKINS-42707] Added tests to expose the issue * [JENKINS-42707] Log message according to permission (DISCOVER/READ) * [JENKINS-42707] Use MockAuthorizationStrategy * [JENKINS-42707] Remove internationalization for logger (cherry picked from commit 17eedcfde8043829b247e639ae985ddb97dd0571) --- .../jenkins/triggers/ReverseBuildTrigger.java | 41 +++++++++---- .../triggers/ReverseBuildTriggerTest.java | 61 ++++++++++++------- 2 files changed, 69 insertions(+), 33 deletions(-) diff --git a/core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java b/core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java index e9be86f3dd..f898617f73 100644 --- a/core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java +++ b/core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java @@ -66,6 +66,7 @@ import jenkins.model.DependencyDeclarer; import jenkins.model.Jenkins; import jenkins.model.ParameterizedJobMixIn; import jenkins.security.QueueItemAuthenticatorConfiguration; +import org.acegisecurity.AccessDeniedException; import org.acegisecurity.Authentication; import org.acegisecurity.context.SecurityContext; import org.acegisecurity.context.SecurityContextHolder; @@ -112,29 +113,47 @@ public final class ReverseBuildTrigger extends Trigger implements Dependenc if (job == null) { return false; } + + boolean downstreamVisible = false; + boolean downstreamDiscoverable = false; + // This checks Item.READ also on parent folders; note we are checking as the upstream auth currently: - boolean downstreamVisible = jenkins.getItemByFullName(job.getFullName()) == job; + try { + downstreamVisible = jenkins.getItemByFullName(job.getFullName()) == job; + } catch (AccessDeniedException ex) { + // Fails because of missing Item.READ but upstream user has Item.DISCOVER + downstreamDiscoverable = true; + } + Authentication originalAuth = Jenkins.getAuthentication(); Job upstream = upstreamBuild.getParent(); Authentication auth = Tasks.getAuthenticationOf((Queue.Task) job); if (auth.equals(ACL.SYSTEM) && !QueueItemAuthenticatorConfiguration.get().getAuthenticators().isEmpty()) { auth = Jenkins.ANONYMOUS; // cf. BuildTrigger } + SecurityContext orig = ACL.impersonate(auth); + Item authUpstream = null; try { - if (jenkins.getItemByFullName(upstream.getFullName()) != upstream) { - if (downstreamVisible) { - // TODO ModelHyperlink - listener.getLogger().println(Messages.ReverseBuildTrigger_running_as_cannot_even_see_for_trigger_f(auth.getName(), upstream.getFullName(), job.getFullName())); - } else { - LOGGER.log(Level.WARNING, "Running as {0} cannot even see {1} for trigger from {2} (but cannot tell {3} that)", new Object[] {auth.getName(), upstream, job, originalAuth.getName()}); - } - return false; - } + authUpstream = jenkins.getItemByFullName(upstream.getFullName()); // No need to check Item.BUILD on downstream, because the downstream project’s configurer has asked for this. + } catch (AccessDeniedException ade) { + // Fails because of missing Item.READ but downstream user has Item.DISCOVER } finally { SecurityContextHolder.setContext(orig); } + + if(authUpstream != upstream) { + if (downstreamVisible) { + // TODO ModelHyperlink + listener.getLogger().println(Messages.ReverseBuildTrigger_running_as_cannot_even_see_for_trigger_f(auth.getName(), + upstream.getFullName(), job.getFullName())); + } else { + LOGGER.log(Level.WARNING, "Running as {0} cannot even {1} {2} for trigger from {3}, (but cannot tell {4} that)", + new Object [] { auth.getName(), downstreamDiscoverable ? "READ" : "DISCOVER", upstream, job, originalAuth.getName()}); + } + return false; + } Result result = upstreamBuild.getResult(); return result != null && result.isBetterOrEqualTo(threshold); } @@ -202,7 +221,7 @@ public final class ReverseBuildTrigger extends Trigger implements Dependenc } @Extension public static final class RunListenerImpl extends RunListener { - + static RunListenerImpl get() { return ExtensionList.lookup(RunListener.class).get(RunListenerImpl.class); } diff --git a/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java b/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java index f26496f97f..e25a2613cb 100644 --- a/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java +++ b/test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java @@ -33,19 +33,13 @@ import hudson.model.Job; import hudson.model.Result; import hudson.model.Run; import hudson.model.User; -import hudson.security.AuthorizationMatrixProperty; -import hudson.security.Permission; -import hudson.security.ProjectMatrixAuthorizationStrategy; import hudson.tasks.BuildTrigger; import hudson.tasks.BuildTriggerTest; import hudson.triggers.Trigger; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; -import java.util.Set; import jenkins.model.Jenkins; import jenkins.security.QueueItemAuthenticatorConfiguration; import org.acegisecurity.Authentication; @@ -58,6 +52,7 @@ import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.MockAuthorizationStrategy; import org.jvnet.hudson.test.MockQueueItemAuthenticator; public class ReverseBuildTriggerTest { @@ -85,23 +80,17 @@ public class ReverseBuildTriggerTest { /** @see BuildTriggerTest#testDownstreamProjectSecurity */ @Test public void upstreamProjectSecurity() throws Exception { r.jenkins.setSecurityRealm(r.createDummySecurityRealm()); - ProjectMatrixAuthorizationStrategy auth = new ProjectMatrixAuthorizationStrategy(); - auth.add(Jenkins.READ, "alice"); - auth.add(Computer.BUILD, "alice"); - auth.add(Jenkins.ADMINISTER, "admin"); - auth.add(Jenkins.READ, "bob"); - auth.add(Computer.BUILD, "bob"); + MockAuthorizationStrategy auth = new MockAuthorizationStrategy() + .grant(Jenkins.READ).everywhere().to("alice", "bob") + .grant(Computer.BUILD).everywhere().to("alice", "bob") + .grant(Jenkins.ADMINISTER).everywhere().to("admin"); r.jenkins.setAuthorizationStrategy(auth); String upstreamName = "upstr3@m"; // do not clash with English messages! final FreeStyleProject upstream = r.createFreeStyleProject(upstreamName); String downstreamName = "d0wnstr3am"; FreeStyleProject downstream = r.createFreeStyleProject(downstreamName); - Map> perms = new HashMap>(); - perms.put(Item.READ, Collections.singleton("alice")); - downstream.addProperty(new AuthorizationMatrixProperty(perms)); - perms = new HashMap>(); - perms.put(Item.READ, Collections.singleton("bob")); - upstream.addProperty(new AuthorizationMatrixProperty(perms)); + auth.grant(Item.READ).onItems(downstream).to("alice") + .grant(Item.READ).onItems(upstream).to("bob"); @SuppressWarnings("rawtypes") Trigger t = new ReverseBuildTrigger(upstreamName, Result.SUCCESS); downstream.addTrigger(t); t.start(downstream, true); // as in AbstractProject.submit @@ -129,10 +118,7 @@ public class ReverseBuildTriggerTest { r.waitUntilNoActivity(); assertEquals(1, downstream.getLastBuild().number); // Alice can see upstream, so downstream gets built, but the upstream build cannot see downstream: - perms = new HashMap>(); - perms.put(Item.READ, new HashSet(Arrays.asList("alice", "bob"))); - upstream.removeProperty(AuthorizationMatrixProperty.class); - upstream.addProperty(new AuthorizationMatrixProperty(perms)); + auth.grant(Item.READ).onItems(upstream).to("alice", "bob"); Map qiaConfig = new HashMap(); qiaConfig.put(upstreamName, User.get("bob").impersonate()); qiaConfig.put(downstreamName, User.get("alice").impersonate()); @@ -152,6 +138,37 @@ public class ReverseBuildTriggerTest { r.waitUntilNoActivity(); assertEquals(3, downstream.getLastBuild().number); assertEquals(new Cause.UpstreamCause((Run) b), downstream.getLastBuild().getCause(Cause.UpstreamCause.class)); + + // Alice can only DISCOVER upstream, so downstream does not get built, but the upstream build cannot DISCOVER downstream + auth = new MockAuthorizationStrategy() + .grant(Jenkins.READ).everywhere().to("alice", "bob") + .grant(Computer.BUILD).everywhere().to("alice", "bob") + .grant(Jenkins.ADMINISTER).everywhere().to("admin") + .grant(Item.READ).onItems(upstream).to("bob") + .grant(Item.DISCOVER).onItems(upstream).to("alice"); + r.jenkins.setAuthorizationStrategy(auth); + auth.grant(Item.READ).onItems(downstream).to("alice"); + qiaConfig = new HashMap(); + qiaConfig.put(upstreamName, User.get("bob").impersonate()); + qiaConfig.put(downstreamName, User.get("alice").impersonate()); + QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); + b = r.buildAndAssertSuccess(upstream); + r.assertLogNotContains(downstreamName, b); + r.waitUntilNoActivity(); + assertEquals(3, downstream.getLastBuild().number); + + // A QIA is configured but does not specify any authentication for downstream, anonymous can only DISCOVER upstream + // so no message is printed about it, and no Exception neither (JENKINS-42707) + auth.grant(Item.READ).onItems(upstream).to("bob"); + auth.grant(Item.DISCOVER).onItems(upstream).to("anonymous"); + qiaConfig = new HashMap(); + qiaConfig.put(upstreamName, User.get("bob").impersonate()); + QueueItemAuthenticatorConfiguration.get().getAuthenticators().replace(new MockQueueItemAuthenticator(qiaConfig)); + b = r.buildAndAssertSuccess(upstream); + r.assertLogNotContains(downstreamName, b); + r.assertLogNotContains("Please login to access job " + upstreamName, b); + r.waitUntilNoActivity(); + assertEquals(3, downstream.getLastBuild().number); } @Issue("JENKINS-29876") -- GitLab From 2c64d92f459174fac2283e2514e29cbb54fc7147 Mon Sep 17 00:00:00 2001 From: Baptiste Mathus Date: Fri, 19 May 2017 12:07:03 +0200 Subject: [PATCH 0028/1763] Deprecate TimeUnit2 java.util.concurrent.TimeUnit is preferrable now. Quoting Stephen: "Java 5 did not have all the units required. So TU2 was one that had better conversion. Can be deprecated once we upgrade to Java 6 ;-)" --- core/src/main/java/hudson/util/TimeUnit2.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/java/hudson/util/TimeUnit2.java b/core/src/main/java/hudson/util/TimeUnit2.java index 30b9455fde..93d6343805 100644 --- a/core/src/main/java/hudson/util/TimeUnit2.java +++ b/core/src/main/java/hudson/util/TimeUnit2.java @@ -63,7 +63,10 @@ import java.util.concurrent.TimeUnit; * * @since 1.5 * @author Doug Lea + * @deprecated use {@link TimeUnit}. (Java 5 did not have all the units required, so TimeUnit2 was introduced because it + * had better conversion until Java 6 went out.) */ +@Deprecated public enum TimeUnit2 { NANOSECONDS { @Override public long toNanos(long d) { return d; } -- GitLab From c5bcefaa090e974f184d38eb74b8faeac2ad48fd Mon Sep 17 00:00:00 2001 From: Baptiste Mathus Date: Fri, 19 May 2017 14:46:13 +0200 Subject: [PATCH 0029/1763] Also restrict its usage --- core/src/main/java/hudson/Plugin.java | 4 ++-- .../main/java/hudson/console/AnnotatedLargeText.java | 4 ++-- .../hudson/console/ConsoleAnnotationDescriptor.java | 6 +++--- .../java/hudson/console/ConsoleAnnotatorFactory.java | 6 +++--- .../main/java/hudson/diagnosis/MemoryUsageMonitor.java | 4 ++-- core/src/main/java/hudson/model/AbstractProject.java | 4 ++-- core/src/main/java/hudson/model/DownloadService.java | 2 +- core/src/main/java/hudson/model/Executor.java | 4 ++-- .../main/java/hudson/model/MultiStageTimeSeries.java | 8 ++++---- core/src/main/java/hudson/model/Queue.java | 4 ++-- core/src/main/java/hudson/model/UpdateSite.java | 2 +- core/src/main/java/hudson/model/UsageStatistics.java | 2 +- core/src/main/java/hudson/model/queue/BackFiller.java | 4 ++-- .../java/hudson/slaves/CloudRetentionStrategy.java | 2 +- .../hudson/slaves/CloudSlaveRetentionStrategy.java | 4 ++-- .../java/hudson/slaves/ConnectionActivityMonitor.java | 10 +++++----- core/src/main/java/hudson/triggers/SCMTrigger.java | 4 ++-- core/src/main/java/hudson/util/TimeUnit2.java | 4 ++++ core/src/main/java/jenkins/model/AssetManager.java | 4 ++-- core/src/main/java/jenkins/model/Jenkins.java | 6 +++--- test/src/test/java/hudson/model/JobTest.java | 2 +- test/src/test/java/hudson/model/UpdateCenterTest.java | 4 ++-- .../node_monitors/ClockMonitorDescriptorTest.java | 8 ++++---- 23 files changed, 53 insertions(+), 49 deletions(-) diff --git a/core/src/main/java/hudson/Plugin.java b/core/src/main/java/hudson/Plugin.java index 0564c07d94..9539737878 100644 --- a/core/src/main/java/hudson/Plugin.java +++ b/core/src/main/java/hudson/Plugin.java @@ -23,7 +23,7 @@ */ package hudson; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import jenkins.model.Jenkins; import hudson.model.Descriptor; import hudson.model.Saveable; @@ -237,7 +237,7 @@ public abstract class Plugin implements Saveable { String requestPath = req.getRequestURI().substring(req.getContextPath().length()); boolean staticLink = requestPath.startsWith("/static/"); - long expires = staticLink ? TimeUnit2.DAYS.toMillis(365) : -1; + long expires = staticLink ? TimeUnit.DAYS.toMillis(365) : -1; // use serveLocalizedFile to support automatic locale selection try { diff --git a/core/src/main/java/hudson/console/AnnotatedLargeText.java b/core/src/main/java/hudson/console/AnnotatedLargeText.java index 4e8c40658a..897661329c 100644 --- a/core/src/main/java/hudson/console/AnnotatedLargeText.java +++ b/core/src/main/java/hudson/console/AnnotatedLargeText.java @@ -28,7 +28,7 @@ package hudson.console; import com.trilead.ssh2.crypto.Base64; import jenkins.model.Jenkins; import hudson.remoting.ObjectInputStreamEx; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import jenkins.security.CryptoConfidentialKey; import org.apache.commons.io.output.ByteArrayOutputStream; import org.kohsuke.stapler.Stapler; @@ -123,7 +123,7 @@ public class AnnotatedLargeText extends LargeText { Jenkins.getInstance().pluginManager.uberClassLoader); try { long timestamp = ois.readLong(); - if (TimeUnit2.HOURS.toMillis(1) > abs(System.currentTimeMillis()-timestamp)) + if (TimeUnit.HOURS.toMillis(1) > abs(System.currentTimeMillis()-timestamp)) // don't deserialize something too old to prevent a replay attack return (ConsoleAnnotator)ois.readObject(); } finally { diff --git a/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java b/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java index d5ac508136..4a74ae8a9e 100644 --- a/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java +++ b/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java @@ -27,7 +27,7 @@ import hudson.DescriptorExtensionList; import hudson.ExtensionPoint; import hudson.model.Descriptor; import jenkins.model.Jenkins; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.WebMethod; @@ -80,12 +80,12 @@ public abstract class ConsoleAnnotationDescriptor extends Descriptor implements ExtensionPoint { */ @WebMethod(name="script.js") public void doScriptJs(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { - rsp.serveFile(req, getResource("/script.js"), TimeUnit2.DAYS.toMillis(1)); + rsp.serveFile(req, getResource("/script.js"), TimeUnit.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)); + rsp.serveFile(req, getResource("/style.css"), TimeUnit.DAYS.toMillis(1)); } /** diff --git a/core/src/main/java/hudson/diagnosis/MemoryUsageMonitor.java b/core/src/main/java/hudson/diagnosis/MemoryUsageMonitor.java index 23ad5140b8..1ba648eb38 100644 --- a/core/src/main/java/hudson/diagnosis/MemoryUsageMonitor.java +++ b/core/src/main/java/hudson/diagnosis/MemoryUsageMonitor.java @@ -23,7 +23,7 @@ */ package hudson.diagnosis; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import hudson.util.ColorPalette; import hudson.Extension; import hudson.model.PeriodicWork; @@ -116,7 +116,7 @@ public final class MemoryUsageMonitor extends PeriodicWork { } public long getRecurrencePeriod() { - return TimeUnit2.SECONDS.toMillis(10); + return TimeUnit.SECONDS.toMillis(10); } protected void doRun() { diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index d2f4a11847..bbff4bc4b1 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -76,7 +76,6 @@ import hudson.util.AlternativeUiTextProvider; import hudson.util.AlternativeUiTextProvider.Message; import hudson.util.DescribableList; import hudson.util.FormValidation; -import hudson.util.TimeUnit2; import hudson.widgets.HistoryWidget; import java.io.File; import java.io.IOException; @@ -93,6 +92,7 @@ import java.util.SortedMap; import java.util.TreeMap; import java.util.Vector; import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; import java.util.logging.Level; import java.util.logging.Logger; @@ -1363,7 +1363,7 @@ public abstract class AbstractProject

,R extends A // However, first there are some conditions in which we do not want to do so. // give time for agents to come online if we are right after reconnection (JENKINS-8408) long running = Jenkins.getInstance().getInjector().getInstance(Uptime.class).getUptime(); - long remaining = TimeUnit2.MINUTES.toMillis(10)-running; + long remaining = TimeUnit.MINUTES.toMillis(10)-running; if (remaining>0 && /* this logic breaks tests of polling */!Functions.getIsUnitTest()) { listener.getLogger().print(Messages.AbstractProject_AwaitingWorkspaceToComeOnline(remaining/1000)); listener.getLogger().println( " (" + workspaceOfflineReason.name() + ")"); diff --git a/core/src/main/java/hudson/model/DownloadService.java b/core/src/main/java/hudson/model/DownloadService.java index ad26b130ae..289e2af708 100644 --- a/core/src/main/java/hudson/model/DownloadService.java +++ b/core/src/main/java/hudson/model/DownloadService.java @@ -35,7 +35,7 @@ import hudson.util.FormValidation; import hudson.util.FormValidation.Kind; import hudson.util.QuotedStringTokenizer; import hudson.util.TextFile; -import static hudson.util.TimeUnit2.DAYS; +import static java.util.concurrent.TimeUnit.DAYS; import java.io.File; import java.io.IOException; import java.io.InputStream; diff --git a/core/src/main/java/hudson/model/Executor.java b/core/src/main/java/hudson/model/Executor.java index 78df6dc853..af59049aa3 100644 --- a/core/src/main/java/hudson/model/Executor.java +++ b/core/src/main/java/hudson/model/Executor.java @@ -33,7 +33,7 @@ import hudson.model.queue.Tasks; import hudson.model.queue.WorkUnit; import hudson.security.ACL; import hudson.util.InterceptingProxy; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import jenkins.model.CauseOfInterruption; import jenkins.model.CauseOfInterruption.UserInterruption; import jenkins.model.InterruptedBuildAction; @@ -722,7 +722,7 @@ public class Executor extends Thread implements ModelObject { return d * 10 < elapsed; } else { // if no ETA is available, a build taking longer than a day is considered stuck - return TimeUnit2.MILLISECONDS.toHours(elapsed) > 24; + return TimeUnit.MILLISECONDS.toHours(elapsed) > 24; } } diff --git a/core/src/main/java/hudson/model/MultiStageTimeSeries.java b/core/src/main/java/hudson/model/MultiStageTimeSeries.java index 4f1071b7d4..62867f2e26 100644 --- a/core/src/main/java/hudson/model/MultiStageTimeSeries.java +++ b/core/src/main/java/hudson/model/MultiStageTimeSeries.java @@ -23,7 +23,7 @@ */ package hudson.model; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import hudson.util.NoOverlapCategoryAxis; import hudson.util.ChartUtil; @@ -152,9 +152,9 @@ public class MultiStageTimeSeries implements Serializable { * Choose which datapoint to use. */ public enum TimeScale { - SEC10(TimeUnit2.SECONDS.toMillis(10)), - MIN(TimeUnit2.MINUTES.toMillis(1)), - HOUR(TimeUnit2.HOURS.toMillis(1)); + SEC10(TimeUnit.SECONDS.toMillis(10)), + MIN(TimeUnit.MINUTES.toMillis(1)), + HOUR(TimeUnit.HOURS.toMillis(1)); /** * Number of milliseconds (10 secs, 1 min, and 1 hour) diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index 4e524ed1a9..53db65ec5b 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -68,7 +68,7 @@ import java.nio.file.InvalidPathException; import jenkins.security.QueueItemAuthenticatorProvider; import jenkins.util.Timer; import hudson.triggers.SafeTimerTask; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import hudson.util.XStream2; import hudson.util.ConsistentHash; import hudson.util.ConsistentHash.Hash; @@ -2565,7 +2565,7 @@ public class Queue extends ResourceController implements Saveable { return elapsed > Math.max(d,60000L)*10; } else { // more than a day in the queue - return TimeUnit2.MILLISECONDS.toHours(elapsed)>24; + return TimeUnit.MILLISECONDS.toHours(elapsed)>24; } } diff --git a/core/src/main/java/hudson/model/UpdateSite.java b/core/src/main/java/hudson/model/UpdateSite.java index ddf399ceca..fcc07ad9c1 100644 --- a/core/src/main/java/hudson/model/UpdateSite.java +++ b/core/src/main/java/hudson/model/UpdateSite.java @@ -36,7 +36,7 @@ import hudson.util.FormValidation; import hudson.util.FormValidation.Kind; import hudson.util.HttpResponses; import hudson.util.TextFile; -import static hudson.util.TimeUnit2.*; +import static java.util.concurrent.TimeUnit.*; import hudson.util.VersionNumber; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/hudson/model/UsageStatistics.java b/core/src/main/java/hudson/model/UsageStatistics.java index 22d4008915..2f78840b63 100644 --- a/core/src/main/java/hudson/model/UsageStatistics.java +++ b/core/src/main/java/hudson/model/UsageStatistics.java @@ -29,7 +29,7 @@ import hudson.Util; import hudson.Extension; import hudson.node_monitors.ArchitectureMonitor.DescriptorImpl; import hudson.util.Secret; -import static hudson.util.TimeUnit2.DAYS; +import static java.util.concurrent.TimeUnit.DAYS; import jenkins.model.Jenkins; import net.sf.json.JSONObject; diff --git a/core/src/main/java/hudson/model/queue/BackFiller.java b/core/src/main/java/hudson/model/queue/BackFiller.java index 6278dd9b99..bc3773cc4d 100644 --- a/core/src/main/java/hudson/model/queue/BackFiller.java +++ b/core/src/main/java/hudson/model/queue/BackFiller.java @@ -12,7 +12,7 @@ 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.concurrent.TimeUnit; import java.util.ArrayList; import java.util.Collections; @@ -124,7 +124,7 @@ public class BackFiller extends LoadPredictor { // 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); + if (d<=0) d = TimeUnit.MINUTES.toMillis(5); TimeRange slot = new TimeRange(System.currentTimeMillis(), d); diff --git a/core/src/main/java/hudson/slaves/CloudRetentionStrategy.java b/core/src/main/java/hudson/slaves/CloudRetentionStrategy.java index db2b80cf45..1f898fcf74 100644 --- a/core/src/main/java/hudson/slaves/CloudRetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/CloudRetentionStrategy.java @@ -29,7 +29,7 @@ import javax.annotation.concurrent.GuardedBy; import java.io.IOException; import java.util.logging.Logger; -import static hudson.util.TimeUnit2.*; +import static java.util.concurrent.TimeUnit.*; import java.util.logging.Level; import static java.util.logging.Level.*; diff --git a/core/src/main/java/hudson/slaves/CloudSlaveRetentionStrategy.java b/core/src/main/java/hudson/slaves/CloudSlaveRetentionStrategy.java index accfca80c3..1955f6cc0d 100644 --- a/core/src/main/java/hudson/slaves/CloudSlaveRetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/CloudSlaveRetentionStrategy.java @@ -2,7 +2,7 @@ package hudson.slaves; import hudson.model.Computer; import hudson.model.Node; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import jenkins.model.Jenkins; import javax.annotation.concurrent.GuardedBy; @@ -72,7 +72,7 @@ public class CloudSlaveRetentionStrategy extends RetentionSt } // for debugging, it's convenient to be able to reduce this time - public static long TIMEOUT = SystemProperties.getLong(CloudSlaveRetentionStrategy.class.getName()+".timeout", TimeUnit2.MINUTES.toMillis(10)); + public static long TIMEOUT = SystemProperties.getLong(CloudSlaveRetentionStrategy.class.getName()+".timeout", TimeUnit.MINUTES.toMillis(10)); private static final Logger LOGGER = Logger.getLogger(CloudSlaveRetentionStrategy.class.getName()); } diff --git a/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java b/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java index 4bd542d7de..dc3ac88ac2 100644 --- a/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java +++ b/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java @@ -27,7 +27,7 @@ import hudson.model.AsyncPeriodicWork; import hudson.model.TaskListener; import jenkins.model.Jenkins; import hudson.model.Computer; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import hudson.remoting.VirtualChannel; import hudson.remoting.Channel; import hudson.Extension; @@ -84,20 +84,20 @@ public class ConnectionActivityMonitor extends AsyncPeriodicWork { } public long getRecurrencePeriod() { - return enabled ? FREQUENCY : TimeUnit2.DAYS.toMillis(30); + return enabled ? FREQUENCY : TimeUnit.DAYS.toMillis(30); } /** * Time till initial ping */ - private static final long TIME_TILL_PING = SystemProperties.getLong(ConnectionActivityMonitor.class.getName()+".timeToPing",TimeUnit2.MINUTES.toMillis(3)); + private static final long TIME_TILL_PING = SystemProperties.getLong(ConnectionActivityMonitor.class.getName()+".timeToPing",TimeUnit.MINUTES.toMillis(3)); - private static final long FREQUENCY = SystemProperties.getLong(ConnectionActivityMonitor.class.getName()+".frequency",TimeUnit2.SECONDS.toMillis(10)); + private static final long FREQUENCY = SystemProperties.getLong(ConnectionActivityMonitor.class.getName()+".frequency",TimeUnit.SECONDS.toMillis(10)); /** * When do we abandon the effort and cut off? */ - private static final long TIMEOUT = SystemProperties.getLong(ConnectionActivityMonitor.class.getName()+".timeToPing",TimeUnit2.MINUTES.toMillis(4)); + private static final long TIMEOUT = SystemProperties.getLong(ConnectionActivityMonitor.class.getName()+".timeToPing",TimeUnit.MINUTES.toMillis(4)); // disabled by default until proven in the production diff --git a/core/src/main/java/hudson/triggers/SCMTrigger.java b/core/src/main/java/hudson/triggers/SCMTrigger.java index 0bacbc6e54..682ce987fb 100644 --- a/core/src/main/java/hudson/triggers/SCMTrigger.java +++ b/core/src/main/java/hudson/triggers/SCMTrigger.java @@ -45,7 +45,7 @@ import hudson.util.FormValidation; import hudson.util.NamingThreadFactory; import hudson.util.SequentialExecutionQueue; import hudson.util.StreamTaskListener; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import java.io.File; import java.io.IOException; import java.io.OutputStream; @@ -748,5 +748,5 @@ public class SCMTrigger extends Trigger { /** * How long is too long for a polling activity to be in the queue? */ - public static long STARVATION_THRESHOLD = SystemProperties.getLong(SCMTrigger.class.getName()+".starvationThreshold", TimeUnit2.HOURS.toMillis(1)); + public static long STARVATION_THRESHOLD = SystemProperties.getLong(SCMTrigger.class.getName()+".starvationThreshold", TimeUnit.HOURS.toMillis(1)); } diff --git a/core/src/main/java/hudson/util/TimeUnit2.java b/core/src/main/java/hudson/util/TimeUnit2.java index 93d6343805..e9d8be0c31 100644 --- a/core/src/main/java/hudson/util/TimeUnit2.java +++ b/core/src/main/java/hudson/util/TimeUnit2.java @@ -29,6 +29,9 @@ package hudson.util; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.DoNotUse; + import java.util.concurrent.TimeUnit; /** @@ -67,6 +70,7 @@ import java.util.concurrent.TimeUnit; * had better conversion until Java 6 went out.) */ @Deprecated +@Restricted(DoNotUse.class) public enum TimeUnit2 { NANOSECONDS { @Override public long toNanos(long d) { return d; } diff --git a/core/src/main/java/jenkins/model/AssetManager.java b/core/src/main/java/jenkins/model/AssetManager.java index f6308e631d..ed148aac50 100644 --- a/core/src/main/java/jenkins/model/AssetManager.java +++ b/core/src/main/java/jenkins/model/AssetManager.java @@ -2,7 +2,7 @@ package jenkins.model; import hudson.Extension; import hudson.model.UnprotectedRootAction; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -60,7 +60,7 @@ public class AssetManager implements UnprotectedRootAction { // to create unique URLs. Recognize that and set a long expiration header. String requestPath = req.getRequestURI().substring(req.getContextPath().length()); boolean staticLink = requestPath.startsWith("/static/"); - long expires = staticLink ? TimeUnit2.DAYS.toMillis(365) : -1; + long expires = staticLink ? TimeUnit.DAYS.toMillis(365) : -1; // use serveLocalizedFile to support automatic locale selection rsp.serveLocalizedFile(req, resource, expires); diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index aec300fcb6..d048614663 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -165,7 +165,7 @@ import hudson.util.PluginServletFilter; import hudson.util.RemotingDiagnostics; import hudson.util.RemotingDiagnostics.HeapDump; import hudson.util.TextFile; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import hudson.util.VersionNumber; import hudson.util.XStream2; import hudson.views.DefaultMyViewsTabBar; @@ -900,7 +900,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve // JSON binding needs to be able to see all the classes from all the plugins WebApp.get(servletContext).setClassLoader(pluginManager.uberClassLoader); - adjuncts = new AdjunctManager(servletContext, pluginManager.uberClassLoader,"adjuncts/"+SESSION_HASH, TimeUnit2.DAYS.toMillis(365)); + adjuncts = new AdjunctManager(servletContext, pluginManager.uberClassLoader,"adjuncts/"+SESSION_HASH, TimeUnit.DAYS.toMillis(365)); // TODO pending move to standard blacklist, or API to append filter if (System.getProperty(ClassFilter.FILE_OVERRIDE_LOCATION_PROPERTY) == null) { // not using SystemProperties since ClassFilter does not either @@ -966,7 +966,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve protected void doRun() throws Exception { trimLabels(); } - }, TimeUnit2.MINUTES.toMillis(5), TimeUnit2.MINUTES.toMillis(5), TimeUnit.MILLISECONDS); + }, TimeUnit.MINUTES.toMillis(5), TimeUnit.MINUTES.toMillis(5), TimeUnit.MILLISECONDS); updateComputerList(); diff --git a/test/src/test/java/hudson/model/JobTest.java b/test/src/test/java/hudson/model/JobTest.java index e96f6aee35..d5a519bb69 100644 --- a/test/src/test/java/hudson/model/JobTest.java +++ b/test/src/test/java/hudson/model/JobTest.java @@ -34,7 +34,7 @@ import com.gargoylesoftware.htmlunit.TextPage; import hudson.Functions; import hudson.model.queue.QueueTaskFuture; import hudson.util.TextFile; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import java.io.IOException; import java.net.HttpURLConnection; import java.text.MessageFormat; diff --git a/test/src/test/java/hudson/model/UpdateCenterTest.java b/test/src/test/java/hudson/model/UpdateCenterTest.java index c073e4206b..b7879207c2 100644 --- a/test/src/test/java/hudson/model/UpdateCenterTest.java +++ b/test/src/test/java/hudson/model/UpdateCenterTest.java @@ -24,7 +24,7 @@ package hudson.model; import com.trilead.ssh2.crypto.Base64; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import net.sf.json.JSONObject; import java.io.ByteArrayInputStream; @@ -67,7 +67,7 @@ public class UpdateCenterTest { JSONObject signature = json.getJSONObject("signature"); for (Object cert : signature.getJSONArray("certificates")) { X509Certificate c = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(Base64.decode(cert.toString().toCharArray()))); - c.checkValidity(new Date(System.currentTimeMillis() + TimeUnit2.DAYS.toMillis(30))); + c.checkValidity(new Date(System.currentTimeMillis() + TimeUnit.DAYS.toMillis(30))); } } } diff --git a/test/src/test/java/hudson/node_monitors/ClockMonitorDescriptorTest.java b/test/src/test/java/hudson/node_monitors/ClockMonitorDescriptorTest.java index f2816ad1cd..58cf8067ed 100644 --- a/test/src/test/java/hudson/node_monitors/ClockMonitorDescriptorTest.java +++ b/test/src/test/java/hudson/node_monitors/ClockMonitorDescriptorTest.java @@ -6,7 +6,7 @@ import static org.junit.Assert.fail; import hudson.slaves.DumbSlave; import hudson.slaves.SlaveComputer; import hudson.util.ClockDifference; -import hudson.util.TimeUnit2; +import java.util.concurrent.TimeUnit; import org.junit.Rule; import org.junit.Test; @@ -32,10 +32,10 @@ public class ClockMonitorDescriptorTest { ClockDifference cd = ClockMonitor.DESCRIPTOR.monitor(c); long diff = cd.diff; - assertTrue(diff < TimeUnit2.SECONDS.toMillis(5)); - assertTrue(diff > TimeUnit2.SECONDS.toMillis(-5)); + assertTrue(diff < TimeUnit.SECONDS.toMillis(5)); + assertTrue(diff > TimeUnit.SECONDS.toMillis(-5)); assertTrue(cd.abs() >= 0); - assertTrue(cd.abs() < TimeUnit2.SECONDS.toMillis(5)); + assertTrue(cd.abs() < TimeUnit.SECONDS.toMillis(5)); assertFalse(cd.isDangerous()); assertTrue("html output too short", cd.toHtml().length() > 0); } -- GitLab From cde4041d00f6f970ee8cf83154023b71f297edf4 Mon Sep 17 00:00:00 2001 From: Baptiste Mathus Date: Fri, 19 May 2017 22:39:28 +0200 Subject: [PATCH 0030/1763] Fix issue with accmod on self referencing --- core/src/main/java/hudson/util/TimeUnit2.java | 2 ++ pom.xml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/util/TimeUnit2.java b/core/src/main/java/hudson/util/TimeUnit2.java index e9d8be0c31..e7b704286d 100644 --- a/core/src/main/java/hudson/util/TimeUnit2.java +++ b/core/src/main/java/hudson/util/TimeUnit2.java @@ -29,6 +29,7 @@ package hudson.util; +import hudson.RestrictedSince; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; @@ -70,6 +71,7 @@ import java.util.concurrent.TimeUnit; * had better conversion until Java 6 went out.) */ @Deprecated +@RestrictedSince("TODO") @Restricted(DoNotUse.class) public enum TimeUnit2 { NANOSECONDS { diff --git a/pom.xml b/pom.xml index d3b3b41303..14c774a01f 100644 --- a/pom.xml +++ b/pom.xml @@ -95,7 +95,7 @@ THE SOFTWARE. 3.0.4 true 1.2 - 1.11 + 1.12-PR6-SNAPSHOT ${access-modifier.version} ${access-modifier.version} -- GitLab From 741be05517eb5158bb2f273fe077c57ab7448006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Tue, 23 May 2017 15:09:41 +0200 Subject: [PATCH 0031/1763] [FIXED JENKINS-44361] Follow HTTP redirects while initiating CLI connection --- cli/src/main/java/hudson/cli/CLI.java | 28 +++- .../java/hudson/cli/FullDuplexHttpStream.java | 13 +- cli/src/main/java/hudson/cli/SSHCLI.java | 1 + test/src/test/java/hudson/cli/CLITest.java | 138 ++++++++++++++++-- 4 files changed, 162 insertions(+), 18 deletions(-) diff --git a/cli/src/main/java/hudson/cli/CLI.java b/cli/src/main/java/hudson/cli/CLI.java index c9d7149ca3..6f7c9a7e64 100644 --- a/cli/src/main/java/hudson/cli/CLI.java +++ b/cli/src/main/java/hudson/cli/CLI.java @@ -306,9 +306,7 @@ public class CLI implements AutoCloseable { flushURLConnection(head); if (p1==null && p2==null) { - // we aren't finding headers we are expecting. Is this even running Jenkins? - if (head.getHeaderField("X-Hudson")==null && head.getHeaderField("X-Jenkins")==null) - throw new IOException("There's no Jenkins running at "+url); + verifyJenkinsConnection(head); throw new IOException("No X-Jenkins-CLI2-Port among " + head.getHeaderFields().keySet()); } @@ -317,6 +315,27 @@ public class CLI implements AutoCloseable { else return new CliPort(new InetSocketAddress(h,Integer.parseInt(p1)),identity,1); } + /** + * Make sure the connection is open against Jenkins server. + * + * @param c The open connection. + * @throws IOException in case of communication problem. + * @throws NotTalkingToJenkinsException when connection is not made to Jenkins service. + */ + /*package*/ static void verifyJenkinsConnection(URLConnection c) throws IOException { + if (c.getHeaderField("X-Hudson")==null && c.getHeaderField("X-Jenkins")==null) + throw new NotTalkingToJenkinsException(c); + } + /*package*/ static final class NotTalkingToJenkinsException extends IOException { + public NotTalkingToJenkinsException(String s) { + super(s); + } + + public NotTalkingToJenkinsException(URLConnection c) { + super("There's no Jenkins running at " + c.getURL().toString()); + } + } + /** * Flush the supplied {@link URLConnection} input and close the * connection nicely. @@ -405,6 +424,9 @@ public class CLI implements AutoCloseable { public static void main(final String[] _args) throws Exception { try { System.exit(_main(_args)); + } catch (NotTalkingToJenkinsException ex) { + System.err.println(ex.getMessage()); + System.exit(-1); } catch (Throwable t) { // if the CLI main thread die, make sure to kill the JVM. t.printStackTrace(); diff --git a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java index 8017b44e41..063de3e385 100644 --- a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java +++ b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java @@ -74,17 +74,20 @@ public class FullDuplexHttpStream { throw new IllegalArgumentException(relativeTarget); } - this.base = base; + // As this transport mode is using POST, it is necessary to resolve possible redirections using GET first. + HttpURLConnection con = (HttpURLConnection) base.openConnection(); + con.getInputStream().close(); + this.base = con.getURL(); this.authorization = authorization; - URL target = new URL(base, relativeTarget); + URL target = new URL(this.base, relativeTarget); 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 = (HttpURLConnection) target.openConnection(); con.setDoOutput(true); // request POST to avoid caching con.setRequestMethod("POST"); con.addRequestProperty("Session", uuid.toString()); @@ -99,7 +102,7 @@ public class FullDuplexHttpStream { input = con.getInputStream(); // make sure we hit the right URL if (con.getHeaderField("Hudson-Duplex") == null) { - throw new IOException(target + " does not look like Jenkins, or is not serving the HTTP Duplex transport"); + throw new CLI.NotTalkingToJenkinsException("There's no Jenkins running at " + target + ", or is not serving the HTTP Duplex transport"); } // client->server uses chunked encoded POST for unlimited capacity. @@ -158,6 +161,8 @@ public class FullDuplexHttpStream { if (authorization != null) { con.addRequestProperty("Authorization", authorization); } + CLI.verifyJenkinsConnection(con); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()))) { String line = reader.readLine(); String nextLine = reader.readLine(); diff --git a/cli/src/main/java/hudson/cli/SSHCLI.java b/cli/src/main/java/hudson/cli/SSHCLI.java index 8a2ecc4f38..023a304e7f 100644 --- a/cli/src/main/java/hudson/cli/SSHCLI.java +++ b/cli/src/main/java/hudson/cli/SSHCLI.java @@ -63,6 +63,7 @@ class SSHCLI { Logger.getLogger(SecurityUtils.class.getName()).setLevel(Level.WARNING); // suppress: BouncyCastle not registered, using the default JCE provider URL url = new URL(jenkinsUrl + "login"); URLConnection conn = url.openConnection(); + CLI.verifyJenkinsConnection(conn); String endpointDescription = conn.getHeaderField("X-SSH-Endpoint"); if (endpointDescription == null) { diff --git a/test/src/test/java/hudson/cli/CLITest.java b/test/src/test/java/hudson/cli/CLITest.java index 19abf44b8f..15f6c47a41 100644 --- a/test/src/test/java/hudson/cli/CLITest.java +++ b/test/src/test/java/hudson/cli/CLITest.java @@ -24,20 +24,26 @@ package hudson.cli; +import com.gargoylesoftware.htmlunit.WebResponse; import com.google.common.collect.Lists; import hudson.Functions; import hudson.Launcher; import hudson.Proc; import hudson.model.FreeStyleProject; +import hudson.model.UnprotectedRootAction; import hudson.model.User; +import hudson.security.csrf.CrumbExclusion; import hudson.util.StreamTaskListener; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.io.PrintWriter; import java.nio.file.Files; import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; + +import jenkins.model.GlobalConfiguration; import jenkins.model.Jenkins; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; @@ -56,6 +62,17 @@ import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.MockAuthorizationStrategy; import org.jvnet.hudson.test.SleepBuilder; +import org.jvnet.hudson.test.TestExtension; +import org.kohsuke.stapler.HttpResponses; +import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.StaplerProxy; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; public class CLITest { @@ -68,9 +85,12 @@ public class CLITest { @Rule public TemporaryFolder tmp = new TemporaryFolder(); + private File home; + private File jar; + /** Sets up a fake {@code user.home} so that tests {@code -ssh} mode does not get confused by the developer’s real {@code ~/.ssh/known_hosts}. */ private File tempHome() throws IOException { - File home = tmp.newFolder(); + home = tmp.newFolder(); // Seems it gets created automatically but with inappropriate permissions: File known_hosts = new File(new File(home, ".ssh"), "known_hosts"); assumeTrue(known_hosts.getParentFile().mkdir()); @@ -93,12 +113,12 @@ public class CLITest { @Issue("JENKINS-41745") @Test public void strictHostKey() throws Exception { - File home = tempHome(); + home = tempHome(); + grabCliJar(); + r.jenkins.setSecurityRealm(r.createDummySecurityRealm()); r.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy().grant(Jenkins.ADMINISTER).everywhere().to("admin")); SSHD.get().setPort(0); - File jar = tmp.newFile("jenkins-cli.jar"); - FileUtils.copyURLToFile(r.jenkins.getJnlpJars("jenkins-cli.jar").getURL(), jar); File privkey = tmp.newFile("id_rsa"); FileUtils.copyURLToFile(CLITest.class.getResource("id_rsa"), privkey); User.get("admin").addProperty(new UserPropertyImpl(IOUtils.toString(CLITest.class.getResource("id_rsa.pub")))); @@ -117,25 +137,30 @@ public class CLITest { assertThat(baos.toString(), containsString("Authenticated as: admin")); } + private void grabCliJar() throws IOException { + jar = tmp.newFile("jenkins-cli.jar"); + FileUtils.copyURLToFile(r.jenkins.getJnlpJars("jenkins-cli.jar").getURL(), jar); + } + @Issue("JENKINS-41745") @Test public void interrupt() throws Exception { - File home = tempHome(); + home = tempHome(); + grabCliJar(); + r.jenkins.setSecurityRealm(r.createDummySecurityRealm()); r.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy().grant(Jenkins.ADMINISTER).everywhere().to("admin")); SSHD.get().setPort(0); - File jar = tmp.newFile("jenkins-cli.jar"); - FileUtils.copyURLToFile(r.jenkins.getJnlpJars("jenkins-cli.jar").getURL(), jar); File privkey = tmp.newFile("id_rsa"); FileUtils.copyURLToFile(CLITest.class.getResource("id_rsa"), privkey); User.get("admin").addProperty(new UserPropertyImpl(IOUtils.toString(CLITest.class.getResource("id_rsa.pub")))); FreeStyleProject p = r.createFreeStyleProject("p"); p.getBuildersList().add(new SleepBuilder(TimeUnit.MINUTES.toMillis(5))); - doInterrupt(jar, home, p, "-remoting", "-i", privkey.getAbsolutePath()); - doInterrupt(jar, home, p, "-ssh", "-user", "admin", "-i", privkey.getAbsolutePath()); - doInterrupt(jar, home, p, "-http", "-auth", "admin:admin"); + doInterrupt(p, "-remoting", "-i", privkey.getAbsolutePath()); + doInterrupt(p, "-ssh", "-user", "admin", "-i", privkey.getAbsolutePath()); + doInterrupt(p, "-http", "-auth", "admin:admin"); } - private void doInterrupt(File jar, File home, FreeStyleProject p, String... modeArgs) throws Exception { + private void doInterrupt(FreeStyleProject p, String... modeArgs) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); List args = Lists.newArrayList("java", "-Duser.home=" + home, "-jar", jar.getAbsolutePath(), "-s", r.getURL().toString()); args.addAll(Arrays.asList(modeArgs)); @@ -149,4 +174,95 @@ public class CLITest { r.waitForCompletion(p.getLastBuild()); } + @Test + public void reportNotJenkins() throws Exception { + home = tempHome(); + grabCliJar(); + + for (String transport: Arrays.asList("-remoting", "-http", "-ssh")) { + + String url = "http://jenkins.io"; + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int ret = new Launcher.LocalLauncher(StreamTaskListener.fromStderr()).launch().cmds( + "java", "-Duser.home=" + home, "-jar", jar.getAbsolutePath(), "-s", url, transport, "-user", "asdf", "who-am-i" + ).stdout(baos).stderr(baos).join(); + + assertThat(baos.toString(), containsString("There's no Jenkins running at")); + assertNotEquals(0, ret); + } + } + + @Test + public void redirectToEndpointShouldBeFollowed() throws Exception { + home = tempHome(); + grabCliJar(); + + // Enable CLI over SSH + SSHD sshd = GlobalConfiguration.all().get(SSHD.class); + sshd.setPort(0); // random + sshd.start(); + + // Sanity check + JenkinsRule.WebClient wc = r.createWebClient(); + wc.getOptions().setRedirectEnabled(false); + wc.getOptions().setThrowExceptionOnFailingStatusCode(false); + WebResponse rsp = wc.goTo("cli-proxy/").getWebResponse(); + assertEquals(rsp.getContentAsString(), 302, rsp.getStatusCode()); + assertEquals(rsp.getContentAsString(), null, rsp.getResponseHeaderValue("X-Jenkins")); + assertEquals(rsp.getContentAsString(), null, rsp.getResponseHeaderValue("X-Jenkins-CLI-Port")); + assertEquals(rsp.getContentAsString(), null, rsp.getResponseHeaderValue("X-SSH-Endpoint")); + + for (String transport: Arrays.asList("-remoting", "-http", "-ssh")) { + + String url = r.getURL().toString() + "cli-proxy/"; + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int ret = new Launcher.LocalLauncher(StreamTaskListener.fromStderr()).launch().cmds( + "java", "-Duser.home=" + home, "-jar", jar.getAbsolutePath(), "-s", url, transport, "-user", "asdf", "who-am-i" + ).stdout(baos).stderr(baos).join(); + + //assertThat(baos.toString(), containsString("There's no Jenkins running at")); + assertThat(baos.toString(), containsString("Authenticated as: anonymous")); + assertEquals(0, ret); + } + } + @TestExtension("redirectToEndpointShouldBeFollowed") + public static final class CliProxyAction extends CrumbExclusion implements UnprotectedRootAction, StaplerProxy { + + @Override public String getIconFileName() { + return "cli-proxy"; + } + + @Override public String getDisplayName() { + return "cli-proxy"; + } + + @Override public String getUrlName() { + return "cli-proxy"; + } + + @Override public Object getTarget() { + throw doDynamic(Stapler.getCurrentRequest(), Stapler.getCurrentResponse()); + } + + public HttpResponses.HttpResponseException doDynamic(StaplerRequest req, StaplerResponse rsp) { + final String url = req.getRequestURIWithQueryString().replaceFirst("/cli-proxy", ""); + // Custom written redirect so no traces of Jenkins are present in headers + return new HttpResponses.HttpResponseException() { + @Override + public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + rsp.setHeader("Location", url); + rsp.setContentType("text/html"); + rsp.setStatus(302); + PrintWriter w = rsp.getWriter(); + w.append("Redirect to ").append(url); + } + }; + } + + @Override // Permit access to cli-proxy/XXX without CSRF checks + public boolean process(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { + chain.doFilter(request, response); + return true; + } + } } -- GitLab From c775c0423ccedd2a42a019e81fc33b166c2fc364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Thu, 25 May 2017 10:31:18 +0200 Subject: [PATCH 0032/1763] Towards 2.60.1 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 4b983f15a9..dbbdb23cec 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.60 + 2.60.1-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 8d049a6152..f1b0e4bdc3 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60 + 2.60.1-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index 0028e35a34..eb741b36ce 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60 + 2.60.1-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.60 + HEAD diff --git a/test/pom.xml b/test/pom.xml index 821118e78e..fe3d5e953a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60 + 2.60.1-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index d499b1720f..41a6557f3b 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60 + 2.60.1-SNAPSHOT jenkins-war -- GitLab From 79fd4feca6799768a999041c211f5a9e4fa2aa72 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Thu, 25 May 2017 12:41:33 -0700 Subject: [PATCH 0033/1763] [maven-release-plugin] prepare release jenkins-2.46.3 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 8b9ac06095..9801e7261e 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.46.3-SNAPSHOT + 2.46.3 cli diff --git a/core/pom.xml b/core/pom.xml index fd02e86467..12e6214aa6 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.3-SNAPSHOT + 2.46.3 jenkins-core diff --git a/pom.xml b/pom.xml index faf227600e..a53200c065 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.3-SNAPSHOT + 2.46.3 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.46.3 diff --git a/test/pom.xml b/test/pom.xml index 7b2f071069..399c53c9b9 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.3-SNAPSHOT + 2.46.3 test diff --git a/war/pom.xml b/war/pom.xml index e47be05e09..0f0a6ad62a 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.3-SNAPSHOT + 2.46.3 jenkins-war -- GitLab From 61781a6d4dfa7d829cc194d3fb7e50972ac150de Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Thu, 25 May 2017 12:41:33 -0700 Subject: [PATCH 0034/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 9801e7261e..8b94f187c3 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.46.3 + 2.46.4-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 12e6214aa6..54c7ad4078 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.3 + 2.46.4-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index a53200c065..44cdd69f42 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.3 + 2.46.4-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.46.3 + HEAD diff --git a/test/pom.xml b/test/pom.xml index 399c53c9b9..5d0869ae66 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.3 + 2.46.4-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 0f0a6ad62a..3089a2f2b3 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.46.3 + 2.46.4-SNAPSHOT jenkins-war -- GitLab From 647b78b972ca888030b1259dc4af436400d16319 Mon Sep 17 00:00:00 2001 From: Michael Clarke Date: Wed, 17 May 2017 21:21:39 +0100 Subject: [PATCH 0035/1763] [FIXED JENKINS-44120] Bump Trilead version to fix NPE in KEX negotiation (cherry picked from commit 7dbcd02cf71eabf92e58522968230d564d9b99e5) --- core/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/pom.xml b/core/pom.xml index f1b0e4bdc3..67bf67f29b 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -115,7 +115,7 @@ THE SOFTWARE. org.jenkins-ci trilead-ssh2 - build217-jenkins-10 + build-217-jenkins-11 org.kohsuke.stapler -- GitLab From 552d2835ccf047d37217dac8245b1e042240622e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Mon, 19 Jun 2017 09:34:44 +0200 Subject: [PATCH 0036/1763] Address review comment --- cli/src/main/java/hudson/cli/CLI.java | 2 +- test/src/test/java/hudson/cli/CLITest.java | 38 +++++++++++++++++++--- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/cli/src/main/java/hudson/cli/CLI.java b/cli/src/main/java/hudson/cli/CLI.java index 6f7c9a7e64..3b8c73e473 100644 --- a/cli/src/main/java/hudson/cli/CLI.java +++ b/cli/src/main/java/hudson/cli/CLI.java @@ -426,7 +426,7 @@ public class CLI implements AutoCloseable { System.exit(_main(_args)); } catch (NotTalkingToJenkinsException ex) { System.err.println(ex.getMessage()); - System.exit(-1); + System.exit(3); } catch (Throwable t) { // if the CLI main thread die, make sure to kill the JVM. t.printStackTrace(); diff --git a/test/src/test/java/hudson/cli/CLITest.java b/test/src/test/java/hudson/cli/CLITest.java index 15f6c47a41..0a781d77ca 100644 --- a/test/src/test/java/hudson/cli/CLITest.java +++ b/test/src/test/java/hudson/cli/CLITest.java @@ -174,14 +174,14 @@ public class CLITest { r.waitForCompletion(p.getLastBuild()); } - @Test + @Test @Issue("JENKINS-44361") public void reportNotJenkins() throws Exception { home = tempHome(); grabCliJar(); - for (String transport: Arrays.asList("-remoting", "-http", "-ssh")) { + String url = r.getURL().toExternalForm() + "not-jenkins/"; + for (String transport : Arrays.asList("-remoting", "-http", "-ssh")) { - String url = "http://jenkins.io"; ByteArrayOutputStream baos = new ByteArrayOutputStream(); int ret = new Launcher.LocalLauncher(StreamTaskListener.fromStderr()).launch().cmds( "java", "-Duser.home=" + home, "-jar", jar.getAbsolutePath(), "-s", url, transport, "-user", "asdf", "who-am-i" @@ -191,8 +191,38 @@ public class CLITest { assertNotEquals(0, ret); } } + @TestExtension("reportNotJenkins") + public static final class NoJenkinsAction extends CrumbExclusion implements UnprotectedRootAction, StaplerProxy { - @Test + @Override public String getIconFileName() { + return "not-jenkins"; + } + + @Override public String getDisplayName() { + return "not-jenkins"; + } + + @Override public String getUrlName() { + return "not-jenkins"; + } + + @Override public Object getTarget() { + doDynamic(Stapler.getCurrentRequest(), Stapler.getCurrentResponse()); + return this; + } + + public void doDynamic(StaplerRequest req, StaplerResponse rsp) { + rsp.setStatus(200); + } + + @Override // Permit access to cli-proxy/XXX without CSRF checks + public boolean process(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { + chain.doFilter(request, response); + return true; + } + } + + @Test @Issue("JENKINS-44361") public void redirectToEndpointShouldBeFollowed() throws Exception { home = tempHome(); grabCliJar(); -- GitLab From 749ca07380d1b5e8858c9fa36c6bbbf8b6855a21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Mon, 19 Jun 2017 12:51:22 +0200 Subject: [PATCH 0037/1763] Do not timeout the test when cli invocation fails --- test/src/test/java/hudson/cli/CLITest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/src/test/java/hudson/cli/CLITest.java b/test/src/test/java/hudson/cli/CLITest.java index 0a781d77ca..41d6756a32 100644 --- a/test/src/test/java/hudson/cli/CLITest.java +++ b/test/src/test/java/hudson/cli/CLITest.java @@ -167,6 +167,9 @@ public class CLITest { args.addAll(Arrays.asList("build", "-s", "-v", "p")); Proc proc = new Launcher.LocalLauncher(StreamTaskListener.fromStderr()).launch().cmds(args).stdout(new TeeOutputStream(baos, System.out)).stderr(System.err).start(); while (!baos.toString().contains("Sleeping ")) { + if (!proc.isAlive()) { + throw new AssertionError("Process failed to start with " + proc.join()); + } Thread.sleep(100); } System.err.println("Killing client"); -- GitLab From d9cb39f95f9add20dabbc9ab5bd8936c8bccd87d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Mon, 19 Jun 2017 12:52:18 +0200 Subject: [PATCH 0038/1763] Use authorization to resolve redirect --- cli/src/main/java/hudson/cli/FullDuplexHttpStream.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java index 063de3e385..3b1f0ae5a7 100644 --- a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java +++ b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java @@ -76,6 +76,10 @@ public class FullDuplexHttpStream { // As this transport mode is using POST, it is necessary to resolve possible redirections using GET first. HttpURLConnection con = (HttpURLConnection) base.openConnection(); + if (authorization != null) { + System.out.println("Auth added: " + authorization); + con.addRequestProperty("Authorization", authorization); + } con.getInputStream().close(); this.base = con.getURL(); this.authorization = authorization; -- GitLab From 662df374268f02567508b8e732b3026f48710bd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Mon, 19 Jun 2017 13:22:25 +0200 Subject: [PATCH 0039/1763] Resolving the redirect is OK to fail --- .../java/hudson/cli/FullDuplexHttpStream.java | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java index 3b1f0ae5a7..ef8bd5ff12 100644 --- a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java +++ b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java @@ -74,14 +74,7 @@ public class FullDuplexHttpStream { throw new IllegalArgumentException(relativeTarget); } - // As this transport mode is using POST, it is necessary to resolve possible redirections using GET first. - HttpURLConnection con = (HttpURLConnection) base.openConnection(); - if (authorization != null) { - System.out.println("Auth added: " + authorization); - con.addRequestProperty("Authorization", authorization); - } - con.getInputStream().close(); - this.base = con.getURL(); + this.base = tryToResolveRedirects(base, authorization); this.authorization = authorization; URL target = new URL(this.base, relativeTarget); @@ -91,7 +84,7 @@ public class FullDuplexHttpStream { UUID uuid = UUID.randomUUID(); // so that the server can correlate those two connections // server->client - con = (HttpURLConnection) target.openConnection(); + HttpURLConnection con = (HttpURLConnection) target.openConnection(); con.setDoOutput(true); // request POST to avoid caching con.setRequestMethod("POST"); con.addRequestProperty("Session", uuid.toString()); @@ -127,6 +120,24 @@ public class FullDuplexHttpStream { output = con.getOutputStream(); } + // As this transport mode is using POST, it is necessary to resolve possible redirections using GET first. + private URL tryToResolveRedirects(URL base, String authorization) { + try { + HttpURLConnection con = (HttpURLConnection) base.openConnection(); + if (authorization != null) { + con.addRequestProperty("Authorization", authorization); + } + con.getInputStream().close(); + base = con.getURL(); + } catch (Exception ex) { + // Do not obscure the problem propagating the exception. If the problem is real it will manifest during the + // actual exchange so will be reported properly there. If it is not real (no permission in UI but sufficient + // for CLI connection using one of its mechanisms), there is no reason to bother user about it. + LOGGER.log(Level.FINE, "Failed to resolve potential redirects", ex); + } + return base; + } + static final int BLOCK_SIZE = 1024; static final Logger LOGGER = Logger.getLogger(FullDuplexHttpStream.class.getName()); -- GitLab From adbd903f9313bda508636da43beaabb54686a1a1 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Thu, 22 Jun 2017 07:14:42 -0700 Subject: [PATCH 0040/1763] [maven-release-plugin] prepare release jenkins-2.60.1 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index dbbdb23cec..dc941af471 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.60.1-SNAPSHOT + 2.60.1 cli diff --git a/core/pom.xml b/core/pom.xml index 67bf67f29b..d29ea2e126 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.1-SNAPSHOT + 2.60.1 jenkins-core diff --git a/pom.xml b/pom.xml index eb741b36ce..5244aa31c9 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.1-SNAPSHOT + 2.60.1 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.60.1 diff --git a/test/pom.xml b/test/pom.xml index fe3d5e953a..d0afc88fa0 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.1-SNAPSHOT + 2.60.1 test diff --git a/war/pom.xml b/war/pom.xml index 41a6557f3b..6e1ce15fd0 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.1-SNAPSHOT + 2.60.1 jenkins-war -- GitLab From 4ee8195154ed18edb4e03a7445c61f14fde8d04f Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Thu, 22 Jun 2017 07:14:42 -0700 Subject: [PATCH 0041/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index dc941af471..c2eb35cbe0 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.60.1 + 2.60.2-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index d29ea2e126..83809ddb77 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.1 + 2.60.2-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index 5244aa31c9..606532b66f 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.1 + 2.60.2-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.60.1 + HEAD diff --git a/test/pom.xml b/test/pom.xml index d0afc88fa0..5d24b74d31 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.1 + 2.60.2-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 6e1ce15fd0..2434c17bc3 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.1 + 2.60.2-SNAPSHOT jenkins-war -- GitLab From b171bc60535dc2268f4c7f89a0daa6f9cc06febd Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 6 Jun 2015 23:56:19 +0300 Subject: [PATCH 0042/1763] [JENKINS-9283] - Document timezones support in help pages --- .../triggers/TimerTrigger/help-spec.html | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html index bfe1d96e21..901227dcef 100644 --- a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html @@ -80,4 +80,31 @@ H H(9-16)/2 * * 1-5 # once a day on the 1st and 15th of every month except December H H 1,15 1-11 * +

+ Timezone specification.
+ Periodic tasks are normally executed at the scheduled time in the timezone of + the Jenkins master JVM (currently Central European Time). + This behaviour can be optionally changed by specifying an alternative timezone in the + first line of the field. +

+
    +
  • Timezone specification should contain the "TZ=$(timezoneID)" string
  • +
  • If a timezone is not specified or if it is specified incorrectly, the default Jenkins JVM timezone will be used
  • +
  • Th supports all timezones returned by + + java.util.TimeZone::getAvailableIDs() + on the Jenkins server JVM +
  • +
  • Examples: EST, Etc/GMT+5, US/Pacific, America/Indiana/Petersburg, etc.
  • +
+

+ Example: +

+
+TZ=Europe/London
+# This job needs to be run in the morning, London time
+H 8 * * *
+# Butlers do not have a five o'clock, so we run the job again
+H(0-30) 17 * * * 
+
-- GitLab From f6176bc19d6d62bb9dd20748af080fcb1cfd9976 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sun, 7 Jun 2015 00:16:38 +0300 Subject: [PATCH 0043/1763] [JENKINS-9283] - Don't accept invalid timezones, add form validation --- core/src/main/java/hudson/scheduler/CronTabList.java | 4 ++-- .../resources/hudson/triggers/TimerTrigger/help-spec.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/scheduler/CronTabList.java b/core/src/main/java/hudson/scheduler/CronTabList.java index bb20834597..1bc90f3f42 100644 --- a/core/src/main/java/hudson/scheduler/CronTabList.java +++ b/core/src/main/java/hudson/scheduler/CronTabList.java @@ -108,9 +108,9 @@ public final class CronTabList { if(lineNumber == 1 && line.startsWith("TZ=")) { timezone = getValidTimezone(line.replace("TZ=","")); if(timezone != null) { - LOGGER.log(Level.CONFIG, "cron with timezone {0}", timezone); + LOGGER.log(Level.CONFIG, "CRON with timezone {0}", timezone); } else { - LOGGER.log(Level.CONFIG, "invalid timezone {0}", line); + throw new ANTLRException("Invalid or unsupported timezone '" + line + "'"); } continue; } diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html index 901227dcef..0c076a29d1 100644 --- a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html @@ -89,7 +89,7 @@ H H 1,15 1-11 *

  • Timezone specification should contain the "TZ=$(timezoneID)" string
  • -
  • If a timezone is not specified or if it is specified incorrectly, the default Jenkins JVM timezone will be used
  • +
  • If a timezone is not specified, the default Jenkins JVM timezone will be used
  • Th supports all timezones returned by java.util.TimeZone::getAvailableIDs() -- GitLab From 9635b7241f400dc416c8613b8ff8c18886a2c785 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Mon, 26 Jun 2017 18:29:39 +0200 Subject: [PATCH 0044/1763] Add list of supported time zone IDs, rephrase some of the doc --- .../java/hudson/scheduler/CronTabList.java | 2 +- .../{help-spec.html => help-spec.jelly} | 46 ++++++++++--------- 2 files changed, 26 insertions(+), 22 deletions(-) rename core/src/main/resources/hudson/triggers/TimerTrigger/{help-spec.html => help-spec.jelly} (78%) diff --git a/core/src/main/java/hudson/scheduler/CronTabList.java b/core/src/main/java/hudson/scheduler/CronTabList.java index 1bc90f3f42..eba4f007f8 100644 --- a/core/src/main/java/hudson/scheduler/CronTabList.java +++ b/core/src/main/java/hudson/scheduler/CronTabList.java @@ -110,7 +110,7 @@ public final class CronTabList { if(timezone != null) { LOGGER.log(Level.CONFIG, "CRON with timezone {0}", timezone); } else { - throw new ANTLRException("Invalid or unsupported timezone '" + line + "'"); + throw new ANTLRException("Invalid or unsupported timezone '" + timezone + "'"); } continue; } diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly similarity index 78% rename from core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly index 0c076a29d1..5a45418a29 100644 --- a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly @@ -1,3 +1,5 @@ + +
    This field follows the syntax of cron (with minor differences). Specifically, each line consists of 5 fields separated by TAB or whitespace: @@ -80,31 +82,33 @@ H H(9-16)/2 * * 1-5 # once a day on the 1st and 15th of every month except December H H 1,15 1-11 * +

    Timezone specification

    +

    - Timezone specification.
    Periodic tasks are normally executed at the scheduled time in the timezone of - the Jenkins master JVM (currently Central European Time). - This behaviour can be optionally changed by specifying an alternative timezone in the + the Jenkins master JVM (currently ${currentTimeZone.getID()}). + This behavior can optionally be changed by specifying an alternative timezone in the first line of the field. + Timezone specification starts with TZ=, followed by the ID of a time zone.

    -
    +

    + Complete example of a schedule with a timezone specification: +

    +
    +    TZ=Europe/London
    +    # This job needs to be run in the morning, London time
    +    H 8 * * *
    +    # Butlers do not have a five o'clock, so we run the job again
    +    H(0-30) 17 * * *
    +  

    - Example: + The supported timezones depend on the Java runtime Jenkins is running on. The list of supported time zone IDs on this instance is:

    -
    -TZ=Europe/London
    -# This job needs to be run in the morning, London time
    -H 8 * * *
    -# Butlers do not have a five o'clock, so we run the job again
    -H(0-30) 17 * * * 
    -
    + +
      + +
    • ${timeZone}
    • +
      +
    + \ No newline at end of file -- GitLab From 7b69fe5be6ceb0a10d52f9c4496160d9e93cb55f Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Mon, 26 Jun 2017 15:19:27 -0400 Subject: [PATCH 0045/1763] [INFRA-1032] ${user.name} might contain metacharacters. --- Jenkinsfile | 2 +- pom.xml | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 70bd8d87df..bcced2b016 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -44,7 +44,7 @@ for(i = 0; i < buildTypes.size(); i++) { sh mvnCmd sh 'test `git status --short | tee /dev/stderr | wc --bytes` -eq 0' } else { - bat "$mvnCmd -Duser.name=yay" // INFRA-1032 workaround + bat mvnCmd } } } diff --git a/pom.xml b/pom.xml index 16f953ccbe..08779571c8 100644 --- a/pom.xml +++ b/pom.xml @@ -282,6 +282,19 @@ THE SOFTWARE. + user.name + + regex-property + + + user.name.escaped + ${user.name} + ([$\\]) + \\$1 + false + + + version-property regex-property @@ -290,7 +303,7 @@ THE SOFTWARE. build.version ${project.version} -SNAPSHOT - -SNAPSHOT (${build.type}-${now}-${user.name}) + -SNAPSHOT (${build.type}-${now}-${user.name.escaped}) false -- GitLab From 4a4bdc981f97e9ae04b549907e3f386eb7bf976a Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Mon, 26 Jun 2017 18:10:28 -0400 Subject: [PATCH 0046/1763] The `reload-configuration` CLI command ought to wait until the reload is finished. --- .../cli/ReloadConfigurationCommand.java | 25 +++++++++++++++++-- .../java/hudson/util/JenkinsReloadFailed.java | 2 +- core/src/main/java/jenkins/model/Jenkins.java | 4 +-- .../cli/ReloadConfigurationCommandTest.java | 7 ------ 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java b/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java index 25199ec5be..adb61e12c6 100644 --- a/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java +++ b/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java @@ -25,7 +25,10 @@ package hudson.cli; import hudson.Extension; +import hudson.util.HudsonIsLoading; +import hudson.util.JenkinsReloadFailed; import jenkins.model.Jenkins; +import org.kohsuke.stapler.WebApp; /** * Reload everything from the file system. @@ -43,8 +46,26 @@ public class ReloadConfigurationCommand extends CLICommand { @Override protected int run() throws Exception { - Jenkins.getActiveInstance().doReload(); - return 0; + Jenkins j = Jenkins.getInstance(); + // Or perhaps simpler to inline the thread body of doReload? + j.doReload(); + Object app; + while ((app = WebApp.get(j.servletContext).getApp()) instanceof HudsonIsLoading) { + Thread.sleep(100); + } + if (app instanceof Jenkins) { + return 0; + } else if (app instanceof JenkinsReloadFailed) { + Throwable t = ((JenkinsReloadFailed) app).cause; + if (t instanceof Exception) { + throw (Exception) t; + } else { + throw new RuntimeException(t); + } + } else { + stderr.println("Unexpected status " + app); + return 1; // could throw JenkinsReloadFailed.cause if it were not deprecated + } } } diff --git a/core/src/main/java/hudson/util/JenkinsReloadFailed.java b/core/src/main/java/hudson/util/JenkinsReloadFailed.java index 7022844bce..ab27d5969f 100644 --- a/core/src/main/java/hudson/util/JenkinsReloadFailed.java +++ b/core/src/main/java/hudson/util/JenkinsReloadFailed.java @@ -9,7 +9,7 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; * @author Kohsuke Kawaguchi */ public class JenkinsReloadFailed extends BootFailure { - @Restricted(NoExternalUse.class) @Deprecated + @Restricted(NoExternalUse.class) public final Throwable cause; public JenkinsReloadFailed(Throwable cause) { diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 34dce65e41..6e2c8f87fa 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -3986,7 +3986,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve LOGGER.log(Level.WARNING, "Reloading Jenkins as requested by {0}", getAuthentication().getName()); // engage "loading ..." UI and then run the actual task in a separate thread - servletContext.setAttribute("app", new HudsonIsLoading()); + WebApp.get(servletContext).setApp(new HudsonIsLoading()); new Thread("Jenkins config reload thread") { @Override @@ -4025,7 +4025,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve User.reload(); queue.load(); - servletContext.setAttribute("app", this); + WebApp.get(servletContext).setApp(this); } /** diff --git a/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java b/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java index a6018a8874..092fd6ee50 100644 --- a/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java +++ b/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java @@ -173,13 +173,6 @@ public class ReloadConfigurationCommandTest { final CLICommandInvoker.Result result = command.invoke(); assertThat(result, succeededSilently()); - - // reload-configuration is performed in a separate thread - // we have to wait until it finishes - while (!(j.jenkins.servletContext.getAttribute("app") instanceof Jenkins)) { - System.out.println("Jenkins reload operation is performing, sleeping 1s..."); - Thread.sleep(1000); - } } private void replace(String path, String search, String replace) { -- GitLab From c906a181ad985ca80ad1b363e144cd71d1ab5145 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Thu, 29 Jun 2017 14:37:19 +0200 Subject: [PATCH 0047/1763] s/timezone/time zone --- .../hudson/triggers/TimerTrigger/help-spec.jelly | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly index 5a45418a29..5acdecd0f0 100644 --- a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly @@ -82,17 +82,17 @@ H H(9-16)/2 * * 1-5 # once a day on the 1st and 15th of every month except December H H 1,15 1-11 * -

    Timezone specification

    +

    Time zone specification

    - Periodic tasks are normally executed at the scheduled time in the timezone of + Periodic tasks are normally executed at the scheduled time in the time zone of the Jenkins master JVM (currently ${currentTimeZone.getID()}). - This behavior can optionally be changed by specifying an alternative timezone in the + This behavior can optionally be changed by specifying an alternative time zone in the first line of the field. - Timezone specification starts with TZ=, followed by the ID of a time zone. + Time zone specification starts with TZ=, followed by the ID of a time zone.

    - Complete example of a schedule with a timezone specification: + Complete example of a schedule with a time zone specification:

         TZ=Europe/London
    @@ -102,7 +102,7 @@ H H 1,15 1-11 *
         H(0-30) 17 * * *
       

    - The supported timezones depend on the Java runtime Jenkins is running on. The list of supported time zone IDs on this instance is: + The supported time zones depend on the Java runtime Jenkins is running on. The list of supported time zone IDs on this instance is:

      -- GitLab From e7cdd6517cf25940a497f9abced72c888a398720 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 1 Jul 2017 07:54:48 +0200 Subject: [PATCH 0048/1763] [JENKINS-39370] - Update Remoting in Jenkins core to 3.10 (#2886) * Update Remoting in Jenkins core to 3.8 * JENKINS-39370 - Introduce support of Work Directories in remoting (opt-in). * PR 129 - Allow configuring java.util.logging settings via a property file (-loggingConfig or JUL system property). See the Logging page for more details. * JENKINS-37567 - Change of the code signing certificate More info: https://github.com/jenkinsci/remoting/blob/master/CHANGELOG.md#38 * [JENKINS-39370] - Add direct tests for JNLP Launcher start with -workDir * Pick Remoting 3.9 * Improve error message of LauncherTest#remoteKill() * Update Remoting to 3.10 --- core/src/test/java/hudson/LauncherTest.java | 3 +- pom.xml | 2 +- .../java/hudson/slaves/JNLPLauncherTest.java | 32 ++++++++++++++++++- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/core/src/test/java/hudson/LauncherTest.java b/core/src/test/java/hudson/LauncherTest.java index 62ff200e96..4df308b41d 100644 --- a/core/src/test/java/hudson/LauncherTest.java +++ b/core/src/test/java/hudson/LauncherTest.java @@ -61,7 +61,8 @@ public class LauncherTest { p.kill(); assertTrue(p.join()!=0); long end = System.currentTimeMillis(); - assertTrue("join finished promptly", (end - start < 15000)); + long terminationTime = end - start; + assertTrue("Join did not finish promptly. The completion time (" + terminationTime + "ms) is longer than expected 15s", terminationTime < 15000); channels.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()))); diff --git a/pom.xml b/pom.xml index 08779571c8..7b45460d1f 100644 --- a/pom.xml +++ b/pom.xml @@ -168,7 +168,7 @@ THE SOFTWARE. org.jenkins-ci.main remoting - 3.7 + 3.10 diff --git a/test/src/test/java/hudson/slaves/JNLPLauncherTest.java b/test/src/test/java/hudson/slaves/JNLPLauncherTest.java index ccbdc43211..e30f365a6e 100644 --- a/test/src/test/java/hudson/slaves/JNLPLauncherTest.java +++ b/test/src/test/java/hudson/slaves/JNLPLauncherTest.java @@ -54,15 +54,20 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.awt.*; +import org.junit.rules.TemporaryFolder; +import org.jvnet.hudson.test.Issue; /** + * Tests of {@link JNLPLauncher}. * @author Kohsuke Kawaguchi */ public class JNLPLauncherTest { @Rule public JenkinsRule j = new JenkinsRule(); + + @Rule public TemporaryFolder tmpDir = new TemporaryFolder(); /** - * Starts a JNLP slave agent and makes sure it successfully connects to Hudson. + * Starts a JNLP agent and makes sure it successfully connects to Jenkins. */ @Test public void testLaunch() throws Exception { @@ -71,6 +76,20 @@ public class JNLPLauncherTest { Computer c = addTestSlave(); launchJnlpAndVerify(c, buildJnlpArgs(c)); } + + /** + * Starts a JNLP agent and makes sure it successfully connects to Jenkins. + */ + @Test + @Issue("JENKINS-39370") + public void testLaunchWithWorkDir() throws Exception { + Assume.assumeFalse("Skipping JNLPLauncherTest.testLaunch because we are running headless", GraphicsEnvironment.isHeadless()); + File workDir = tmpDir.newFolder("workDir"); + + Computer c = addTestSlave(); + launchJnlpAndVerify(c, buildJnlpArgs(c).add("-workDir", workDir.getAbsolutePath())); + assertTrue("Remoting work dir should have been created", new File(workDir, "remoting").exists()); + } /** * Tests the '-headless' option. @@ -83,6 +102,17 @@ public class JNLPLauncherTest { // make sure that onOffline gets called just the right number of times assertEquals(1, ComputerListener.all().get(ListenerImpl.class).offlined); } + + @Test + @Issue("JENKINS-39370") + public void testHeadlessLaunchWithWorkDir() throws Exception { + Assume.assumeFalse("Skipping JNLPLauncherTest.testLaunch because we are running headless", GraphicsEnvironment.isHeadless()); + File workDir = tmpDir.newFolder("workDir"); + + Computer c = addTestSlave(); + launchJnlpAndVerify(c, buildJnlpArgs(c).add("-arg","-headless", "-workDir", workDir.getAbsolutePath())); + assertEquals(1, ComputerListener.all().get(ListenerImpl.class).offlined); + } @TestExtension("testHeadlessLaunch") public static class ListenerImpl extends ComputerListener { -- GitLab From bcf55ecd7f8a22046c5cb3c4c50016d936e5460c Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 1 Jul 2017 08:11:16 +0200 Subject: [PATCH 0049/1763] [JENKINS-43496] - Add handling of the null Node#createComputer() result. (#2922) * [JENKINS-43496] - Add handling of the null Node#createComputer() result. it is a follow-up to https://github.com/jenkinsci/jenkins/pull/2836#discussion_r110604865 De-facto many Cloud plugins return `null` in `Node#createLauncher()`, but it has never been documented. In order to prevent possible API misusages in the future, I have added annotations and fixed handling of the extension point in `AbstractCIBase#updateComputer()` which may fail in the case of `null` or `RuntimeException` in the Node implementation. * [JENKINS-43496] - Use ProtectedExternally to protect Node#createComputer() * [JENKINS-43496] - Remove the erroneous Nonnull annotation after the feedback from @jglick * [JENKINS-43496] - Fix typos noticed by @daniel-beck --- .../java/hudson/model/AbstractCIBase.java | 21 ++++++++++++++++--- core/src/main/java/hudson/model/Node.java | 8 +++++++ .../java/hudson/slaves/RetentionStrategy.java | 6 ++++-- core/src/main/java/jenkins/model/Jenkins.java | 2 ++ 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/hudson/model/AbstractCIBase.java b/core/src/main/java/hudson/model/AbstractCIBase.java index 16744334e5..3cef84804b 100644 --- a/core/src/main/java/hudson/model/AbstractCIBase.java +++ b/core/src/main/java/hudson/model/AbstractCIBase.java @@ -39,6 +39,7 @@ import java.util.concurrent.CopyOnWriteArraySet; import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; import jenkins.model.Configuration; @@ -125,7 +126,18 @@ public abstract class AbstractCIBase extends Node implements ItemGroup0 || n==Jenkins.getInstance()) { - computers.put(n, c = n.createComputer()); + try { + c = n.createComputer(); + } catch(RuntimeException ex) { // Just in case there is a bogus extension + LOGGER.log(Level.WARNING, "Error retrieving computer for node " + n.getNodeName() + ", continuing", ex); + } + if (c == null) { + LOGGER.log(Level.WARNING, "Cannot create computer for node {0}, the {1}#createComputer() method returned null. Skipping this node", + new Object[]{n.getNodeName(), n.getClass().getName()}); + return; + } + + computers.put(n, c); if (!n.isHoldOffLaunchUntilSave() && automaticSlaveLaunch) { RetentionStrategy retentionStrategy = c.getRetentionStrategy(); if (retentionStrategy != null) { @@ -136,8 +148,11 @@ public abstract class AbstractCIBase extends Node implements ItemGroup used = new HashSet(old.size()); + Set used = new HashSet<>(old.size()); updateComputer(AbstractCIBase.this, byName, used, automaticSlaveLaunch); for (Node s : getNodes()) { diff --git a/core/src/main/java/hudson/model/Node.java b/core/src/main/java/hudson/model/Node.java index 42b40a17d2..ab1ca6ca66 100644 --- a/core/src/main/java/hudson/model/Node.java +++ b/core/src/main/java/hudson/model/Node.java @@ -40,6 +40,7 @@ import hudson.remoting.VirtualChannel; import hudson.security.ACL; import hudson.security.AccessControlled; import hudson.security.Permission; +import hudson.slaves.Cloud; import hudson.slaves.ComputerListener; import hudson.slaves.NodeDescriptor; import hudson.slaves.NodeProperty; @@ -65,6 +66,8 @@ import jenkins.util.io.OnMaster; import net.sf.json.JSONObject; import org.acegisecurity.Authentication; import org.jvnet.localizer.Localizable; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.ProtectedExternally; import org.kohsuke.stapler.BindInterceptor; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; @@ -214,8 +217,13 @@ public abstract class Node extends AbstractModelObject implements Reconfigurable /** * Creates a new {@link Computer} object that acts as the UI peer of this {@link Node}. + * * Nobody but {@link Jenkins#updateComputerList()} should call this method. + * @return Created instance of the computer. + * Can be {@code null} if the {@link Node} implementation does not support it (e.g. {@link Cloud} agent). */ + @CheckForNull + @Restricted(ProtectedExternally.class) protected abstract Computer createComputer(); /** diff --git a/core/src/main/java/hudson/slaves/RetentionStrategy.java b/core/src/main/java/hudson/slaves/RetentionStrategy.java index 3d8c79e544..0e33a9dc6c 100644 --- a/core/src/main/java/hudson/slaves/RetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/RetentionStrategy.java @@ -39,6 +39,7 @@ import javax.annotation.concurrent.GuardedBy; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; +import javax.annotation.Nonnull; /** * Controls when to take {@link Computer} offline, bring it back online, or even to destroy it. @@ -57,7 +58,7 @@ public abstract class RetentionStrategy extends AbstractDesc * rechecked earlier or later that this! */ @GuardedBy("hudson.model.Queue.lock") - public abstract long check(T c); + public abstract long check(@Nonnull T c); /** * This method is called to determine whether manual launching of the agent is allowed at this point in time. @@ -92,9 +93,10 @@ public abstract class RetentionStrategy extends AbstractDesc * The default implementation of this method delegates to {@link #check(Computer)}, * but this allows {@link RetentionStrategy} to distinguish the first time invocation from the rest. * + * @param c Computer instance * @since 1.275 */ - public void start(final T c) { + public void start(final @Nonnull T c) { Queue.withLock(new Runnable() { @Override public void run() { diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 34dce65e41..13d000d831 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -3051,6 +3051,8 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve return getLabelAtom("master"); } + @Override + @Nonnull public Computer createComputer() { return new Hudson.MasterComputer(); } -- GitLab From 64e8ea3d753db206b7dc5d1d5ef236e3c8a98ec0 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sun, 2 Jul 2017 18:16:31 -0700 Subject: [PATCH 0050/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 50c44f9a26..4e0636df98 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.68 + 2.69-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 0303d21e3c..6d1fa1704e 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.68 + 2.69-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index 350f5e0d7a..2e56f450ff 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.68 + 2.69-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.68 + HEAD diff --git a/test/pom.xml b/test/pom.xml index c1ad073304..123d949507 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.68 + 2.69-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index d19996d2a5..c350066e2c 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.68 + 2.69-SNAPSHOT jenkins-war -- GitLab From 2145dbf9f91684315d0c16fe09ff6f433850210d Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sun, 2 Jul 2017 18:16:31 -0700 Subject: [PATCH 0051/1763] [maven-release-plugin] prepare release jenkins-2.68 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 68923da01a..50c44f9a26 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.68-SNAPSHOT + 2.68 cli diff --git a/core/pom.xml b/core/pom.xml index 3c5826db0e..0303d21e3c 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.68-SNAPSHOT + 2.68 jenkins-core diff --git a/pom.xml b/pom.xml index 7b45460d1f..350f5e0d7a 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.68-SNAPSHOT + 2.68 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.68 diff --git a/test/pom.xml b/test/pom.xml index c95c1e6672..c1ad073304 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.68-SNAPSHOT + 2.68 test diff --git a/war/pom.xml b/war/pom.xml index ab825a2717..d19996d2a5 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.68-SNAPSHOT + 2.68 jenkins-war -- GitLab From beb63a2f5944ea63f128dfe0500b3b431c4b72f8 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 1 Jul 2017 08:13:12 +0200 Subject: [PATCH 0052/1763] Merge pull request #2927 from daniel-beck/JENKINS-9283-docs Document timezone specification and provide full list (cherry picked from commit 26fc2a9650b7ce5f2cd708444041ba88015e02ee) --- .../java/hudson/scheduler/CronTabList.java | 4 +-- .../{help-spec.html => help-spec.jelly} | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) rename core/src/main/resources/hudson/triggers/TimerTrigger/{help-spec.html => help-spec.jelly} (75%) diff --git a/core/src/main/java/hudson/scheduler/CronTabList.java b/core/src/main/java/hudson/scheduler/CronTabList.java index bb20834597..eba4f007f8 100644 --- a/core/src/main/java/hudson/scheduler/CronTabList.java +++ b/core/src/main/java/hudson/scheduler/CronTabList.java @@ -108,9 +108,9 @@ public final class CronTabList { if(lineNumber == 1 && line.startsWith("TZ=")) { timezone = getValidTimezone(line.replace("TZ=","")); if(timezone != null) { - LOGGER.log(Level.CONFIG, "cron with timezone {0}", timezone); + LOGGER.log(Level.CONFIG, "CRON with timezone {0}", timezone); } else { - LOGGER.log(Level.CONFIG, "invalid timezone {0}", line); + throw new ANTLRException("Invalid or unsupported timezone '" + timezone + "'"); } continue; } diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly similarity index 75% rename from core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly index bfe1d96e21..5acdecd0f0 100644 --- a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.jelly @@ -1,3 +1,5 @@ + +
      This field follows the syntax of cron (with minor differences). Specifically, each line consists of 5 fields separated by TAB or whitespace: @@ -80,4 +82,33 @@ H H(9-16)/2 * * 1-5 # once a day on the 1st and 15th of every month except December H H 1,15 1-11 * +

      Time zone specification

      + +

      + Periodic tasks are normally executed at the scheduled time in the time zone of + the Jenkins master JVM (currently ${currentTimeZone.getID()}). + This behavior can optionally be changed by specifying an alternative time zone in the + first line of the field. + Time zone specification starts with TZ=, followed by the ID of a time zone. +

      +

      + Complete example of a schedule with a time zone specification: +

      +
      +    TZ=Europe/London
      +    # This job needs to be run in the morning, London time
      +    H 8 * * *
      +    # Butlers do not have a five o'clock, so we run the job again
      +    H(0-30) 17 * * *
      +  
      +

      + The supported time zones depend on the Java runtime Jenkins is running on. The list of supported time zone IDs on this instance is: +

      + +
        + +
      • ${timeZone}
      • +
        +
      +
      \ No newline at end of file -- GitLab From 8c4aae0b95e37c29f5aafea5b7f1630be17cc986 Mon Sep 17 00:00:00 2001 From: Kseniia Nenasheva Date: Sun, 28 May 2017 22:47:44 +0200 Subject: [PATCH 0053/1763] =?UTF-8?q?[FIXED=20JENKINS-44523]=20-=20Do=20no?= =?UTF-8?q?t=20submit=20form=20when=20pressing=20Enter=20in=20the=E2=80=A6?= =?UTF-8?q?=20(#2902)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [FIXED JENKINS-44523] - Do not submit form when pressing Enter in the PM filter field. * Fix indenting (cherry picked from commit 36e79456403ca6a4f51d43dde39351e83aef6462) --- .../main/resources/hudson/PluginManager/table.jelly | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/src/main/resources/hudson/PluginManager/table.jelly b/core/src/main/resources/hudson/PluginManager/table.jelly index 7511c82584..52fed76549 100644 --- a/core/src/main/resources/hudson/PluginManager/table.jelly +++ b/core/src/main/resources/hudson/PluginManager/table.jelly @@ -49,12 +49,13 @@ THE SOFTWARE. -
      -
      - ${%Filter}: - -
      + +
      + ${%Filter}: + +
      +
      -- GitLab From 65def10f5aa67524aeb1294415ca8e17f7d2f5a5 Mon Sep 17 00:00:00 2001 From: Andres Rodriguez Date: Thu, 1 Jun 2017 12:14:04 +0200 Subject: [PATCH 0054/1763] [JENKINS-44608] Don't check for monitor activation if it is disabled (cherry picked from commit ce07ccbcd74cb9954c54137af8268e00629f7363) --- .../management/AdministrativeMonitorsDecorator.java | 7 ++----- core/src/main/java/jenkins/model/Jenkins.java | 8 ++++++++ .../src/main/resources/jenkins/model/Jenkins/manage.jelly | 6 ++---- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/jenkins/management/AdministrativeMonitorsDecorator.java b/core/src/main/java/jenkins/management/AdministrativeMonitorsDecorator.java index ff8ea3efa6..77ea0758e3 100644 --- a/core/src/main/java/jenkins/management/AdministrativeMonitorsDecorator.java +++ b/core/src/main/java/jenkins/management/AdministrativeMonitorsDecorator.java @@ -78,8 +78,7 @@ public class AdministrativeMonitorsDecorator extends PageDecorator { public Collection getActiveAdministrativeMonitors() { Collection active = new ArrayList<>(); - Collection ams = new ArrayList<>(Jenkins.getInstance().administrativeMonitors); - for (AdministrativeMonitor am : ams) { + for (AdministrativeMonitor am : Jenkins.getInstance().getActiveAdministrativeMonitors()) { if (am instanceof ReverseProxySetupMonitor) { // TODO make reverse proxy monitor work when shown on any URL continue; @@ -88,9 +87,7 @@ public class AdministrativeMonitorsDecorator extends PageDecorator { // TODO make URI encoding monitor work when shown on any URL continue; } - if (am.isEnabled() && am.isActivated()) { - active.add(am); - } + active.add(am); } return active; } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index aec300fcb6..5766a0e0b2 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -288,6 +288,7 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; import java.util.regex.Pattern; +import java.util.stream.Collectors; import static hudson.Util.*; import static hudson.init.InitMilestone.*; @@ -2172,6 +2173,13 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve return null; } + /** + * Returns the enabled and activated administrative monitors. + */ + public List getActiveAdministrativeMonitors() { + return administrativeMonitors.stream().filter(m -> m.isEnabled() && m.isActivated()).collect(Collectors.toList()); + } + public NodeDescriptor getDescriptor() { return DescriptorImpl.INSTANCE; } diff --git a/core/src/main/resources/jenkins/model/Jenkins/manage.jelly b/core/src/main/resources/jenkins/model/Jenkins/manage.jelly index ff56ce0eca..fb1b3227fb 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/manage.jelly +++ b/core/src/main/resources/jenkins/model/Jenkins/manage.jelly @@ -60,10 +60,8 @@ THE SOFTWARE.

      ${%Manage Jenkins}

      - - - - + + -- GitLab From 65a34e11a99fc9b42c583e8648c12c43bed6037c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Tue, 4 Jul 2017 09:48:22 +0200 Subject: [PATCH 0055/1763] Restrict new API member --- core/src/main/java/jenkins/model/Jenkins.java | 1 + pom.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 5766a0e0b2..0a38a81571 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -2176,6 +2176,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve /** * Returns the enabled and activated administrative monitors. */ + @Restricted(NoExternalUse.class) public List getActiveAdministrativeMonitors() { return administrativeMonitors.stream().filter(m -> m.isEnabled() && m.isActivated()).collect(Collectors.toList()); } diff --git a/pom.xml b/pom.xml index 606532b66f..ccc542bf2e 100644 --- a/pom.xml +++ b/pom.xml @@ -432,7 +432,7 @@ THE SOFTWARE. org.kohsuke access-modifier-checker - 1.4 + 1.7 com.cloudbees -- GitLab From 92a3e42068c5c54c2861d73d3c2e5fe0c5b64f39 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Sat, 3 Jun 2017 09:32:02 +0200 Subject: [PATCH 0056/1763] Merge pull request #2908 from jglick/cleanUp [JENKINS-44589] Adding some missing calls to cleanUp (cherry picked from commit 0ec25081ee5bc6c547632790cd258fa0b6fbcac6) --- core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java | 1 + core/src/main/java/jenkins/model/Jenkins.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java b/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java index db7ca365a7..14bbb60584 100644 --- a/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java +++ b/core/src/main/java/hudson/lifecycle/WindowsInstallerLink.java @@ -230,6 +230,7 @@ public class WindowsInstallerLink extends ManagementLink { } }); + Jenkins.getInstance().cleanUp(); System.exit(0); } catch (InterruptedException e) { e.printStackTrace(); diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 0a38a81571..193eb3da13 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -945,6 +945,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve if(KILL_AFTER_LOAD) + // TODO cleanUp? System.exit(0); setupWizard = new SetupWizard(); @@ -4262,6 +4263,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve } } + cleanUp(); System.exit(0); } -- GitLab From 28880329177a37ae04136ee1eca97c650b4acf6d Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Fri, 9 Jun 2017 16:10:52 +0200 Subject: [PATCH 0057/1763] [FIX JENKINS-44769] Don't access response when called from CLI (cherry picked from commit 83671af504197f031c1e89a5122a1d4168288bb4) --- core/src/main/java/jenkins/model/Jenkins.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 193eb3da13..9eccb6b753 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -4129,7 +4129,9 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve restart(); } - rsp.sendRedirect2("."); + if (rsp != null) { + rsp.sendRedirect2("."); + } } /** -- GitLab From 2f20efbee91b38a2de7971feb507c2e2f8de21c3 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Fri, 16 Jun 2017 12:48:16 +0200 Subject: [PATCH 0058/1763] Merge pull request #2914 from jglick/FilePath.list [JENKINS-44942] - FilePath.list() & .listDirectories() null safety (cherry picked from commit a5dc255d2150d0d34eec918c4c45794a66663f7d) --- core/src/main/java/hudson/FilePath.java | 12 +++++++++++- core/src/main/java/jenkins/util/VirtualFile.java | 3 --- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index 3ba026d797..9d10636dec 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -127,6 +127,7 @@ import static hudson.FilePath.TarCompression.GZIP; import static hudson.Util.deleteFile; import static hudson.Util.fixEmpty; import static hudson.Util.isSymlink; +import java.util.Collections; /** * {@link File} like object with remoting support. @@ -1636,6 +1637,7 @@ public final class FilePath implements Serializable { *

      * This method returns direct children of the directory denoted by the 'this' object. */ + @Nonnull public List list() throws IOException, InterruptedException { return list((FileFilter)null); } @@ -1645,6 +1647,7 @@ public final class FilePath implements Serializable { * * @return can be empty but never null. Doesn't contain "." and ".." */ + @Nonnull public List listDirectories() throws IOException, InterruptedException { return list(new DirectoryFilter()); } @@ -1665,6 +1668,7 @@ public final class FilePath implements Serializable { * If this {@link FilePath} represents a remote path, * the filter object will be executed on the remote machine. */ + @Nonnull public List list(final FileFilter filter) throws IOException, InterruptedException { if (filter != null && !(filter instanceof Serializable)) { throw new IllegalArgumentException("Non-serializable filter of " + filter.getClass()); @@ -1673,7 +1677,9 @@ public final class FilePath implements Serializable { private static final long serialVersionUID = 1L; public List invoke(File f, VirtualChannel channel) throws IOException { File[] children = reading(f).listFiles(filter); - if(children ==null) return null; + if (children == null) { + return Collections.emptyList(); + } ArrayList r = new ArrayList(children.length); for (File child : children) @@ -1692,6 +1698,7 @@ public final class FilePath implements Serializable { * @return * can be empty but always non-null. */ + @Nonnull public FilePath[] list(final String includes) throws IOException, InterruptedException { return list(includes, null); } @@ -1706,6 +1713,7 @@ public final class FilePath implements Serializable { * can be empty but always non-null. * @since 1.407 */ + @Nonnull public FilePath[] list(final String includes, final String excludes) throws IOException, InterruptedException { return list(includes, excludes, true); } @@ -1721,6 +1729,7 @@ public final class FilePath implements Serializable { * can be empty but always non-null. * @since 1.465 */ + @Nonnull public FilePath[] list(final String includes, final String excludes, final boolean defaultExcludes) throws IOException, InterruptedException { return act(new SecureFileCallable() { private static final long serialVersionUID = 1L; @@ -1742,6 +1751,7 @@ public final class FilePath implements Serializable { * @return * A set of relative file names from the base directory. */ + @Nonnull private static String[] glob(File dir, String includes, String excludes, boolean defaultExcludes) throws IOException { if(isAbsolute(includes)) throw new IOException("Expecting Ant GLOB pattern, but saw '"+includes+"'. See http://ant.apache.org/manual/Types/fileset.html for syntax"); diff --git a/core/src/main/java/jenkins/util/VirtualFile.java b/core/src/main/java/jenkins/util/VirtualFile.java index 6c70fedcea..e2d27d75ec 100644 --- a/core/src/main/java/jenkins/util/VirtualFile.java +++ b/core/src/main/java/jenkins/util/VirtualFile.java @@ -365,9 +365,6 @@ public abstract class VirtualFile implements Comparable, Serializab @Override public VirtualFile[] list() throws IOException { try { List kids = f.list(); - if (kids == null) { - return new VirtualFile[0]; - } VirtualFile[] vfs = new VirtualFile[kids.size()]; for (int i = 0; i < vfs.length; i++) { vfs[i] = forFilePath(kids.get(i)); -- GitLab From db5b482909e8a37067a768e6433144a6227d0a46 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sun, 18 Jun 2017 01:50:55 +0200 Subject: [PATCH 0059/1763] [FIXED JENKINS-44764, JENKINS-44894] - Update Extras Executable War from 1.34 to 1.35.1 (#2917) * [FIXED JENKINS-44764, JENKINS-44894] - Update Extras Executable War from 1.34 to 1.35 * Pick version with a system property name fix, noticed by @daniel-beck (cherry picked from commit cb3f713122030b0ec5097b286d4e9e566a34a90a) --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 2434c17bc3..0a7303a479 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -49,7 +49,7 @@ THE SOFTWARE. org.jenkins-ci executable-war - 1.34 + 1.35.1 provided -- GitLab From 00956ff9dad31897c84e5d50466b3904684006df Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Fri, 7 Jul 2017 19:01:01 -0400 Subject: [PATCH 0060/1763] [JENKINS-39738, JENKINS-43668] - Pick up SSHD module including sshd-core 1.6.0 (#2853) * Pick up SSHD module including sshd-core 1.4.0. * [FIXED JENKINS-39738] Picking up https://github.com/jenkinsci/sshd-module/commit/bb6963453086edef4e600abb2740182cd2f4ade0 * Picking up Apache SSHD 1.6.0 & Jenkins sshd module 2.0. --- cli/pom.xml | 2 +- cli/src/main/java/hudson/cli/SSHCLI.java | 2 +- test/src/test/java/hudson/cli/CLITest.java | 5 +---- war/pom.xml | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 4e0636df98..6d97d96729 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -55,7 +55,7 @@ org.apache.sshd sshd-core - 1.2.0 + 1.6.0 true diff --git a/cli/src/main/java/hudson/cli/SSHCLI.java b/cli/src/main/java/hudson/cli/SSHCLI.java index 023a304e7f..bdd6c2beb5 100644 --- a/cli/src/main/java/hudson/cli/SSHCLI.java +++ b/cli/src/main/java/hudson/cli/SSHCLI.java @@ -47,9 +47,9 @@ import org.apache.sshd.client.keyverifier.KnownHostsServerKeyVerifier; import org.apache.sshd.client.keyverifier.ServerKeyVerifier; import org.apache.sshd.client.session.ClientSession; import org.apache.sshd.common.future.WaitableFuture; -import org.apache.sshd.common.util.SecurityUtils; import org.apache.sshd.common.util.io.NoCloseInputStream; import org.apache.sshd.common.util.io.NoCloseOutputStream; +import org.apache.sshd.common.util.security.SecurityUtils; /** * Implements SSH connection mode of {@link CLI}. diff --git a/test/src/test/java/hudson/cli/CLITest.java b/test/src/test/java/hudson/cli/CLITest.java index 41d6756a32..cd0f3b9a66 100644 --- a/test/src/test/java/hudson/cli/CLITest.java +++ b/test/src/test/java/hudson/cli/CLITest.java @@ -26,7 +26,6 @@ package hudson.cli; import com.gargoylesoftware.htmlunit.WebResponse; import com.google.common.collect.Lists; -import hudson.Functions; import hudson.Launcher; import hudson.Proc; import hudson.model.FreeStyleProject; @@ -48,6 +47,7 @@ import jenkins.model.Jenkins; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.output.TeeOutputStream; +import org.apache.sshd.common.util.io.ModifiableFileWatcher; import static org.hamcrest.Matchers.*; import org.jenkinsci.main.modules.cli.auth.ssh.UserPropertyImpl; import org.jenkinsci.main.modules.sshd.SSHD; @@ -102,11 +102,8 @@ public class CLITest { } catch (IOException x) { assumeNoException("Sometimes on Windows KnownHostsServerKeyVerifier.acceptIncompleteHostKeys says WARNING: Failed (FileSystemException) to reload server keys from …\\\\.ssh\\\\known_hosts: … Incorrect function.", x); } - /* TODO impossible to do this until the bundled sshd module uses a sufficiently new version of sshd-core: assumeThat("or on Windows DefaultKnownHostsServerKeyVerifier.reloadKnownHosts says invalid file permissions: Owner violation (Administrators)", ModifiableFileWatcher.validateStrictConfigFilePermissions(known_hosts.toPath()), nullValue()); - */ - assumeFalse(Functions.isWindows()); // TODO can remove when above check is restored return home; } diff --git a/war/pom.xml b/war/pom.xml index c350066e2c..74736e0a77 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -134,7 +134,7 @@ THE SOFTWARE. org.jenkins-ci.modules sshd - 1.11 + 2.0 org.jenkins-ci.ui -- GitLab From c064d88a3b418e4cc6e3a75b4faa7db4c69880f2 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sun, 9 Jul 2017 11:56:40 +0200 Subject: [PATCH 0061/1763] [JENKINS-34914] - Prevent NPE in Jenkins#getRootURL() when the nstance is not fully loaded --- core/src/main/java/jenkins/model/Jenkins.java | 15 ++++++++++++--- .../model/JenkinsLocationConfiguration.java | 6 ++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 64c297c1bd..67fa8723f8 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -2326,12 +2326,21 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve * It is done in this order so that it can work correctly even in the face * of a reverse proxy. * - * @return null if this parameter is not configured by the user and the calling thread is not in an HTTP request; otherwise the returned URL will always have the trailing {@code /} + * @return {@code null} if this parameter is not configured by the user and the calling thread is not in an HTTP request; + * otherwise the returned URL will always have the trailing {@code /} + * @throws IllegalStateException {@link JenkinsLocationConfiguration} cannot be retrieved. + * Jenkins instance may be not ready, or there is an extension loading glitch. * @since 1.66 * @see Hyperlinks in HTML */ - public @Nullable String getRootUrl() { - String url = JenkinsLocationConfiguration.get().getUrl(); + public @Nullable String getRootUrl() throws IllegalStateException { + final JenkinsLocationConfiguration config = JenkinsLocationConfiguration.get(); + if (config == null) { + // Try to get standard message if possible + final Jenkins j = Jenkins.getInstance(); + throw new IllegalStateException("Jenkins instance " + j + " has been successfully initialized, but JenkinsLocationConfiguration is undefined."); + } + String url = config.getUrl(); if(url!=null) { return Util.ensureEndsWith(url,"/"); } diff --git a/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java b/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java index 981ef9a3a6..b7390ad3d3 100644 --- a/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java +++ b/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java @@ -41,6 +41,12 @@ public class JenkinsLocationConfiguration extends GlobalConfiguration { // just to suppress warnings private transient String charset,useSsl; + /** + * Gets local configuration. + * + * @return {@code null} if the {@link GlobalConfiguration#all()} list does not contain this extension. + * Most likely it means that the Jenkins instance has not been fully loaded yet. + */ public static @CheckForNull JenkinsLocationConfiguration get() { return GlobalConfiguration.all().get(JenkinsLocationConfiguration.class); } -- GitLab From cf0183d1ed1e999a04a1445b2cd369b58e1268bf Mon Sep 17 00:00:00 2001 From: Nikolas Falco Date: Sun, 9 Jul 2017 19:36:05 +0200 Subject: [PATCH 0062/1763] [JENKINS-14807] Fix path separator when EnvVars overrides variable like PATH+XYZ The getEnvironment(Node, TaskListener) now returns an environment setup correctly with the platform value of the computer node where the job is executed. --- core/src/main/java/hudson/model/Job.java | 12 ++-- core/src/test/java/hudson/model/JobTest.java | 58 +++++++++++++++++++- 2 files changed, 64 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index 0575724d99..b089d70635 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -374,13 +374,15 @@ public abstract class Job, RunT extends Run job = Mockito.mock(FreeStyleProject.class); + Mockito.when(job.getEnvironment(Mockito.any(Node.class), Mockito.any(TaskListener.class))).thenCallRealMethod(); + Mockito.when(job.getCharacteristicEnvVars()).thenReturn(emptyEnv); + + Computer c = Mockito.mock(Computer.class); + // ensure that PATH variable exists to perform the path separator join + if (!slaveEnv.containsKey("PATH")) { + slaveEnv.put("PATH", "/bin/bash"); + } + Mockito.when(c.getEnvironment()).thenReturn(slaveEnv); + Mockito.when(c.buildEnvironment(Mockito.any(TaskListener.class))).thenReturn(emptyEnv); + + Node node = PowerMockito.mock(Node.class); + PowerMockito.doReturn(c).when(node).toComputer(); + + EnvVars env = job.getEnvironment(node, null); + String path = "/test"; + env.override("PATH+TEST", path); + + assertThat("The contributed PATH was not joined using the path separator defined in slave node", // + env.get("PATH"), // + CoreMatchers.containsString(path + (slavePlatform == Platform.WINDOWS ? ';' : ':'))); + } + } -- GitLab From a0118d359c16d3bd18b783a92f0e992b5e7b713e Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 10 Jul 2017 07:23:23 -0700 Subject: [PATCH 0063/1763] [maven-release-plugin] prepare release jenkins-2.69 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 6d97d96729..5bad281e94 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.69-SNAPSHOT + 2.69 cli diff --git a/core/pom.xml b/core/pom.xml index 6d1fa1704e..98549ebd61 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.69-SNAPSHOT + 2.69 jenkins-core diff --git a/pom.xml b/pom.xml index 2e56f450ff..1a1f20530f 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.69-SNAPSHOT + 2.69 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.69 diff --git a/test/pom.xml b/test/pom.xml index 123d949507..da5e89a860 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.69-SNAPSHOT + 2.69 test diff --git a/war/pom.xml b/war/pom.xml index 74736e0a77..de06837e9a 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.69-SNAPSHOT + 2.69 jenkins-war -- GitLab From 55d34871584cd9ba3ee3a37473f37f1ab5868f9f Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 10 Jul 2017 07:23:24 -0700 Subject: [PATCH 0064/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 5bad281e94..6a80e49c98 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.69 + 2.70-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 98549ebd61..16caeeef39 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.69 + 2.70-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index 1a1f20530f..e63916c8bf 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.69 + 2.70-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.69 + HEAD diff --git a/test/pom.xml b/test/pom.xml index da5e89a860..0e631fecec 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.69 + 2.70-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index de06837e9a..0a2dbbb091 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.69 + 2.70-SNAPSHOT jenkins-war -- GitLab From 91129b81e8d5cd3904c437818ad6c36feca43218 Mon Sep 17 00:00:00 2001 From: olivier lamy Date: Mon, 10 Jul 2017 16:57:41 +1000 Subject: [PATCH 0065/1763] last winstone for http2 connector Signed-off-by: olivier lamy --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 0a2dbbb091..5ac88e527b 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -93,7 +93,7 @@ THE SOFTWARE. --> org.jenkins-ci winstone - 4.0 + 4.1-SNAPSHOT test -- GitLab From c7e55fbd65d3b70a8c8ff6d53d79275ff9b56eb1 Mon Sep 17 00:00:00 2001 From: olivier lamy Date: Tue, 11 Jul 2017 11:42:13 +1000 Subject: [PATCH 0066/1763] use new executable-war to fix classloading issue with services loader Signed-off-by: olivier lamy --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 5ac88e527b..7238479538 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -49,7 +49,7 @@ THE SOFTWARE. org.jenkins-ci executable-war - 1.35.1 + 1.36-SNAPSHOT provided -- GitLab From e509d27b74027eef28c830d47d9683ba6ce508b6 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Wed, 12 Jul 2017 00:05:43 +0200 Subject: [PATCH 0067/1763] Show actual Jenkins version on upgrade wizard banner --- .../jenkins/install/UpgradeWizard/client-scripts.jelly | 2 +- .../jenkins/install/UpgradeWizard/client-scripts.properties | 2 +- .../install/UpgradeWizard/client-scripts_de.properties | 2 +- .../install/UpgradeWizard/client-scripts_fr.properties | 6 +++--- .../install/UpgradeWizard/client-scripts_lt.properties | 4 ++-- .../install/UpgradeWizard/client-scripts_sr.properties | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts.jelly b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts.jelly index a00b91d05e..6a538a59c0 100644 --- a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts.jelly +++ b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts.jelly @@ -65,7 +65,7 @@ %{Snooze}

      - ${%msg.before} + ${%msg.before(app.VERSION)} ${%msg.link} ${%msg.after}
      diff --git a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts.properties b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts.properties index e28a990ddf..e2834adc04 100644 --- a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts.properties +++ b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts.properties @@ -1,3 +1,3 @@ -msg.before=Welcome to Jenkins 2!\u0020 +msg.before=Welcome to Jenkins {0}!\u0020 msg.link=Upgrade now msg.after=\u0020to get the new features diff --git a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_de.properties b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_de.properties index ea8816a077..85a1ef7ccf 100644 --- a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_de.properties +++ b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_de.properties @@ -22,4 +22,4 @@ msg.link=Jetzt aktualisieren msg.after=\u0020um neue Funktionen zu bekommen -msg.before=Willkommen bei Jenkins 2!\u0020 +msg.before=Willkommen bei Jenkins {0}!\u0020 diff --git a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_fr.properties b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_fr.properties index f1c518c519..f460962d9e 100644 --- a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_fr.properties +++ b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_fr.properties @@ -1,3 +1,3 @@ -msg.before=Bienvenue sur Jenkins 2 !\u0020 -msg.link=Installer les nouvelles fonctionnalit\u00e9s -msg.after=\u0020pour terminer la mise \u00e0 jour +msg.before=Bienvenue sur Jenkins {0} !\u0020 +msg.link=Installer les nouvelles fonctionnalit\u00E9s +msg.after=\u0020pour terminer la mise \u00E0 jour diff --git a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_lt.properties b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_lt.properties index f1147d3e4f..e98ac9af72 100644 --- a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_lt.properties +++ b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_lt.properties @@ -1,3 +1,3 @@ -msg.before=Jus sveikina Jenkins 2!\u0020 -msg.link=\u012ediegti naujas savybes +msg.before=Jus sveikina Jenkins {0}!\u0020 +msg.link=\u012Ediegti naujas savybes msg.after=\u0020kad baigtum\u0117te atnaujinim\u0105 diff --git a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_sr.properties b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_sr.properties index 454c68e0dd..f397fc69a2 100644 --- a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_sr.properties +++ b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_sr.properties @@ -1,5 +1,5 @@ # This file is under the MIT License by authors -msg.before=\u0414\u043E\u0431\u0440\u043E\u0434\u043E\u0448\u043B\u0438 \u043D\u0430 Jenkins 2!\u0020 +msg.before=\u0414\u043E\u0431\u0440\u043E\u0434\u043E\u0448\u043B\u0438 \u043D\u0430 Jenkins {0}!\u0020 msg.link=\u0410\u0436\u0443\u0440\u0438\u0440\u0430\u0458 \u0441\u0430\u0434\u0430 msg.after=\u0020 \u0434\u0430 \u0437\u0430\u0434\u043E\u0431\u0438\u0458\u0435\u0442\u0435 \u043D\u043E\u0432\u0435 \u043E\u0434\u043B\u0438\u043A\u0435 \ No newline at end of file -- GitLab From 2e6e619935a3d29e1c656dddea76698f03a14d10 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Wed, 12 Jul 2017 00:05:57 +0200 Subject: [PATCH 0068/1763] [JENKINS-45459] Fix 'shortened' Jenkins version in upgrade wizard --- war/src/main/js/pluginSetupWizardGui.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/src/main/js/pluginSetupWizardGui.js b/war/src/main/js/pluginSetupWizardGui.js index 15711c8baa..923f6a3f27 100644 --- a/war/src/main/js/pluginSetupWizardGui.js +++ b/war/src/main/js/pluginSetupWizardGui.js @@ -203,7 +203,7 @@ var createPluginSetupWizard = function(appendTarget) { }; var getJenkinsVersion = function() { - return getJenkinsVersionFull().replace(/(\d[.]\d).*/,'$1'); + return getJenkinsVersionFull().replace(/(\d[.][\d.]+).*/,'$1'); }; // call this to set the panel in the app, this performs some additional things & adds common transitions -- GitLab From 7df33034fe8760119789390a2b7c45a71822b966 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 13 Jul 2017 09:09:14 -0400 Subject: [PATCH 0069/1763] Deleting obsolete SECURITY-144-compat exclusion. --- test/pom.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 0e631fecec..a307bc70bd 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -81,14 +81,6 @@ THE SOFTWARE. org.apache.httpcomponents httpcore - - - org.jenkins-ci - SECURITY-144-compat - commons-codec commons-codec -- GitLab From 245ad0bdb17ebd33eca81c099e8a19a893c049e3 Mon Sep 17 00:00:00 2001 From: Curt Moore Date: Thu, 13 Jul 2017 09:52:18 -0500 Subject: [PATCH 0070/1763] [JENKINS-45516] Fix null pointer exception when checking for previous completed build --- core/src/main/java/hudson/model/AbstractBuild.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java index cf035f6b03..9644c2c0de 100644 --- a/core/src/main/java/hudson/model/AbstractBuild.java +++ b/core/src/main/java/hudson/model/AbstractBuild.java @@ -337,7 +337,7 @@ public abstract class AbstractBuild

      ,R extends Abs AbstractBuild p = getPreviousCompletedBuild(); if (upstreamCulprits) { // If we have dependencies since the last successful build, add their authors to our list - if (p.getPreviousNotFailedBuild() != null) { + if (p != null && p.getPreviousNotFailedBuild() != null) { Map depmap = p.getDependencyChanges(p.getPreviousSuccessfulBuild()); for (AbstractBuild.DependencyChange dep : depmap.values()) { -- GitLab From f3426ddf826108c6b943260ab6adb6690cce880c Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Sun, 16 Jul 2017 14:18:39 +0200 Subject: [PATCH 0071/1763] Fix @since tags --- core/src/main/java/hudson/cli/RunRangeCommand.java | 2 +- core/src/main/java/hudson/console/HudsonExceptionNote.java | 2 +- core/src/main/java/hudson/model/Computer.java | 2 +- core/src/main/java/hudson/model/Job.java | 2 +- core/src/main/java/hudson/model/listeners/ItemListener.java | 2 +- core/src/main/java/hudson/model/queue/Tasks.java | 2 +- core/src/main/java/hudson/scheduler/CronTab.java | 6 +++--- core/src/main/java/hudson/scm/SCM.java | 5 ++++- core/src/main/java/hudson/slaves/Cloud.java | 4 ++-- core/src/main/java/hudson/slaves/ComputerLauncher.java | 2 +- core/src/main/java/hudson/tools/BatchCommandInstaller.java | 4 ++-- core/src/main/java/hudson/util/PersistedList.java | 2 +- core/src/main/java/jenkins/FilePathFilter.java | 2 +- core/src/main/java/jenkins/FilePathFilterAggregator.java | 2 +- core/src/main/java/jenkins/MasterToSlaveFileCallable.java | 2 +- core/src/main/java/jenkins/ReflectiveFilePathFilter.java | 2 +- core/src/main/java/jenkins/SlaveToMasterFileCallable.java | 2 +- core/src/main/java/jenkins/model/Jenkins.java | 2 +- core/src/main/java/jenkins/model/queue/ItemDeletion.java | 2 +- core/src/main/java/jenkins/scm/RunWithSCM.java | 2 +- .../src/main/java/jenkins/security/ChannelConfigurator.java | 2 +- .../main/java/jenkins/security/MasterToSlaveCallable.java | 2 +- .../jenkins/security/NotReallyRoleSensitiveCallable.java | 2 +- core/src/main/java/jenkins/security/Roles.java | 2 +- .../main/java/jenkins/security/SlaveToMasterCallable.java | 2 +- .../java/jenkins/security/s2m/AdminCallableMonitor.java | 2 +- .../main/java/jenkins/security/s2m/AdminFilePathFilter.java | 2 +- .../java/jenkins/security/s2m/CallableDirectionChecker.java | 2 +- .../main/java/jenkins/security/s2m/CallableWhitelist.java | 2 +- .../jenkins/security/s2m/MasterKillSwitchConfiguration.java | 2 +- .../java/jenkins/security/s2m/MasterKillSwitchWarning.java | 2 +- .../main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java | 2 +- .../main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java | 4 ++-- 33 files changed, 41 insertions(+), 38 deletions(-) diff --git a/core/src/main/java/hudson/cli/RunRangeCommand.java b/core/src/main/java/hudson/cli/RunRangeCommand.java index 2ba4b3b015..ceb3ffc33f 100644 --- a/core/src/main/java/hudson/cli/RunRangeCommand.java +++ b/core/src/main/java/hudson/cli/RunRangeCommand.java @@ -10,7 +10,7 @@ import java.util.List; /** * {@link CLICommand} that acts on a series of {@link Run}s. - * @since FIXME + * @since 2.62 */ public abstract class RunRangeCommand extends CLICommand { @Argument(metaVar="JOB",usage="Name of the job to build",required=true,index=0) diff --git a/core/src/main/java/hudson/console/HudsonExceptionNote.java b/core/src/main/java/hudson/console/HudsonExceptionNote.java index 83511694ce..574bdabb22 100644 --- a/core/src/main/java/hudson/console/HudsonExceptionNote.java +++ b/core/src/main/java/hudson/console/HudsonExceptionNote.java @@ -40,7 +40,7 @@ import org.jenkinsci.Symbol; * * @author Kohsuke Kawaguchi * @since 1.349 - produces search hyperlinks to the http://stacktrace.jenkins-ci.org service - * @since TODO - does nothing due to JENKINS-42861 + * @since 2.56 - does nothing due to JENKINS-42861 * @deprecated This ConsoleNote used to provide hyperlinks to the * http://stacktrace.jenkins-ci.org/ service, which is dead now (JENKINS-42861). * This console note does nothing right now. diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 2ac0b2a107..afad020673 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -976,7 +976,7 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces * Gets the read-only snapshot view of all {@link Executor} instances including {@linkplain OneOffExecutor}s. * * @return the read-only snapshot view of all {@link Executor} instances including {@linkplain OneOffExecutor}s. - * @since TODO + * @since 2.55 */ public List getAllExecutors() { List result = new ArrayList<>(executors.size() + oneOffExecutors.size()); diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index 0575724d99..a904a60436 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -1051,7 +1051,7 @@ public abstract class Job, RunT extends Run, ExtensionPoint { * 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. * - * @since FIXME + * @since 2.60 */ public void buildEnvironment(@Nonnull Run build, @Nonnull Map env) { if (build instanceof AbstractBuild) { @@ -535,6 +535,9 @@ public abstract class SCM implements Describable, ExtensionPoint { } } + /** + * @deprecated in favor of {@link #buildEnvironment(Run, Map)}. + */ @Deprecated public void buildEnvVars(AbstractBuild build, Map env) { if (Util.isOverridden(SCM.class, getClass(), "buildEnvironment", Run.class, Map.class)) { diff --git a/core/src/main/java/hudson/slaves/Cloud.java b/core/src/main/java/hudson/slaves/Cloud.java index c1bc5d7d89..6f074da3b8 100644 --- a/core/src/main/java/hudson/slaves/Cloud.java +++ b/core/src/main/java/hudson/slaves/Cloud.java @@ -80,7 +80,7 @@ import java.util.concurrent.Future; * *

      Views

      * - * Since version TODO, Jenkins clouds are visualized in UI. Implementations can provide top or main view + * Since version 2.64, Jenkins clouds are visualized in UI. Implementations can provide top or main view * to be presented at the top of the page or at the bottom respectively. In the middle, actions have their summary * views displayed. Actions further contribute to sidepanel with box views. All mentioned views are * optional to preserve backward compatibility. @@ -110,7 +110,7 @@ public abstract class Cloud extends Actionable implements ExtensionPoint, Descri /** * Get URL of the cloud. * - * @since TODO + * @since 2.64 * @return Jenkins relative URL. */ public @Nonnull String getUrl() { diff --git a/core/src/main/java/hudson/slaves/ComputerLauncher.java b/core/src/main/java/hudson/slaves/ComputerLauncher.java index 603df116de..9691408eeb 100644 --- a/core/src/main/java/hudson/slaves/ComputerLauncher.java +++ b/core/src/main/java/hudson/slaves/ComputerLauncher.java @@ -48,7 +48,7 @@ import org.apache.tools.ant.util.DeweyDecimal; * * * @author Stephen Connolly - * @since 24-Apr-2008 22:12:35 + * @since 1.216-ish * @see ComputerConnector */ public abstract class ComputerLauncher extends AbstractDescribableImpl implements ExtensionPoint { diff --git a/core/src/main/java/hudson/tools/BatchCommandInstaller.java b/core/src/main/java/hudson/tools/BatchCommandInstaller.java index 48b6a8d24b..f163b74a3a 100644 --- a/core/src/main/java/hudson/tools/BatchCommandInstaller.java +++ b/core/src/main/java/hudson/tools/BatchCommandInstaller.java @@ -33,8 +33,8 @@ import java.io.ObjectStreamException; /** * Installs tool via script execution of Batch script. - * Inspired by "Command installer" from the Jenkins core. - * @since 0.1 + * + * @since 1.549 */ public class BatchCommandInstaller extends AbstractCommandInstaller { diff --git a/core/src/main/java/hudson/util/PersistedList.java b/core/src/main/java/hudson/util/PersistedList.java index 17fcc66381..ae27fbfc48 100644 --- a/core/src/main/java/hudson/util/PersistedList.java +++ b/core/src/main/java/hudson/util/PersistedList.java @@ -45,7 +45,7 @@ import java.util.List; * Collection whose change is notified to the parent object for persistence. * * @author Kohsuke Kawaguchi - * @since 1.MULTISOURCE + * @since 1.333 */ public class PersistedList extends AbstractList { protected final CopyOnWriteList data = new CopyOnWriteList(); diff --git a/core/src/main/java/jenkins/FilePathFilter.java b/core/src/main/java/jenkins/FilePathFilter.java index bb6a47a9f9..501a005a5d 100644 --- a/core/src/main/java/jenkins/FilePathFilter.java +++ b/core/src/main/java/jenkins/FilePathFilter.java @@ -23,7 +23,7 @@ import java.io.File; * * @author Kohsuke Kawaguchi * @see FilePath - * @since 1.THU + * @since 1.587 / 1.580.1 */ public abstract class FilePathFilter { /** diff --git a/core/src/main/java/jenkins/FilePathFilterAggregator.java b/core/src/main/java/jenkins/FilePathFilterAggregator.java index 8bf4949e17..f81ce2f77f 100644 --- a/core/src/main/java/jenkins/FilePathFilterAggregator.java +++ b/core/src/main/java/jenkins/FilePathFilterAggregator.java @@ -15,7 +15,7 @@ import java.util.concurrent.CopyOnWriteArrayList; * * @author Kohsuke Kawaguchi * @see FilePath - * @since 1.THU + * @since 1.587 / 1.580.1 */ class FilePathFilterAggregator extends FilePathFilter { private final CopyOnWriteArrayList all = new CopyOnWriteArrayList(); diff --git a/core/src/main/java/jenkins/MasterToSlaveFileCallable.java b/core/src/main/java/jenkins/MasterToSlaveFileCallable.java index cad6813c18..18a39dedb7 100644 --- a/core/src/main/java/jenkins/MasterToSlaveFileCallable.java +++ b/core/src/main/java/jenkins/MasterToSlaveFileCallable.java @@ -7,7 +7,7 @@ import org.jenkinsci.remoting.RoleChecker; /** * {@link FileCallable}s that are meant to be only used on the master. * - * @since 1.THU + * @since 1.587 / 1.580.1 */ public abstract class MasterToSlaveFileCallable implements FileCallable { @Override diff --git a/core/src/main/java/jenkins/ReflectiveFilePathFilter.java b/core/src/main/java/jenkins/ReflectiveFilePathFilter.java index ce963943cd..f35186aebc 100644 --- a/core/src/main/java/jenkins/ReflectiveFilePathFilter.java +++ b/core/src/main/java/jenkins/ReflectiveFilePathFilter.java @@ -7,7 +7,7 @@ import java.io.File; * operations as a single string argument. * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ public abstract class ReflectiveFilePathFilter extends FilePathFilter { /** diff --git a/core/src/main/java/jenkins/SlaveToMasterFileCallable.java b/core/src/main/java/jenkins/SlaveToMasterFileCallable.java index bda39cff47..10071cf1f8 100644 --- a/core/src/main/java/jenkins/SlaveToMasterFileCallable.java +++ b/core/src/main/java/jenkins/SlaveToMasterFileCallable.java @@ -7,7 +7,7 @@ import org.jenkinsci.remoting.RoleChecker; /** * {@link FileCallable}s that can be executed on the master, sent by the agent. * - * @since 1.THU + * @since 1.587 / 1.580.1 */ public abstract class SlaveToMasterFileCallable implements FileCallable { @Override diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 64c297c1bd..ff6be31cde 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -2176,7 +2176,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve /** * Returns the enabled and activated administrative monitors. - * @since TODO + * @since 2.64 */ public List getActiveAdministrativeMonitors() { return administrativeMonitors.stream().filter(m -> m.isEnabled() && m.isActivated()).collect(Collectors.toList()); diff --git a/core/src/main/java/jenkins/model/queue/ItemDeletion.java b/core/src/main/java/jenkins/model/queue/ItemDeletion.java index 32d55c6023..c8bef94b0b 100644 --- a/core/src/main/java/jenkins/model/queue/ItemDeletion.java +++ b/core/src/main/java/jenkins/model/queue/ItemDeletion.java @@ -41,7 +41,7 @@ import javax.annotation.concurrent.GuardedBy; /** * A {@link Queue.QueueDecisionHandler} that blocks items being deleted from entering the queue. * - * @since TODO + * @since 2.55 */ @Extension public class ItemDeletion extends Queue.QueueDecisionHandler { diff --git a/core/src/main/java/jenkins/scm/RunWithSCM.java b/core/src/main/java/jenkins/scm/RunWithSCM.java index 551716503c..dce404243a 100644 --- a/core/src/main/java/jenkins/scm/RunWithSCM.java +++ b/core/src/main/java/jenkins/scm/RunWithSCM.java @@ -48,7 +48,7 @@ import java.util.logging.Logger; /** * Allows a {@link Run} to provide {@link SCM}-related methods, such as providing changesets and culprits. * - * @since FIXME + * @since 2.60 */ public interface RunWithSCM, RunT extends Run & RunWithSCM> { diff --git a/core/src/main/java/jenkins/security/ChannelConfigurator.java b/core/src/main/java/jenkins/security/ChannelConfigurator.java index fd7c26e229..91aba88846 100644 --- a/core/src/main/java/jenkins/security/ChannelConfigurator.java +++ b/core/src/main/java/jenkins/security/ChannelConfigurator.java @@ -13,7 +13,7 @@ import javax.annotation.Nullable; * Intercepts the new creation of {@link Channel} and tweak its configuration. * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ public abstract class ChannelConfigurator implements ExtensionPoint { /** diff --git a/core/src/main/java/jenkins/security/MasterToSlaveCallable.java b/core/src/main/java/jenkins/security/MasterToSlaveCallable.java index e348ec1e49..1e71fcee5d 100644 --- a/core/src/main/java/jenkins/security/MasterToSlaveCallable.java +++ b/core/src/main/java/jenkins/security/MasterToSlaveCallable.java @@ -8,7 +8,7 @@ import org.jenkinsci.remoting.RoleChecker; * Convenient {@link Callable} meant to be run on agent. * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ public abstract class MasterToSlaveCallable implements Callable { @Override diff --git a/core/src/main/java/jenkins/security/NotReallyRoleSensitiveCallable.java b/core/src/main/java/jenkins/security/NotReallyRoleSensitiveCallable.java index 953c5ba69d..b2dee77bd2 100644 --- a/core/src/main/java/jenkins/security/NotReallyRoleSensitiveCallable.java +++ b/core/src/main/java/jenkins/security/NotReallyRoleSensitiveCallable.java @@ -8,7 +8,7 @@ import org.jenkinsci.remoting.RoleChecker; * just as a convenient function that has parameterized return value and exception type. * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ public abstract class NotReallyRoleSensitiveCallable implements Callable { @Override diff --git a/core/src/main/java/jenkins/security/Roles.java b/core/src/main/java/jenkins/security/Roles.java index ada2ca96c0..e37b323acc 100644 --- a/core/src/main/java/jenkins/security/Roles.java +++ b/core/src/main/java/jenkins/security/Roles.java @@ -12,7 +12,7 @@ import org.jenkinsci.remoting.Role; * not have any role. * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ public class Roles { /** diff --git a/core/src/main/java/jenkins/security/SlaveToMasterCallable.java b/core/src/main/java/jenkins/security/SlaveToMasterCallable.java index 34b227c5bf..2f256f2e9d 100644 --- a/core/src/main/java/jenkins/security/SlaveToMasterCallable.java +++ b/core/src/main/java/jenkins/security/SlaveToMasterCallable.java @@ -8,7 +8,7 @@ import org.jenkinsci.remoting.RoleChecker; * Convenient {@link Callable} that are meant to run on the master (sent by agent/CLI/etc). * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ public abstract class SlaveToMasterCallable implements Callable { @Override diff --git a/core/src/main/java/jenkins/security/s2m/AdminCallableMonitor.java b/core/src/main/java/jenkins/security/s2m/AdminCallableMonitor.java index 3a9d095af1..8f491d2929 100644 --- a/core/src/main/java/jenkins/security/s2m/AdminCallableMonitor.java +++ b/core/src/main/java/jenkins/security/s2m/AdminCallableMonitor.java @@ -18,7 +18,7 @@ import java.io.IOException; * Report any rejected {@link Callable}s and {@link FilePath} executions and allow * admins to whitelist them. * - * @since 1.THU + * @since 1.587 / 1.580.1 * @author Kohsuke Kawaguchi */ @Extension @Symbol("slaveToMasterAccessControl") diff --git a/core/src/main/java/jenkins/security/s2m/AdminFilePathFilter.java b/core/src/main/java/jenkins/security/s2m/AdminFilePathFilter.java index 7832f82bbb..d5d94b52d5 100644 --- a/core/src/main/java/jenkins/security/s2m/AdminFilePathFilter.java +++ b/core/src/main/java/jenkins/security/s2m/AdminFilePathFilter.java @@ -17,7 +17,7 @@ import java.io.File; * This class is just a glue, and the real logic happens inside {@link AdminWhitelistRule} * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ public class AdminFilePathFilter extends ReflectiveFilePathFilter { diff --git a/core/src/main/java/jenkins/security/s2m/CallableDirectionChecker.java b/core/src/main/java/jenkins/security/s2m/CallableDirectionChecker.java index d21c5a5880..194e83c813 100644 --- a/core/src/main/java/jenkins/security/s2m/CallableDirectionChecker.java +++ b/core/src/main/java/jenkins/security/s2m/CallableDirectionChecker.java @@ -22,7 +22,7 @@ import java.util.logging.Logger; * Inspects {@link Callable}s that run on the master. * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ @Restricted(NoExternalUse.class) // used implicitly via listener public class CallableDirectionChecker extends RoleChecker { diff --git a/core/src/main/java/jenkins/security/s2m/CallableWhitelist.java b/core/src/main/java/jenkins/security/s2m/CallableWhitelist.java index 50023a0cd0..27ef63143e 100644 --- a/core/src/main/java/jenkins/security/s2m/CallableWhitelist.java +++ b/core/src/main/java/jenkins/security/s2m/CallableWhitelist.java @@ -18,7 +18,7 @@ import java.util.Collection; * {@link Callable#checkRoles(RoleChecker)} method. * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ public abstract class CallableWhitelist implements ExtensionPoint { /** diff --git a/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java b/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java index 69bb8e34bc..3a1e2b063d 100644 --- a/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java +++ b/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java @@ -12,7 +12,7 @@ import org.kohsuke.stapler.StaplerRequest; * Exposes {@link AdminWhitelistRule#masterKillSwitch} to the admin. * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ @Extension public class MasterKillSwitchConfiguration extends GlobalConfiguration { diff --git a/core/src/main/java/jenkins/security/s2m/MasterKillSwitchWarning.java b/core/src/main/java/jenkins/security/s2m/MasterKillSwitchWarning.java index 54164c00c1..ccbb09c6f0 100644 --- a/core/src/main/java/jenkins/security/s2m/MasterKillSwitchWarning.java +++ b/core/src/main/java/jenkins/security/s2m/MasterKillSwitchWarning.java @@ -14,7 +14,7 @@ import java.io.IOException; * If {@link AdminWhitelistRule#masterKillSwitch} is on, warn the user. * * @author Kohsuke Kawaguchi - * @since 1.THU + * @since 1.587 / 1.580.1 */ @Extension public class MasterKillSwitchWarning extends AdministrativeMonitor { diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java index 50779ee9da..8d235f6114 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java @@ -25,7 +25,7 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; * *

      @see {@link org.jenkinsci.remoting.engine.JnlpProtocol3Handler} for more details. * - * @since 1.XXX + * @since 1.653 */ @Deprecated @Extension diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java index cfa4ac8de7..d932f3b5d8 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java @@ -58,8 +58,8 @@ import org.jenkinsci.remoting.protocol.cert.PublicKeyMatchingX509ExtendedTrustMa * *

      @see {@link org.jenkinsci.remoting.engine.JnlpProtocol4Handler} for more details. * - * @since 2.27 available as the experimental protocol - * @since TODO enabled by default + * @since 2.27 available as experimental protocol + * @since 2.41 enabled by default */ @Extension public class JnlpSlaveAgentProtocol4 extends AgentProtocol { -- GitLab From eac4221941380860287db1e1e497846fc2d70875 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Sun, 16 Jul 2017 14:28:20 +0200 Subject: [PATCH 0072/1763] Fix more since tags --- core/src/main/java/hudson/model/listeners/ItemListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/listeners/ItemListener.java b/core/src/main/java/hudson/model/listeners/ItemListener.java index 2d9f55f40b..f72a8acff3 100644 --- a/core/src/main/java/hudson/model/listeners/ItemListener.java +++ b/core/src/main/java/hudson/model/listeners/ItemListener.java @@ -64,7 +64,7 @@ public class ItemListener implements ExtensionPoint { * @param src the item being copied * @param parent the proposed parent * @throws Failure to veto the operation. - * @since TODO + * @since 2.51 */ public void onCheckCopy(Item src, ItemGroup parent) throws Failure { } -- GitLab From c8b2b5246b2f1eff62976d67c8258a3c929a8b96 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sun, 16 Jul 2017 19:34:42 -0700 Subject: [PATCH 0073/1763] [maven-release-plugin] prepare release jenkins-2.70 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 6a80e49c98..b23ced16d1 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.70-SNAPSHOT + 2.70 cli diff --git a/core/pom.xml b/core/pom.xml index 16caeeef39..c9ff056058 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.70-SNAPSHOT + 2.70 jenkins-core diff --git a/pom.xml b/pom.xml index e63916c8bf..cfa04ca612 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.70-SNAPSHOT + 2.70 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.70 diff --git a/test/pom.xml b/test/pom.xml index 0e631fecec..d1c1c2abcd 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.70-SNAPSHOT + 2.70 test diff --git a/war/pom.xml b/war/pom.xml index 0a2dbbb091..93e34a5f1a 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.70-SNAPSHOT + 2.70 jenkins-war -- GitLab From 82d2e5c4aae317fae5597311d4470dd8b41535c3 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sun, 16 Jul 2017 19:34:42 -0700 Subject: [PATCH 0074/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index b23ced16d1..0a8ec5658a 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.70 + 2.71-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index c9ff056058..db4811997b 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.70 + 2.71-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index cfa04ca612..66b138199e 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.70 + 2.71-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.70 + HEAD diff --git a/test/pom.xml b/test/pom.xml index d1c1c2abcd..c34c7b1a58 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.70 + 2.71-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 93e34a5f1a..0b4aefe481 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.70 + 2.71-SNAPSHOT jenkins-war -- GitLab From 0c26fef6b20e4994c2bb6b39beaea515c68c2b59 Mon Sep 17 00:00:00 2001 From: olivier lamy Date: Mon, 17 Jul 2017 21:04:39 +1000 Subject: [PATCH 0075/1763] executable-war 1.36 Signed-off-by: olivier lamy --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 7238479538..46f80ad55f 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -49,7 +49,7 @@ THE SOFTWARE. org.jenkins-ci executable-war - 1.36-SNAPSHOT + 1.36 provided -- GitLab From 0f9143da61eaa178b167a3110e858130a7e6e4c2 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Wed, 19 Jul 2017 15:31:47 -0700 Subject: [PATCH 0076/1763] [maven-release-plugin] prepare release jenkins-2.60.2 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index c2eb35cbe0..053f57a714 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.60.2-SNAPSHOT + 2.60.2 cli diff --git a/core/pom.xml b/core/pom.xml index 83809ddb77..5489d3eef1 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.2-SNAPSHOT + 2.60.2 jenkins-core diff --git a/pom.xml b/pom.xml index ccc542bf2e..95a7acbb47 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.2-SNAPSHOT + 2.60.2 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.60.2 diff --git a/test/pom.xml b/test/pom.xml index 5d24b74d31..aa701e5001 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.2-SNAPSHOT + 2.60.2 test diff --git a/war/pom.xml b/war/pom.xml index 0a7303a479..7d66f86735 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.2-SNAPSHOT + 2.60.2 jenkins-war -- GitLab From 07e7f47244f50d0f69595996ed18ae68688b6156 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Wed, 19 Jul 2017 15:31:47 -0700 Subject: [PATCH 0077/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 053f57a714..27b67003b2 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.60.2 + 2.60.3-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 5489d3eef1..2b9a0fe9d9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.2 + 2.60.3-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index 95a7acbb47..9df84cc800 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.2 + 2.60.3-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.60.2 + HEAD diff --git a/test/pom.xml b/test/pom.xml index aa701e5001..a5dfe2a8e6 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.2 + 2.60.3-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 7d66f86735..7011c89a6e 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.2 + 2.60.3-SNAPSHOT jenkins-war -- GitLab From fc9283e553180f96378c636bdeee793266c0a471 Mon Sep 17 00:00:00 2001 From: olivier lamy Date: Thu, 20 Jul 2017 11:20:51 +1000 Subject: [PATCH 0078/1763] no need anymore to ignore jetty spdy classes as it doesn't exist anymore Signed-off-by: olivier lamy --- pom.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pom.xml b/pom.xml index e63916c8bf..cf2ba11938 100644 --- a/pom.xml +++ b/pom.xml @@ -689,9 +689,6 @@ THE SOFTWARE. 1.${java.level} - - org.eclipse.jetty.spdy.* - -- GitLab From 99cf772da11823ec965874b17e89866a3931ebc1 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Thu, 20 Jul 2017 11:12:26 +0200 Subject: [PATCH 0079/1763] [FIX JENKINS-45679] JNLP needs to request Java 8 --- .../hudson/slaves/SlaveComputer/slave-agent.jnlp.jelly | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 aff376cb8a..07f6f25144 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 @@ -50,10 +50,10 @@ THE SOFTWARE. - + - + -- GitLab From c2163c5b3cb4a0c42cdc31cf404a82bcecb05082 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Mon, 26 Jun 2017 11:02:52 +0200 Subject: [PATCH 0080/1763] [JENKINS-38527] - Prevent NullPointerException in Slave#createLauncher() and add cause diagnostics (#2923) * [JENKINS-38527] - Prevent NullPointerException in Slave#createLauncher() and add cause diagnostics The original issue comes from the isUnix() unboxing, but we can also get into an issue later if we pass a null Channel instance to the logic. This change adds some diagnostics which discovers potential root causes of such potential NPEs due to the race conditions with Computer reconnection * [JENKINS-38527] - Also handle cases when Channel#isClosingOrClosed() as @stephenc suggested (cherry picked from commit 78a42d5a4a5d545324c2d3230de6947e1ec8806e) --- core/src/main/java/hudson/model/Slave.java | 57 +++++++++++++++++++++- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/model/Slave.java b/core/src/main/java/hudson/model/Slave.java index 0835e66ec2..7d3721fbbd 100644 --- a/core/src/main/java/hudson/model/Slave.java +++ b/core/src/main/java/hudson/model/Slave.java @@ -57,6 +57,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import javax.servlet.ServletException; @@ -92,6 +94,9 @@ import org.kohsuke.stapler.StaplerResponse; * @author Kohsuke Kawaguchi */ public abstract class Slave extends Node implements Serializable { + + private static final Logger LOGGER = Logger.getLogger(Slave.class.getName()); + /** * Name of this agent node. */ @@ -412,13 +417,61 @@ public abstract class Slave extends Node implements Serializable { * If there is no computer it will return a {@link hudson.Launcher.DummyLauncher}, otherwise it * will return a {@link hudson.Launcher.RemoteLauncher} instead. */ + @Nonnull public Launcher createLauncher(TaskListener listener) { SlaveComputer c = getComputer(); if (c == null) { - listener.error("Issue with creating launcher for agent " + name + "."); + listener.error("Issue with creating launcher for agent " + name + ". Computer has been disconnected"); return new Launcher.DummyLauncher(listener); } else { - return new RemoteLauncher(listener, c.getChannel(), c.isUnix()).decorateFor(this); + // TODO: ideally all the logic below should be inside the SlaveComputer class with proper locking to prevent race conditions, + // but so far there is no locks for setNode() hence it requires serious refactoring + + // Ensure that the Computer instance still points to this node + // Otherwise we may end up running the command on a wrong (reconnected) Node instance. + Slave node = c.getNode(); + if (node != this) { + String message = "Issue with creating launcher for agent " + name + ". Computer has been reconnected"; + if (LOGGER.isLoggable(Level.WARNING)) { + LOGGER.log(Level.WARNING, message, new IllegalStateException("Computer has been reconnected, this Node instance cannot be used anymore")); + } + return new Launcher.DummyLauncher(listener); + } + + // RemoteLauncher requires an active Channel instance to operate correctly + final Channel channel = c.getChannel(); + if (channel == null) { + reportLauncerCreateError("The agent has not been fully initialized yet", + "No remoting channel to the agent OR it has not been fully initialized yet", listener); + return new Launcher.DummyLauncher(listener); + } + if (channel.isClosingOrClosed()) { + reportLauncerCreateError("The agent is being disconnected", + "Remoting channel is either in the process of closing down or has closed down", listener); + return new Launcher.DummyLauncher(listener); + } + final Boolean isUnix = c.isUnix(); + if (isUnix == null) { + // isUnix is always set when the channel is not null, so it should never happen + reportLauncerCreateError("The agent has not been fully initialized yet", + "Cannot determing if the agent is a Unix one, the System status request has not completed yet. " + + "It is an invalid channel state, please report a bug to Jenkins if you see it.", + listener); + return new Launcher.DummyLauncher(listener); + } + + return new RemoteLauncher(listener, channel, isUnix).decorateFor(this); + } + } + + private void reportLauncerCreateError(@Nonnull String humanReadableMsg, @CheckForNull String exceptionDetails, @Nonnull TaskListener listener) { + String message = "Issue with creating launcher for agent " + name + ". " + humanReadableMsg; + listener.error(message); + if (LOGGER.isLoggable(Level.WARNING)) { + // Send stacktrace to the log as well in order to diagnose the root cause of issues like JENKINS-38527 + LOGGER.log(Level.WARNING, message + + "Probably there is a race condition with Agent reconnection or disconnection, check other log entries", + new IllegalStateException(exceptionDetails != null ? exceptionDetails : humanReadableMsg)); } } -- GitLab From c2c6306d2aeba4cb436af9c4b5acaccd38b98985 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Mon, 22 May 2017 10:38:58 +0200 Subject: [PATCH 0081/1763] [JENKINS-44103] - Cleanup usages of the "JNLP" term in TcpSlaveAgentListener (cherry picked from commit b5fe89cc9873a1c16c580ced43054b62ef70589b) --- .../java/hudson/TcpSlaveAgentListener.java | 19 +++++++++++++------ .../hudson/TcpSlaveAgentListener/index.jelly | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/hudson/TcpSlaveAgentListener.java b/core/src/main/java/hudson/TcpSlaveAgentListener.java index 5a626a30d5..3b926261c6 100644 --- a/core/src/main/java/hudson/TcpSlaveAgentListener.java +++ b/core/src/main/java/hudson/TcpSlaveAgentListener.java @@ -23,6 +23,7 @@ */ package hudson; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayInputStream; import java.io.SequenceInputStream; import java.io.Writer; @@ -57,9 +58,11 @@ import org.apache.commons.io.Charsets; import org.apache.commons.io.IOUtils; import org.apache.commons.io.output.NullOutputStream; import org.apache.commons.lang.StringUtils; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; /** - * Listens to incoming TCP connections from JNLP agents and CLI. + * Listens to incoming TCP connections from JNLP agents and Remoting CLI. * *

      * Aside from the HTTP endpoint, Jenkins runs {@link TcpSlaveAgentListener} that listens on a TCP socket. @@ -95,7 +98,7 @@ public final class TcpSlaveAgentListener extends Thread { } this.configuredPort = port; - LOGGER.log(Level.FINE, "JNLP agent listener started on TCP port {0}", getPort()); + LOGGER.log(Level.FINE, "TCP agent listener started on port {0}", getPort()); start(); } @@ -155,7 +158,7 @@ public final class TcpSlaveAgentListener extends Thread { } } catch (IOException e) { if(!shuttingDown) { - LOGGER.log(Level.SEVERE,"Failed to accept JNLP agent connections",e); + LOGGER.log(Level.SEVERE,"Failed to accept TCP connections", e); } } } @@ -241,14 +244,14 @@ public final class TcpSlaveAgentListener extends Thread { LOGGER.log(Level.WARNING,"Connection #"+id+" aborted",e); try { s.close(); - } catch (IOException _) { + } catch (IOException ex) { // try to clean up the socket } } catch (IOException e) { LOGGER.log(Level.WARNING,"Connection #"+id+" failed",e); try { s.close(); - } catch (IOException _) { + } catch (IOException ex) { // try to clean up the socket } } @@ -292,7 +295,7 @@ public final class TcpSlaveAgentListener extends Thread { private void error(PrintWriter out, String msg) throws IOException { out.println(msg); - LOGGER.log(Level.WARNING,"Connection #"+id+" is aborted: "+msg); + LOGGER.log(Level.WARNING, "Connection #{0} is aborted: {1}", new Object[]{id, msg}); s.close(); } } @@ -398,6 +401,8 @@ public final class TcpSlaveAgentListener extends Thread { * * TODO: think about how to expose this (including whether this needs to be exposed at all.) */ + @SuppressFBWarnings(value = "MS_SHOULD_BE_FINAL", justification = "Accessible via System Groovy Scripts") + @Restricted(NoExternalUse.class) public static String CLI_HOST_NAME = SystemProperties.getString(TcpSlaveAgentListener.class.getName()+".hostName"); /** @@ -410,6 +415,8 @@ public final class TcpSlaveAgentListener extends Thread { * * @since 1.611 */ + @SuppressFBWarnings(value = "MS_SHOULD_BE_FINAL", justification = "Accessible via System Groovy Scripts") + @Restricted(NoExternalUse.class) public static Integer CLI_PORT = SystemProperties.getInteger(TcpSlaveAgentListener.class.getName()+".port"); } diff --git a/core/src/main/resources/hudson/TcpSlaveAgentListener/index.jelly b/core/src/main/resources/hudson/TcpSlaveAgentListener/index.jelly index 9be4024272..85471432ae 100644 --- a/core/src/main/resources/hudson/TcpSlaveAgentListener/index.jelly +++ b/core/src/main/resources/hudson/TcpSlaveAgentListener/index.jelly @@ -26,7 +26,7 @@ THE SOFTWARE. -- GitLab From 8cd6fd81a5fd9960a05bd485afec9c3976324cb5 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 1 Jul 2017 08:11:16 +0200 Subject: [PATCH 0082/1763] [JENKINS-43496] - Add handling of the null Node#createComputer() result. (#2922) * [JENKINS-43496] - Add handling of the null Node#createComputer() result. it is a follow-up to https://github.com/jenkinsci/jenkins/pull/2836#discussion_r110604865 De-facto many Cloud plugins return `null` in `Node#createLauncher()`, but it has never been documented. In order to prevent possible API misusages in the future, I have added annotations and fixed handling of the extension point in `AbstractCIBase#updateComputer()` which may fail in the case of `null` or `RuntimeException` in the Node implementation. * [JENKINS-43496] - Use ProtectedExternally to protect Node#createComputer() * [JENKINS-43496] - Remove the erroneous Nonnull annotation after the feedback from @jglick * [JENKINS-43496] - Fix typos noticed by @daniel-beck (cherry picked from commit bcf55ecd7f8a22046c5cb3c4c50016d936e5460c) --- .../java/hudson/model/AbstractCIBase.java | 21 ++++++++++++++++--- core/src/main/java/hudson/model/Node.java | 8 +++++++ .../java/hudson/slaves/RetentionStrategy.java | 6 ++++-- core/src/main/java/jenkins/model/Jenkins.java | 2 ++ 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/hudson/model/AbstractCIBase.java b/core/src/main/java/hudson/model/AbstractCIBase.java index 16744334e5..3cef84804b 100644 --- a/core/src/main/java/hudson/model/AbstractCIBase.java +++ b/core/src/main/java/hudson/model/AbstractCIBase.java @@ -39,6 +39,7 @@ import java.util.concurrent.CopyOnWriteArraySet; import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; import jenkins.model.Configuration; @@ -125,7 +126,18 @@ public abstract class AbstractCIBase extends Node implements ItemGroup0 || n==Jenkins.getInstance()) { - computers.put(n, c = n.createComputer()); + try { + c = n.createComputer(); + } catch(RuntimeException ex) { // Just in case there is a bogus extension + LOGGER.log(Level.WARNING, "Error retrieving computer for node " + n.getNodeName() + ", continuing", ex); + } + if (c == null) { + LOGGER.log(Level.WARNING, "Cannot create computer for node {0}, the {1}#createComputer() method returned null. Skipping this node", + new Object[]{n.getNodeName(), n.getClass().getName()}); + return; + } + + computers.put(n, c); if (!n.isHoldOffLaunchUntilSave() && automaticSlaveLaunch) { RetentionStrategy retentionStrategy = c.getRetentionStrategy(); if (retentionStrategy != null) { @@ -136,8 +148,11 @@ public abstract class AbstractCIBase extends Node implements ItemGroup used = new HashSet(old.size()); + Set used = new HashSet<>(old.size()); updateComputer(AbstractCIBase.this, byName, used, automaticSlaveLaunch); for (Node s : getNodes()) { diff --git a/core/src/main/java/hudson/model/Node.java b/core/src/main/java/hudson/model/Node.java index 42b40a17d2..ab1ca6ca66 100644 --- a/core/src/main/java/hudson/model/Node.java +++ b/core/src/main/java/hudson/model/Node.java @@ -40,6 +40,7 @@ import hudson.remoting.VirtualChannel; import hudson.security.ACL; import hudson.security.AccessControlled; import hudson.security.Permission; +import hudson.slaves.Cloud; import hudson.slaves.ComputerListener; import hudson.slaves.NodeDescriptor; import hudson.slaves.NodeProperty; @@ -65,6 +66,8 @@ import jenkins.util.io.OnMaster; import net.sf.json.JSONObject; import org.acegisecurity.Authentication; import org.jvnet.localizer.Localizable; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.ProtectedExternally; import org.kohsuke.stapler.BindInterceptor; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; @@ -214,8 +217,13 @@ public abstract class Node extends AbstractModelObject implements Reconfigurable /** * Creates a new {@link Computer} object that acts as the UI peer of this {@link Node}. + * * Nobody but {@link Jenkins#updateComputerList()} should call this method. + * @return Created instance of the computer. + * Can be {@code null} if the {@link Node} implementation does not support it (e.g. {@link Cloud} agent). */ + @CheckForNull + @Restricted(ProtectedExternally.class) protected abstract Computer createComputer(); /** diff --git a/core/src/main/java/hudson/slaves/RetentionStrategy.java b/core/src/main/java/hudson/slaves/RetentionStrategy.java index 3d8c79e544..0e33a9dc6c 100644 --- a/core/src/main/java/hudson/slaves/RetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/RetentionStrategy.java @@ -39,6 +39,7 @@ import javax.annotation.concurrent.GuardedBy; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; +import javax.annotation.Nonnull; /** * Controls when to take {@link Computer} offline, bring it back online, or even to destroy it. @@ -57,7 +58,7 @@ public abstract class RetentionStrategy extends AbstractDesc * rechecked earlier or later that this! */ @GuardedBy("hudson.model.Queue.lock") - public abstract long check(T c); + public abstract long check(@Nonnull T c); /** * This method is called to determine whether manual launching of the agent is allowed at this point in time. @@ -92,9 +93,10 @@ public abstract class RetentionStrategy extends AbstractDesc * The default implementation of this method delegates to {@link #check(Computer)}, * but this allows {@link RetentionStrategy} to distinguish the first time invocation from the rest. * + * @param c Computer instance * @since 1.275 */ - public void start(final T c) { + public void start(final @Nonnull T c) { Queue.withLock(new Runnable() { @Override public void run() { diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 9eccb6b753..11b0b676d7 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -3051,6 +3051,8 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve return getLabelAtom("master"); } + @Override + @Nonnull public Computer createComputer() { return new Hudson.MasterComputer(); } -- GitLab From de4f28558a63381c6f53648aa89960c89eb6c7c0 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 1 Jul 2017 12:50:41 +0200 Subject: [PATCH 0083/1763] Merge pull request #2931 from jglick/ReloadConfigurationCommand [JENKINS-45256] The reload-configuration CLI command ought to wait until the reload is finished (cherry picked from commit cc1615b9efbf1e24a53c1d978abf81fa2be6193e) --- .../cli/ReloadConfigurationCommand.java | 25 +++++++++++++++++-- .../java/hudson/util/JenkinsReloadFailed.java | 2 +- core/src/main/java/jenkins/model/Jenkins.java | 4 +-- .../cli/ReloadConfigurationCommandTest.java | 7 ------ 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java b/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java index 25199ec5be..adb61e12c6 100644 --- a/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java +++ b/core/src/main/java/hudson/cli/ReloadConfigurationCommand.java @@ -25,7 +25,10 @@ package hudson.cli; import hudson.Extension; +import hudson.util.HudsonIsLoading; +import hudson.util.JenkinsReloadFailed; import jenkins.model.Jenkins; +import org.kohsuke.stapler.WebApp; /** * Reload everything from the file system. @@ -43,8 +46,26 @@ public class ReloadConfigurationCommand extends CLICommand { @Override protected int run() throws Exception { - Jenkins.getActiveInstance().doReload(); - return 0; + Jenkins j = Jenkins.getInstance(); + // Or perhaps simpler to inline the thread body of doReload? + j.doReload(); + Object app; + while ((app = WebApp.get(j.servletContext).getApp()) instanceof HudsonIsLoading) { + Thread.sleep(100); + } + if (app instanceof Jenkins) { + return 0; + } else if (app instanceof JenkinsReloadFailed) { + Throwable t = ((JenkinsReloadFailed) app).cause; + if (t instanceof Exception) { + throw (Exception) t; + } else { + throw new RuntimeException(t); + } + } else { + stderr.println("Unexpected status " + app); + return 1; // could throw JenkinsReloadFailed.cause if it were not deprecated + } } } diff --git a/core/src/main/java/hudson/util/JenkinsReloadFailed.java b/core/src/main/java/hudson/util/JenkinsReloadFailed.java index 7022844bce..ab27d5969f 100644 --- a/core/src/main/java/hudson/util/JenkinsReloadFailed.java +++ b/core/src/main/java/hudson/util/JenkinsReloadFailed.java @@ -9,7 +9,7 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; * @author Kohsuke Kawaguchi */ public class JenkinsReloadFailed extends BootFailure { - @Restricted(NoExternalUse.class) @Deprecated + @Restricted(NoExternalUse.class) public final Throwable cause; public JenkinsReloadFailed(Throwable cause) { diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 11b0b676d7..acb561edf8 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -3988,7 +3988,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve LOGGER.log(Level.WARNING, "Reloading Jenkins as requested by {0}", getAuthentication().getName()); // engage "loading ..." UI and then run the actual task in a separate thread - servletContext.setAttribute("app", new HudsonIsLoading()); + WebApp.get(servletContext).setApp(new HudsonIsLoading()); new Thread("Jenkins config reload thread") { @Override @@ -4027,7 +4027,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve User.reload(); queue.load(); - servletContext.setAttribute("app", this); + WebApp.get(servletContext).setApp(this); } /** diff --git a/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java b/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java index a6018a8874..092fd6ee50 100644 --- a/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java +++ b/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java @@ -173,13 +173,6 @@ public class ReloadConfigurationCommandTest { final CLICommandInvoker.Result result = command.invoke(); assertThat(result, succeededSilently()); - - // reload-configuration is performed in a separate thread - // we have to wait until it finishes - while (!(j.jenkins.servletContext.getAttribute("app") instanceof Jenkins)) { - System.out.println("Jenkins reload operation is performing, sleeping 1s..."); - Thread.sleep(1000); - } } private void replace(String path, String search, String replace) { -- GitLab From ece79da3e2780be36e791a1fceb3cfc38a088378 Mon Sep 17 00:00:00 2001 From: olivier lamy Date: Thu, 20 Jul 2017 22:01:10 +1000 Subject: [PATCH 0084/1763] use release 4.1 of winstone Signed-off-by: olivier lamy --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 46f80ad55f..1f378fe39c 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -93,7 +93,7 @@ THE SOFTWARE. --> org.jenkins-ci winstone - 4.1-SNAPSHOT + 4.1 test -- GitLab From 9dede06404a8bd6fbeab76ed13a00bbd25def03e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Fri, 21 Jul 2017 08:58:11 +0200 Subject: [PATCH 0085/1763] Update accmod for latest restrictions --- cli/pom.xml | 1 - core/pom.xml | 1 - pom.xml | 10 +++++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 27b67003b2..17569e230d 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -27,7 +27,6 @@ org.kohsuke access-modifier-annotation - 1.7 commons-codec diff --git a/core/pom.xml b/core/pom.xml index 2b9a0fe9d9..66c9d7a021 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -575,7 +575,6 @@ THE SOFTWARE. org.kohsuke access-modifier-annotation - 1.4 diff --git a/pom.xml b/pom.xml index 9df84cc800..27b8adb594 100644 --- a/pom.xml +++ b/pom.xml @@ -95,6 +95,9 @@ THE SOFTWARE. 3.0.4 true 1.2 + 1.12 + ${access-modifier.version} + ${access-modifier.version} 8 @@ -223,6 +226,11 @@ THE SOFTWARE. jcifs 1.3.17-kohsuke-1 + + org.kohsuke + access-modifier-annotation + ${access-modifier-annotation.version} + @@ -432,7 +440,7 @@ THE SOFTWARE. org.kohsuke access-modifier-checker - 1.7 + ${access-modifier-checker.version} com.cloudbees -- GitLab From f4d5c764212df6e287e4db69c6c5b9e65207d4ad Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 22 Jul 2017 13:59:20 -0400 Subject: [PATCH 0086/1763] [JENKINS-45737] - User mapping should be stored in a per-Jenkins field and getAll should be called just once per session unless we reload (#2928) [JENKINS-45737] - User mapping should be stored in a per-Jenkins field and getAll should be called just once per session unless we reload --- .../main/java/hudson/init/InitMilestone.java | 2 +- core/src/main/java/hudson/model/User.java | 101 ++++++++++-------- .../cli/ReloadConfigurationCommandTest.java | 7 +- .../hudson/model/MyViewsPropertyTest.java | 26 +++-- .../java/hudson/model/UserRestartTest.java | 61 +++++++++++ test/src/test/java/hudson/model/UserTest.java | 86 ++++++++------- .../model/JenkinsReloadConfigurationTest.java | 23 +--- 7 files changed, 198 insertions(+), 108 deletions(-) create mode 100644 test/src/test/java/hudson/model/UserRestartTest.java diff --git a/core/src/main/java/hudson/init/InitMilestone.java b/core/src/main/java/hudson/init/InitMilestone.java index 3d5412e0bf..b6bd3a528f 100644 --- a/core/src/main/java/hudson/init/InitMilestone.java +++ b/core/src/main/java/hudson/init/InitMilestone.java @@ -82,7 +82,7 @@ public enum InitMilestone implements Milestone { * By this milestone, all programmatically constructed extension point implementations * should be added. */ - EXTENSIONS_AUGMENTED("Augmented all extensions"), + EXTENSIONS_AUGMENTED("Augmented all extensions"), // TODO nothing attains() this so when does it actually happen? /** * By this milestone, all jobs and their build records are loaded from disk. diff --git a/core/src/main/java/hudson/model/User.java b/core/src/main/java/hudson/model/User.java index 0ebd2342e9..845d769862 100644 --- a/core/src/main/java/hudson/model/User.java +++ b/core/src/main/java/hudson/model/User.java @@ -34,6 +34,8 @@ import hudson.ExtensionPoint; import hudson.FeedAdapter; import hudson.Util; import hudson.XmlFile; +import hudson.init.InitMilestone; +import hudson.init.Initializer; import hudson.model.Descriptor.FormException; import hudson.model.listeners.SaveableListener; import hudson.security.ACL; @@ -427,7 +429,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr byNameLock.readLock().lock(); User u; try { - u = byName.get(idkey); + u = AllUsers.byName().get(idkey); } finally { byNameLock.readLock().unlock(); } @@ -465,7 +467,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr User prev; byNameLock.readLock().lock(); try { - prev = byName.putIfAbsent(idkey, u = tmp); + prev = AllUsers.byName().putIfAbsent(idkey, u = tmp); } finally { byNameLock.readLock().unlock(); } @@ -535,36 +537,15 @@ public class User extends AbstractModelObject implements AccessControlled, Descr return getOrCreate(id, id, create); } - private static volatile long lastScanned; - /** * Gets all the users. */ public static @Nonnull Collection getAll() { final IdStrategy strategy = idStrategy(); - if(System.currentTimeMillis() -lastScanned>10000) { - // occasionally scan the file system to check new users - // whether we should do this only once at start up or not is debatable. - // set this right away to avoid another thread from doing the same thing while we do this. - // having two threads doing the work won't cause race condition, but it's waste of time. - lastScanned = System.currentTimeMillis(); - - File[] subdirs = getRootDir().listFiles((FileFilter)DirectoryFileFilter.INSTANCE); - if(subdirs==null) return Collections.emptyList(); // shall never happen - - for (File subdir : subdirs) - if(new File(subdir,"config.xml").exists()) { - String name = strategy.idFromFilename(subdir.getName()); - User.getOrCreate(name, name, true); - } - - lastScanned = System.currentTimeMillis(); - } - byNameLock.readLock().lock(); ArrayList r; try { - r = new ArrayList(byName.values()); + r = new ArrayList(AllUsers.byName().values()); } finally { byNameLock.readLock().unlock(); } @@ -578,27 +559,32 @@ public class User extends AbstractModelObject implements AccessControlled, Descr } /** - * Reloads the configuration from disk. + * To be called from {@link Jenkins#reload} only. */ + @Restricted(NoExternalUse.class) public static void reload() { byNameLock.readLock().lock(); try { - for (User u : byName.values()) { - u.load(); - } + AllUsers.byName().clear(); } finally { byNameLock.readLock().unlock(); - UserDetailsCache.get().invalidateAll(); } + UserDetailsCache.get().invalidateAll(); + AllUsers.scanAll(); } /** - * Stop gap hack. Don't use it. To be removed in the trunk. + * @deprecated Used to be called by test harnesses; now ignored in that case. */ + @Deprecated public static void clear() { + if (ExtensionList.lookup(AllUsers.class).isEmpty()) { + // Historically this was called by JenkinsRule prior to startup. Ignore! + return; + } byNameLock.writeLock().lock(); try { - byName.clear(); + AllUsers.byName().clear(); } finally { byNameLock.writeLock().unlock(); } @@ -612,6 +598,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr final IdStrategy strategy = idStrategy(); byNameLock.writeLock().lock(); try { + ConcurrentMap byName = AllUsers.byName(); for (Map.Entry e : byName.entrySet()) { String idkey = strategy.keyFor(e.getValue().id); if (!idkey.equals(e.getKey())) { @@ -758,7 +745,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr final IdStrategy strategy = idStrategy(); byNameLock.readLock().lock(); try { - byName.remove(strategy.keyFor(id)); + AllUsers.byName().remove(strategy.keyFor(id)); } finally { byNameLock.readLock().unlock(); } @@ -865,16 +852,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr } /** - * Keyed by {@link User#id}. This map is used to ensure - * singleton-per-id semantics of {@link User} objects. - * - * The key needs to be generated by {@link IdStrategy#keyFor(String)}. - */ - @GuardedBy("byNameLock") - private static final ConcurrentMap byName = new ConcurrentHashMap(); - - /** - * This lock is used to guard access to the {@link #byName} map. Use + * This lock is used to guard access to the {@link AllUsers#byName} map. Use * {@link java.util.concurrent.locks.ReadWriteLock#readLock()} for normal access and * {@link java.util.concurrent.locks.ReadWriteLock#writeLock()} for {@link #rekey()} or any other operation * that requires operating on the map as a whole. @@ -1013,6 +991,45 @@ public class User extends AbstractModelObject implements AccessControlled, Descr return res; } + /** Per-{@link Jenkins} holder of all known {@link User}s. */ + @Extension + @Restricted(NoExternalUse.class) + public static final class AllUsers { + + @Initializer(after = InitMilestone.JOB_LOADED) // so Jenkins.loadConfig has been called + public static void scanAll() { + IdStrategy strategy = idStrategy(); + File[] subdirs = getRootDir().listFiles((FileFilter) DirectoryFileFilter.INSTANCE); + if (subdirs != null) { + for (File subdir : subdirs) { + if (new File(subdir, "config.xml").exists()) { + String name = strategy.idFromFilename(subdir.getName()); + getOrCreate(name, /* calls load(), probably clobbering this anyway */name, true); + } + } + } + } + + @GuardedBy("User.byNameLock") + private final ConcurrentMap byName = new ConcurrentHashMap(); + + /** + * Keyed by {@link User#id}. This map is used to ensure + * singleton-per-id semantics of {@link User} objects. + * + * The key needs to be generated by {@link IdStrategy#keyFor(String)}. + */ + @GuardedBy("User.byNameLock") + static ConcurrentMap byName() { + ExtensionList instances = ExtensionList.lookup(AllUsers.class); + if (instances.size() != 1) { + throw new IllegalStateException(); + } + return instances.get(0).byName; + } + + } + public static abstract class CanonicalIdResolver extends AbstractDescribableImpl implements ExtensionPoint, Comparable { /** diff --git a/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java b/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java index 092fd6ee50..1f4094dfdf 100644 --- a/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java +++ b/test/src/test/java/hudson/cli/ReloadConfigurationCommandTest.java @@ -107,6 +107,7 @@ public class ReloadConfigurationCommandTest { @Test public void reloadUserConfig() throws Exception { + { User user = User.get("some_user", true, null); user.setFullName("oldName"); user.save(); @@ -114,10 +115,12 @@ public class ReloadConfigurationCommandTest { replace("users/some_user/config.xml", "oldName", "newName"); assertThat(user.getFullName(), equalTo("oldName")); - + } reloadJenkinsConfigurationViaCliAndWait(); - + { + User user = User.getById("some_user", false); assertThat(user.getFullName(), equalTo("newName")); + } } @Test diff --git a/test/src/test/java/hudson/model/MyViewsPropertyTest.java b/test/src/test/java/hudson/model/MyViewsPropertyTest.java index 7e5f4cfc97..84d798aa67 100644 --- a/test/src/test/java/hudson/model/MyViewsPropertyTest.java +++ b/test/src/test/java/hudson/model/MyViewsPropertyTest.java @@ -53,7 +53,8 @@ public class MyViewsPropertyTest { property.readResolve(); assertNotNull("Property should contain " + AllView.DEFAULT_VIEW_NAME + " by default.", property.getView(AllView.DEFAULT_VIEW_NAME)); } - + + /* TODO unclear what exactly this is purporting to assert @Test public void testSave() throws IOException { User user = User.get("User"); @@ -75,6 +76,7 @@ public class MyViewsPropertyTest { property = User.get("User").getProperty(property.getClass()); assertEquals("Property should have primary view " + view.name + " instead of " + property.getPrimaryViewName(), view.name, property.getPrimaryViewName()); } + */ @Test public void testGetViews() throws IOException { @@ -179,7 +181,8 @@ public class MyViewsPropertyTest { } @Test - public void testAddView() throws IOException { + public void testAddView() throws Exception { + { User user = User.get("User"); MyViewsProperty property = new MyViewsProperty(AllView.DEFAULT_VIEW_NAME); property.readResolve(); @@ -188,14 +191,18 @@ public class MyViewsPropertyTest { View view = new ListView("foo", property); property.addView(view); assertTrue("Property should contain view " + view.name, property.getViews().contains(view)); - User.reload(); - user = User.get("User"); - property = user.getProperty(property.getClass()); - assertTrue("Property should save changes.", property.getViews().contains(property.getView(view.name))); + } + rule.jenkins.reload(); + { + User user = User.get("User"); + MyViewsProperty property = user.getProperty(MyViewsProperty.class); + assertTrue("Property should save changes.", property.getViews().contains(property.getView("foo"))); + } } @Test public void testDoCreateView() throws Exception { + { User user = User.get("User"); MyViewsProperty property = new MyViewsProperty(AllView.DEFAULT_VIEW_NAME); property.readResolve(); @@ -206,9 +213,12 @@ public class MyViewsPropertyTest { form.getRadioButtonsByName("mode").get(0).setChecked(true); rule.submit(form); assertNotNull("Property should contain view foo", property.getView("foo")); - User.reload(); - property = User.get("User").getProperty(property.getClass()); + } + rule.jenkins.reload(); + { + MyViewsProperty property = User.get("User").getProperty(MyViewsProperty.class); assertNotNull("Property should save changes", property.getView("foo")); + } } @Test diff --git a/test/src/test/java/hudson/model/UserRestartTest.java b/test/src/test/java/hudson/model/UserRestartTest.java new file mode 100644 index 0000000000..43fbbc80ec --- /dev/null +++ b/test/src/test/java/hudson/model/UserRestartTest.java @@ -0,0 +1,61 @@ +/* + * The MIT License + * + * Copyright 2017 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION 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.Mailer; +import org.junit.Test; +import static org.junit.Assert.*; +import org.junit.Rule; +import org.junit.runners.model.Statement; +import org.jvnet.hudson.test.RestartableJenkinsRule; + +public class UserRestartTest { + + @Rule + public RestartableJenkinsRule rr = new RestartableJenkinsRule(); + + @Test public void persistedUsers() throws Exception { + rr.addStep(new Statement() { + @Override + public void evaluate() throws Throwable { + User bob = User.getById("bob", true); + bob.setFullName("Bob"); + bob.addProperty(new Mailer.UserProperty("bob@nowhere.net")); + } + }); + rr.addStep(new Statement() { + @Override + public void evaluate() throws Throwable { + User bob = User.getById("bob", false); + assertNotNull(bob); + assertEquals("Bob", bob.getFullName()); + Mailer.UserProperty email = bob.getProperty(Mailer.UserProperty.class); + assertNotNull(email); + assertEquals("bob@nowhere.net", email.getAddress()); + } + }); + } + +} diff --git a/test/src/test/java/hudson/model/UserTest.java b/test/src/test/java/hudson/model/UserTest.java index f87238de07..ee462096a0 100644 --- a/test/src/test/java/hudson/model/UserTest.java +++ b/test/src/test/java/hudson/model/UserTest.java @@ -24,7 +24,6 @@ */ package hudson.model; -import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; import com.gargoylesoftware.htmlunit.WebAssert; import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlPage; @@ -60,7 +59,6 @@ import org.acegisecurity.userdetails.UsernameNotFoundException; import static org.junit.Assert.*; import static org.junit.Assume.*; -import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.FakeChangeLogSCM; @@ -164,17 +162,21 @@ public class UserTest { } @Test - public void testGetUser() { + public void testGetUser() throws Exception { + { User user = User.get("John Smith"); User user2 = User.get("John Smith2"); user2.setFullName("John Smith"); assertNotSame("Users should not have the same id.", user.getId(), user2.getId()); - User.clear(); + } + j.jenkins.reload(); + { User user3 = User.get("John Smith"); user3.setFullName("Alice Smith"); - assertEquals("Users should not have the same id.", user.getId(), user3.getId()); + assertEquals("What was this asserting exactly?", "John Smith", user3.getId()); User user4 = User.get("Marie",false, Collections.EMPTY_MAP); assertNull("User should not be created because Marie does not exists.", user4); + } } @Test @@ -243,15 +245,19 @@ public class UserTest { } @Test - public void testAddAndGetProperty() throws IOException { + public void testAddAndGetProperty() throws Exception { + { User user = User.get("John Smith"); UserProperty prop = new SomeUserProperty(); user.addProperty(prop); assertNotNull("User should have SomeUserProperty property.", user.getProperty(SomeUserProperty.class)); assertEquals("UserProperty1 should be assigned to its descriptor", prop, user.getProperties().get(prop.getDescriptor())); assertTrue("User should should contain SomeUserProperty.", user.getAllProperties().contains(prop)); - User.reload(); - assertNotNull("User should have SomeUserProperty property.", user.getProperty(SomeUserProperty.class)); + } + j.jenkins.reload(); + { + assertNotNull("User should have SomeUserProperty property.", User.getById("John Smith", false).getProperty(SomeUserProperty.class)); + } } @Test @@ -283,27 +289,20 @@ public class UserTest { } @Test - public void testReload() throws IOException{ + public void testReload() throws Exception { + { User user = User.get("John Smith", true, Collections.emptyMap()); user.save(); String config = user.getConfigFile().asString(); config = config.replace("John Smith", "Alice Smith"); PrintStream st = new PrintStream(user.getConfigFile().getFile()); st.print(config); - User.clear(); - assertEquals("User should have full name John Smith.", "John Smith", user.getFullName()); - User.reload(); - user = User.get(user.getId(), false, Collections.emptyMap()); + } + j.jenkins.reload(); + { + User user = User.get("John Smith", false, Collections.emptyMap()); assertEquals("User should have full name Alice Smith.", "Alice Smith", user.getFullName()); - } - - @Test - public void testClear() { - User user = User.get("John Smith", true, Collections.emptyMap()); - assertNotNull("User should not be null.", user); - user.clear(); - user = User.get("John Smith", false, Collections.emptyMap()); - assertNull("User should be null", user); + } } @Test @@ -333,34 +332,44 @@ public class UserTest { } @Test - public void testSave() throws IOException { + public void testSave() throws Exception { + { User user = User.get("John Smith", true, Collections.emptyMap()); - User.clear(); - User.reload(); - user = User.get("John Smith", false, Collections.emptyMap()); + } + j.jenkins.reload(); + { + User user = User.get("John Smith", false, Collections.emptyMap()); assertNull("User should be null.", user); user = User.get("John Smithl", true, Collections.emptyMap()); user.addProperty(new SomeUserProperty()); user.save(); - User.clear(); - User.reload(); - user = User.get("John Smithl", false, Collections.emptyMap()); + } + j.jenkins.reload(); + { + User user = User.get("John Smithl", false, Collections.emptyMap()); assertNotNull("User should not be null.", user); assertNotNull("User should be saved with all changes.", user.getProperty(SomeUserProperty.class)); + } } @Issue("JENKINS-16332") @Test public void unrecoverableFullName() throws Throwable { + String id; + { User u = User.get("John Smith "); assertEquals("jsmith@nowhere.net", MailAddressResolver.resolve(u)); - String id = u.getId(); - User.clear(); // simulate Jenkins restart - u = User.get(id); + id = u.getId(); + } + j.jenkins.reload(); + { + User u = User.get(id); assertEquals("jsmith@nowhere.net", MailAddressResolver.resolve(u)); + } } @Test - public void testDelete() throws IOException { + public void testDelete() throws Exception { + { User user = User.get("John Smith", true, Collections.emptyMap()); user.save(); user.delete(); @@ -368,15 +377,18 @@ public class UserTest { assertFalse("User should be deleted from memory.", User.getAll().contains(user)); user = User.get("John Smith", false, Collections.emptyMap()); assertNull("User should be deleted from memory.", user); - User.reload(); + } + j.jenkins.reload(); + { boolean contained = false; for(User u: User.getAll()){ - if(u.getId().equals(user.getId())){ + if(u.getId().equals("John Smith")){ contained = true; break; } } assertFalse("User should not be loaded.", contained); + } } @Test @@ -414,6 +426,7 @@ public class UserTest { } + /* TODO cannot follow what this is purporting to test @Test public void testDoDoDelete() throws Exception { GlobalMatrixAuthorizationStrategy auth = new GlobalMatrixAuthorizationStrategy(); @@ -457,9 +470,8 @@ public class UserTest { } assertTrue("User should not delete himself from memory.", User.getAll().contains(user)); assertTrue("User should not delete his persistent data.", user.getConfigFile().exists()); - User.reload(); - assertNotNull("Deleted user should be loaded.",User.get(user.getId(),false, Collections.EMPTY_MAP)); } + */ @Test public void testHasPermission() throws IOException { diff --git a/test/src/test/java/jenkins/model/JenkinsReloadConfigurationTest.java b/test/src/test/java/jenkins/model/JenkinsReloadConfigurationTest.java index 0009b8f5b3..89016dae70 100644 --- a/test/src/test/java/jenkins/model/JenkinsReloadConfigurationTest.java +++ b/test/src/test/java/jenkins/model/JenkinsReloadConfigurationTest.java @@ -54,23 +54,9 @@ public class JenkinsReloadConfigurationTest { j.jenkins.reload(); } - @Test - public void reloadUserConfig() throws Exception { - User user = User.get("some_user", true, null); - user.setFullName("oldName"); - user.save(); - - replace("users/some_user/config.xml", "oldName", "newName"); - - assertEquals("oldName", user.getFullName()); - - User.reload(); - - assertEquals("newName", user.getFullName()); - } - @Test public void reloadUserConfigUsingGlobalReload() throws Exception { + { User user = User.get("some_user", true, null); user.setFullName("oldName"); user.save(); @@ -78,10 +64,11 @@ public class JenkinsReloadConfigurationTest { replace("users/some_user/config.xml", "oldName", "newName"); assertEquals("oldName", user.getFullName()); - + } j.jenkins.reload(); - - assertEquals("newName", user.getFullName()); + { + assertEquals("newName", User.getById("some_user", false).getFullName()); + } } @Test -- GitLab From 354f3802430bf114869796279305177a0091aa70 Mon Sep 17 00:00:00 2001 From: Kevin Formsma Date: Sat, 22 Jul 2017 14:03:35 -0400 Subject: [PATCH 0087/1763] [JENKINS-45519] Fix keepUndefinedParameters option for suppressing warnings (#2939) * Update ParametersAction.java Pull request 2687 added a 'false' setting for this flag to prevent warning messages from being logged, but the logic doesn't match the message or the documentation. This updates the check, so that the warning message is correctly suppressed if `hudson.model.ParametersAction.keepUndefinedParameters` is set to false. * Updated check to use optBoolean --- core/src/main/java/hudson/model/ParametersAction.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/model/ParametersAction.java b/core/src/main/java/hudson/model/ParametersAction.java index fa2ed5b013..6f7ecca9f8 100644 --- a/core/src/main/java/hudson/model/ParametersAction.java +++ b/core/src/main/java/hudson/model/ParametersAction.java @@ -316,8 +316,8 @@ public class ParametersAction implements RunAction2, Iterable, Q return parameters; } - String shouldKeepFlag = SystemProperties.getString(KEEP_UNDEFINED_PARAMETERS_SYSTEM_PROPERTY_NAME); - if ("true".equalsIgnoreCase(shouldKeepFlag)) { + Boolean shouldKeepFlag = SystemProperties.optBoolean(KEEP_UNDEFINED_PARAMETERS_SYSTEM_PROPERTY_NAME); + if (shouldKeepFlag != null && shouldKeepFlag.booleanValue()) { return parameters; } @@ -326,7 +326,7 @@ public class ParametersAction implements RunAction2, Iterable, Q for (ParameterValue v : this.parameters) { if (this.parameterDefinitionNames.contains(v.getName()) || isSafeParameter(v.getName())) { filteredParameters.add(v); - } else if ("false".equalsIgnoreCase(shouldKeepFlag)) { + } else if (shouldKeepFlag == null) { LOGGER.log(Level.WARNING, "Skipped parameter `{0}` as it is undefined on `{1}`. Set `-D{2}=true` to allow " + "undefined parameters to be injected as environment variables or `-D{3}=[comma-separated list]` to whitelist specific parameter names, " + "even though it represents a security breach or `-D{2}=false` to no longer show this message.", -- GitLab From 88e540cf9dbb6687224d32463f454943fc062fed Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sun, 23 Jul 2017 20:57:12 -0700 Subject: [PATCH 0088/1763] [maven-release-plugin] prepare release jenkins-2.71 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 0a8ec5658a..6c4b1b047c 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.71-SNAPSHOT + 2.71 cli diff --git a/core/pom.xml b/core/pom.xml index db4811997b..216b4ffef9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.71-SNAPSHOT + 2.71 jenkins-core diff --git a/pom.xml b/pom.xml index 73c3aaca96..1b6c43ac85 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.71-SNAPSHOT + 2.71 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.71 diff --git a/test/pom.xml b/test/pom.xml index 2edc52e101..ec05d52b63 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.71-SNAPSHOT + 2.71 test diff --git a/war/pom.xml b/war/pom.xml index a72e2c4bb1..0922838f28 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.71-SNAPSHOT + 2.71 jenkins-war -- GitLab From 85d6a780f61a0aa3c3b97f718f6d050f17602773 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sun, 23 Jul 2017 20:57:12 -0700 Subject: [PATCH 0089/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 6c4b1b047c..425689c1d8 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.71 + 2.72-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 216b4ffef9..dc3231db45 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.71 + 2.72-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index 1b6c43ac85..0d5a01206f 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.71 + 2.72-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.71 + HEAD diff --git a/test/pom.xml b/test/pom.xml index ec05d52b63..8f62c5547e 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.71 + 2.72-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 0922838f28..fd146f2cf3 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.71 + 2.72-SNAPSHOT jenkins-war -- GitLab From e97ac1ba36e064907e58dfc9a77f9f0f44cdd76b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jochen=20F=C3=BCrbacher?= Date: Wed, 26 Jul 2017 10:17:15 +0200 Subject: [PATCH 0090/1763] Fixed typo in German translation. --- core/src/main/resources/jenkins/slaves/Messages_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/jenkins/slaves/Messages_de.properties b/core/src/main/resources/jenkins/slaves/Messages_de.properties index f101fba225..7f40698e9b 100644 --- a/core/src/main/resources/jenkins/slaves/Messages_de.properties +++ b/core/src/main/resources/jenkins/slaves/Messages_de.properties @@ -24,4 +24,4 @@ JnlpSlaveAgentProtocol4.displayName=Java-Web-Start-Agentenprotokoll Version 4 (TLS-Verschl\u00FCsselung) JnlpSlaveAgentProtocol2.displayName=Java-Web-Start-Agentenprotokoll Version 2 (unverschl\u00FCsselt) JnlpSlaveAgentProtocol.displayName=Java-Web-Start-Agentenprotokoll Version 1 (unverschl\u00FCsselt) -JnlpSlaveAgentProtocol3.displayName=Java-Web-Start-Agentenprotokoll Version (einfache Verschl\u00FCsselung) +JnlpSlaveAgentProtocol3.displayName=Java-Web-Start-Agentenprotokoll Version 3 (einfache Verschl\u00FCsselung) -- GitLab From 2d65333658ccc558941cbce438e08a1c005820b8 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 27 Jul 2017 18:16:03 -0400 Subject: [PATCH 0091/1763] Avoid calling Task.getFullDisplayName unless and until we need to. --- core/src/main/java/hudson/model/Queue.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index a5ec695c71..5938360ed8 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -1540,7 +1540,7 @@ public class Queue extends ResourceController implements Saveable { continue; } - String taskDisplayName = p.task.getFullDisplayName(); + String taskDisplayName = LOGGER.isLoggable(Level.FINEST) ? p.task.getFullDisplayName() : null; if (p.task instanceof FlyweightTask) { Runnable r = makeFlyWeightTaskBuildable(new BuildableItem(p)); @@ -1617,7 +1617,7 @@ public class Queue extends ResourceController implements Saveable { */ private @CheckForNull Runnable makeBuildable(final BuildableItem p) { if (p.task instanceof FlyweightTask) { - String taskDisplayName = p.task.getFullDisplayName(); + String taskDisplayName = LOGGER.isLoggable(Level.FINEST) ? p.task.getFullDisplayName() : null; if (!isBlockedByShutdown(p.task)) { Runnable runnable = makeFlyWeightTaskBuildable(p); @@ -1665,7 +1665,8 @@ public class Queue extends ResourceController implements Saveable { hash.addAll(hashSource); Label lbl = p.getAssignedLabel(); - for (Node n : hash.list(p.task.getFullDisplayName())) { + String fullDisplayName = p.task.getFullDisplayName(); + for (Node n : hash.list(fullDisplayName)) { final Computer c = n.toComputer(); if (c == null || c.isOffline()) { continue; @@ -1677,7 +1678,7 @@ public class Queue extends ResourceController implements Saveable { continue; } - LOGGER.log(Level.FINEST, "Creating flyweight task {0} for computer {1}", new Object[]{p.task.getFullDisplayName(), c.getName()}); + LOGGER.log(Level.FINEST, "Creating flyweight task {0} for computer {1}", new Object[]{fullDisplayName, c.getName()}); return new Runnable() { @Override public void run() { c.startFlyWeightTask(new WorkUnitContext(p).createWorkUnit(p.task)); -- GitLab From 8d7f9b5ee0c1875d8664c34b1a23adb0fd91894e Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Fri, 28 Jul 2017 23:36:36 +0200 Subject: [PATCH 0092/1763] [JENKINS-38185] Always follow redirects for DownloadService --- .../main/java/hudson/model/DownloadService.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/model/DownloadService.java b/core/src/main/java/hudson/model/DownloadService.java index ad26b130ae..6c28c80d0f 100644 --- a/core/src/main/java/hudson/model/DownloadService.java +++ b/core/src/main/java/hudson/model/DownloadService.java @@ -40,7 +40,9 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; +import java.net.HttpURLConnection; import java.net.URL; +import java.net.URLConnection; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -169,7 +171,12 @@ public class DownloadService extends PageDecorator { */ @Restricted(NoExternalUse.class) public static String loadJSON(URL src) throws IOException { - try (InputStream is = ProxyConfiguration.open(src).getInputStream()) { + URLConnection con = ProxyConfiguration.open(src); + if (con instanceof HttpURLConnection) { + // prevent problems from misbehaving plugins disabling redirects by default + ((HttpURLConnection) con).setInstanceFollowRedirects(true); + } + try (InputStream is = con.getInputStream()) { String jsonp = IOUtils.toString(is, "UTF-8"); int start = jsonp.indexOf('{'); int end = jsonp.lastIndexOf('}'); @@ -189,7 +196,12 @@ public class DownloadService extends PageDecorator { */ @Restricted(NoExternalUse.class) public static String loadJSONHTML(URL src) throws IOException { - try (InputStream is = ProxyConfiguration.open(src).getInputStream()) { + URLConnection con = ProxyConfiguration.open(src); + if (con instanceof HttpURLConnection) { + // prevent problems from misbehaving plugins disabling redirects by default + ((HttpURLConnection) con).setInstanceFollowRedirects(true); + } + try (InputStream is = con.getInputStream()) { String jsonp = IOUtils.toString(is, "UTF-8"); String preamble = "window.parent.postMessage(JSON.stringify("; int start = jsonp.indexOf(preamble); -- GitLab From 9dc2cdbb4892ddfb1579658fc88b4018a1ad7d8a Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 29 Jul 2017 21:32:16 +0300 Subject: [PATCH 0093/1763] [JENKINS-44112] - Enable WorkDir in JNLPLauncher (#2945) * [JENKINS-44112] - Enable Work Directories by defaul in new agents with JNLP launcher * [JENKINS-44112] - Add test for the legacy data migration * [JENKINS-44112] - Add test for API calls * [JENKINS-44112] - Apply new APIs within core and tests * [JENKINS-44112] - Cleanup tests * [JENKINS-44112] - Cleanup API of JNLPLauncher * [JENKINS-44112] - Address the leftover code review comments --- core/src/main/java/hudson/model/Slave.java | 5 +- .../main/java/hudson/slaves/JNLPLauncher.java | 72 +++++- .../java/hudson/util/ArgumentListBuilder.java | 11 + .../slaves/RemotingWorkDirSettings.java | 229 ++++++++++++++++++ .../hudson/slaves/JNLPLauncher/config.jelly | 1 + .../hudson/slaves/JNLPLauncher/main.jelly | 4 +- .../SlaveComputer/slave-agent.jnlp.jelly | 16 ++ .../RemotingWorkDirSettings/config.jelly | 39 +++ .../help-disabled.html | 4 + .../help-failIfWorkDirIsMissing.html | 4 + .../help-internalDir.html | 4 + .../help-workDirPath.html | 4 + .../bugs/JnlpAccessWithSecuredHudsonTest.java | 2 +- .../java/hudson/slaves/JNLPLauncherTest.java | 62 ++++- .../hudson/tools/InstallerTranslatorTest.java | 2 +- .../jenkins/security/Security218Test.java | 2 +- .../testNoWorkDirMigration/config.xml | 37 +++ .../nodes/Foo/config.xml | 14 ++ 18 files changed, 495 insertions(+), 17 deletions(-) create mode 100644 core/src/main/java/jenkins/slaves/RemotingWorkDirSettings.java create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/config.jelly create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-disabled.html create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-failIfWorkDirIsMissing.html create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-internalDir.html create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-workDirPath.html create mode 100644 test/src/test/resources/hudson/slaves/JNLPLauncherTest/testNoWorkDirMigration/config.xml create mode 100644 test/src/test/resources/hudson/slaves/JNLPLauncherTest/testNoWorkDirMigration/nodes/Foo/config.xml diff --git a/core/src/main/java/hudson/model/Slave.java b/core/src/main/java/hudson/model/Slave.java index 7d3721fbbd..4224f19cfc 100644 --- a/core/src/main/java/hudson/model/Slave.java +++ b/core/src/main/java/hudson/model/Slave.java @@ -225,7 +225,8 @@ public abstract class Slave extends Node implements Serializable { } public ComputerLauncher getLauncher() { - return launcher == null ? new JNLPLauncher() : launcher; + // Default launcher does not use Work Directory + return launcher == null ? new JNLPLauncher(false) : launcher; } public void setLauncher(ComputerLauncher launcher) { @@ -504,7 +505,7 @@ public abstract class Slave extends Node implements Serializable { // convert the old format to the new one if (launcher == null) { launcher = (agentCommand == null || agentCommand.trim().length() == 0) - ? new JNLPLauncher() + ? new JNLPLauncher(false) : new CommandLauncher(agentCommand); } if(nodeProperties==null) diff --git a/core/src/main/java/hudson/slaves/JNLPLauncher.java b/core/src/main/java/hudson/slaves/JNLPLauncher.java index c83382f796..18c97e55a5 100644 --- a/core/src/main/java/hudson/slaves/JNLPLauncher.java +++ b/core/src/main/java/hudson/slaves/JNLPLauncher.java @@ -25,13 +25,17 @@ package hudson.slaves; import hudson.Extension; import hudson.Util; +import hudson.model.Computer; import hudson.model.Descriptor; import hudson.model.DescriptorVisibilityFilter; import hudson.model.TaskListener; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import jenkins.model.Jenkins; +import jenkins.slaves.RemotingWorkDirSettings; import org.jenkinsci.Symbol; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -52,24 +56,72 @@ public class JNLPLauncher extends ComputerLauncher { * * @since 1.250 */ + @CheckForNull public final String tunnel; /** * Additional JVM arguments. Can be null. * @since 1.297 */ + @CheckForNull public final String vmargs; + @Nonnull + private RemotingWorkDirSettings workDirSettings; + @DataBoundConstructor - public JNLPLauncher(String tunnel, String vmargs) { + public JNLPLauncher(@CheckForNull String tunnel, @CheckForNull String vmargs, @Nonnull RemotingWorkDirSettings workDirSettings) { this.tunnel = Util.fixEmptyAndTrim(tunnel); this.vmargs = Util.fixEmptyAndTrim(vmargs); + this.workDirSettings = workDirSettings; + } + + @Deprecated + public JNLPLauncher(String tunnel, String vmargs) { + // TODO: Enable workDir by default in API? Otherwise classes inheriting from JNLPLauncher + // will need to enable the feature by default as well. + // https://github.com/search?q=org%3Ajenkinsci+%22extends+JNLPLauncher%22&type=Code + this(tunnel, vmargs, RemotingWorkDirSettings.getDisabledDefaults()); } + /** + * @deprecated This Launcher does not enable the work directory. + * It is recommended to use {@link #JNLPLauncher(boolean)} + */ + @Deprecated public JNLPLauncher() { - this(null,null); + this(false); + } + + /** + * Constructor with default options. + * + * @param enableWorkDir If {@code true}, the work directory will be enabled with default settings. + */ + public JNLPLauncher(boolean enableWorkDir) { + this(null, null, enableWorkDir + ? RemotingWorkDirSettings.getEnabledDefaults() + : RemotingWorkDirSettings.getDisabledDefaults()); + } + + protected Object readResolve() { + if (workDirSettings == null) { + // For the migrated code agents are always disabled + workDirSettings = RemotingWorkDirSettings.getDisabledDefaults(); + } + return this; } + /** + * Returns work directory settings. + * + * @since TODO + */ + @Nonnull + public RemotingWorkDirSettings getWorkDirSettings() { + return workDirSettings; + } + @Override public boolean isLaunchSupported() { return false; @@ -86,6 +138,22 @@ public class JNLPLauncher extends ComputerLauncher { */ public static /*almost final*/ Descriptor DESCRIPTOR; + /** + * Gets work directory options as a String. + * + * In public API {@code getWorkDirSettings().toCommandLineArgs(computer)} should be used instead + * @param computer Computer + * @return Command line options for launching with the WorkDir + */ + @Nonnull + @Restricted(NoExternalUse.class) + public String getWorkDirOptions(@Nonnull Computer computer) { + if(!(computer instanceof SlaveComputer)) { + return ""; + } + return workDirSettings.toCommandLineString((SlaveComputer)computer); + } + @Extension @Symbol("jnlp") public static class DescriptorImpl extends Descriptor { public DescriptorImpl() { diff --git a/core/src/main/java/hudson/util/ArgumentListBuilder.java b/core/src/main/java/hudson/util/ArgumentListBuilder.java index 87e2683587..fb488b2471 100644 --- a/core/src/main/java/hudson/util/ArgumentListBuilder.java +++ b/core/src/main/java/hudson/util/ArgumentListBuilder.java @@ -38,6 +38,7 @@ import java.io.Serializable; import java.io.File; import java.io.IOException; import java.util.Set; +import javax.annotation.Nonnull; /** * Used to build up arguments for a process invocation. @@ -132,6 +133,16 @@ public class ArgumentListBuilder implements Serializable, Cloneable { } return this; } + + /** + * @since TODO + */ + public ArgumentListBuilder add(@Nonnull Iterable args) { + for (String arg : args) { + add(arg); + } + return this; + } /** * Decomposes the given token into multiple arguments by splitting via whitespace. diff --git a/core/src/main/java/jenkins/slaves/RemotingWorkDirSettings.java b/core/src/main/java/jenkins/slaves/RemotingWorkDirSettings.java new file mode 100644 index 0000000000..c82a040145 --- /dev/null +++ b/core/src/main/java/jenkins/slaves/RemotingWorkDirSettings.java @@ -0,0 +1,229 @@ +/* + * The MIT License + * + * Copyright (c) 2017 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION 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 jenkins.slaves; + +import hudson.Extension; +import hudson.Util; +import hudson.model.Describable; +import hudson.model.Descriptor; +import hudson.model.Slave; +import hudson.slaves.SlaveComputer; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; +import jenkins.model.Jenkins; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.DataBoundConstructor; + +/** + * Defines settings of the Remoting work directory. + * + * This class contains Remoting Work Directory settings, which can be used when starting Jenkins agents. + * See Remoting Work Dir Documentation. + * + * @author Oleg Nenashev + * @since TODO + */ +public class RemotingWorkDirSettings implements Describable { + + private static final String DEFAULT_INTERNAL_DIR = "remoting"; + private static final RemotingWorkDirSettings LEGACY_DEFAULT = new RemotingWorkDirSettings(true, null, DEFAULT_INTERNAL_DIR, false); + private static final RemotingWorkDirSettings ENABLED_DEFAULT = new RemotingWorkDirSettings(false, null, DEFAULT_INTERNAL_DIR, false); + + + private final boolean disabled; + @CheckForNull + private final String workDirPath; + @Nonnull + private final String internalDir; + private final boolean failIfWorkDirIsMissing; + + @DataBoundConstructor + public RemotingWorkDirSettings(boolean disabled, + @CheckForNull String workDirPath, @CheckForNull String internalDir, + boolean failIfWorkDirIsMissing) { + this.disabled = disabled; + this.workDirPath = Util.fixEmptyAndTrim(workDirPath); + this.failIfWorkDirIsMissing = failIfWorkDirIsMissing; + String internalDirName = Util.fixEmptyAndTrim(internalDir); + this.internalDir = internalDirName != null ? internalDirName : DEFAULT_INTERNAL_DIR; + } + + public RemotingWorkDirSettings() { + // Enabled by default + this(false, null, DEFAULT_INTERNAL_DIR, false); + } + + /** + * Check if workdir is disabled. + * + * @return {@code true} if the property is disabled. + * In such case Remoting will use the legacy mode. + */ + public boolean isDisabled() { + return disabled; + } + + /** + * Indicates that agent root directory should be used as work directory. + * + * @return {@code true} if the agent root should be a work directory. + */ + public boolean isUseAgentRootDir() { + return workDirPath == null; + } + + /** + * Check if startup should fail if the workdir is missing. + * + * @return {@code true} if Remoting should fail if the the work directory is missing instead of creating it + */ + public boolean isFailIfWorkDirIsMissing() { + return failIfWorkDirIsMissing; + } + + /** + * Gets path to the custom workdir path. + * + * @return Custom workdir path. + * If {@code null}, an agent root directory path should be used instead. + */ + @CheckForNull + public String getWorkDirPath() { + return workDirPath; + } + + @Nonnull + public String getInternalDir() { + return internalDir; + } + + @Override + public Descriptor getDescriptor() { + return Jenkins.getInstance().getDescriptor(RemotingWorkDirSettings.class); + } + + /** + * Gets list of command-line arguments for the work directory. + * @param computer Computer, for which the arguments are being created + * @return Non-modifiable list of command-line arguments + */ + public List toCommandLineArgs(@Nonnull SlaveComputer computer) { + if(disabled) { + return Collections.emptyList(); + } + + ArrayList args = new ArrayList<>(); + args.add("-workDir"); + if (workDirPath == null) { + Slave node = computer.getNode(); + if (node == null) { + // It is not possible to launch this node anyway. + return Collections.emptyList(); + } + args.add(node.getRemoteFS()); + } else { + args.add(workDirPath); + } + + if (!DEFAULT_INTERNAL_DIR.equals(internalDir)) { + args.add("-internalDir"); + args.add(internalDir);; + } + + if (failIfWorkDirIsMissing) { + args.add(" -failIfWorkDirIsMissing"); + } + + return Collections.unmodifiableList(args); + } + + /** + * Gets a command line string, which can be passed to agent start command. + * + * @param computer Computer, for which the arguments need to be constructed. + * @return Command line arguments. + * It may be empty if the working directory is disabled or + * if the Computer type is not {@link SlaveComputer}. + */ + @Nonnull + @Restricted(NoExternalUse.class) + public String toCommandLineString(@Nonnull SlaveComputer computer) { + if(disabled) { + return ""; + } + + StringBuilder bldr = new StringBuilder(); + bldr.append("-workDir \""); + if (workDirPath == null) { + Slave node = computer.getNode(); + if (node == null) { + // It is not possible to launch this node anyway. + return ""; + } + bldr.append(node.getRemoteFS()); + } else { + bldr.append(workDirPath); + } + bldr.append("\""); + + if (!DEFAULT_INTERNAL_DIR.equals(internalDir)) { + bldr.append(" -internalDir \""); + bldr.append(internalDir); + bldr.append("\""); + } + + if (failIfWorkDirIsMissing) { + bldr.append(" -failIfWorkDirIsMissing"); + } + + return bldr.toString(); + } + + @Extension + public static class DescriptorImpl extends Descriptor { + + } + + /** + * Gets default settings for the disabled work directory. + * + * @return Legacy value: disabled work directory. + */ + @Nonnull + public static RemotingWorkDirSettings getDisabledDefaults() { + return LEGACY_DEFAULT; + } + + /** + * Gets default settings of the enabled work directory. + */ + @Nonnull + public static RemotingWorkDirSettings getEnabledDefaults() { + return ENABLED_DEFAULT; + } +} diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly b/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly index b1d938a50d..85aa8aafda 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly @@ -24,6 +24,7 @@ THE SOFTWARE. + diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly index e371a9b040..e5ddc0ba46 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly @@ -57,7 +57,7 @@ THE SOFTWARE.

      ${%Or if the agent is headless:}

      -
      java${it.launcher.vmargs == null ? '' : ' ' + it.launcher.vmargs} -jar slave.jar -jnlpUrl ${h.inferHudsonURL(request)}${it.url}slave-agent.jnlp
      +
      java${it.launcher.vmargs == null ? '' : ' ' + it.launcher.vmargs} -jar slave.jar -jnlpUrl ${h.inferHudsonURL(request)}${it.url}slave-agent.jnlp ${it.launcher.getWorkDirOptions(it)}
      @@ -66,7 +66,7 @@ THE SOFTWARE. ${%Run from agent command line:}

      -
      java${it.launcher.vmargs == null ? '' : ' ' + it.launcher.vmargs} -jar slave.jar -jnlpUrl ${h.inferHudsonURL(request)}${it.url}slave-agent.jnlp -secret ${it.jnlpMac}
      +
      java${it.launcher.vmargs == null ? '' : ' ' + it.launcher.vmargs} -jar slave.jar -jnlpUrl ${h.inferHudsonURL(request)}${it.url}slave-agent.jnlp -secret ${it.jnlpMac} ${it.launcher.getWorkDirOptions(it)}
      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 07f6f25144..1f55586f1d 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 @@ -66,6 +66,22 @@ THE SOFTWARE. -tunnel ${it.launcher.tunnel} + + -workDir + + + ${it.node.remoteFS} + + + ${it.launcher.workDirSettings.workDirPath} + + + -internalDir + ${it.launcher.workDirSettings.internalDir} + + -failIfWorkDirIsMissing + + -url ${rootURL} diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/config.jelly b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/config.jelly new file mode 100644 index 0000000000..3c8fc13315 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/config.jelly @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-disabled.html b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-disabled.html new file mode 100644 index 0000000000..d35717026a --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-disabled.html @@ -0,0 +1,4 @@ +
      + Allows disabling Remoting Work Directory for the agent. + In such case the agent will be running in the legacy mode without logging enabled by default. +
      diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-failIfWorkDirIsMissing.html b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-failIfWorkDirIsMissing.html new file mode 100644 index 0000000000..fbb4c572cc --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-failIfWorkDirIsMissing.html @@ -0,0 +1,4 @@ +
      + If defined, Remoting will fail at startup if the target work directory is missing. + The option may be used to detect infrastructure issues like failed mount. +
      diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-internalDir.html b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-internalDir.html new file mode 100644 index 0000000000..39f1b29fe4 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-internalDir.html @@ -0,0 +1,4 @@ +
      + Defines a storage directory for the internal data. + This directory will be created within the Remoting working directory. +
      diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-workDirPath.html b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-workDirPath.html new file mode 100644 index 0000000000..761945eaab --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-workDirPath.html @@ -0,0 +1,4 @@ +
      + If defined, a custom Remoting work directory will be used instead of the Agent Root Directory. + This option has no environment variable resolution so far, it is recommended to use only absolute paths. +
      diff --git a/test/src/test/java/hudson/bugs/JnlpAccessWithSecuredHudsonTest.java b/test/src/test/java/hudson/bugs/JnlpAccessWithSecuredHudsonTest.java index af0c270163..5ba3d079de 100644 --- a/test/src/test/java/hudson/bugs/JnlpAccessWithSecuredHudsonTest.java +++ b/test/src/test/java/hudson/bugs/JnlpAccessWithSecuredHudsonTest.java @@ -64,7 +64,7 @@ public class JnlpAccessWithSecuredHudsonTest extends HudsonTestCase { * Creates a new slave that needs to be launched via JNLP. */ protected Slave createNewJnlpSlave(String name) throws Exception { - return new DumbSlave(name,"",System.getProperty("java.io.tmpdir")+'/'+name,"2", Mode.NORMAL, "", new JNLPLauncher(), RetentionStrategy.INSTANCE, Collections.EMPTY_LIST); + return new DumbSlave(name,"",System.getProperty("java.io.tmpdir")+'/'+name,"2", Mode.NORMAL, "", new JNLPLauncher(true), RetentionStrategy.INSTANCE, Collections.EMPTY_LIST); } @PresetData(DataSet.NO_ANONYMOUS_READACCESS) diff --git a/test/src/test/java/hudson/slaves/JNLPLauncherTest.java b/test/src/test/java/hudson/slaves/JNLPLauncherTest.java index e30f365a6e..3f44428525 100644 --- a/test/src/test/java/hudson/slaves/JNLPLauncherTest.java +++ b/test/src/test/java/hudson/slaves/JNLPLauncherTest.java @@ -51,11 +51,14 @@ import java.util.concurrent.TimeUnit; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; import java.awt.*; +import static org.hamcrest.Matchers.instanceOf; import org.junit.rules.TemporaryFolder; import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.recipes.LocalData; /** * Tests of {@link JNLPLauncher}. @@ -73,10 +76,10 @@ public class JNLPLauncherTest { public void testLaunch() throws Exception { Assume.assumeFalse("Skipping JNLPLauncherTest.testLaunch because we are running headless", GraphicsEnvironment.isHeadless()); - Computer c = addTestSlave(); + Computer c = addTestSlave(false); launchJnlpAndVerify(c, buildJnlpArgs(c)); } - + /** * Starts a JNLP agent and makes sure it successfully connects to Jenkins. */ @@ -86,7 +89,7 @@ public class JNLPLauncherTest { Assume.assumeFalse("Skipping JNLPLauncherTest.testLaunch because we are running headless", GraphicsEnvironment.isHeadless()); File workDir = tmpDir.newFolder("workDir"); - Computer c = addTestSlave(); + Computer c = addTestSlave(false); launchJnlpAndVerify(c, buildJnlpArgs(c).add("-workDir", workDir.getAbsolutePath())); assertTrue("Remoting work dir should have been created", new File(workDir, "remoting").exists()); } @@ -97,22 +100,56 @@ public class JNLPLauncherTest { */ @Test public void testHeadlessLaunch() throws Exception { - Computer c = addTestSlave(); + Computer c = addTestSlave(false); launchJnlpAndVerify(c, buildJnlpArgs(c).add("-arg","-headless")); // make sure that onOffline gets called just the right number of times assertEquals(1, ComputerListener.all().get(ListenerImpl.class).offlined); } @Test - @Issue("JENKINS-39370") + @Issue("JENKINS-44112") public void testHeadlessLaunchWithWorkDir() throws Exception { Assume.assumeFalse("Skipping JNLPLauncherTest.testLaunch because we are running headless", GraphicsEnvironment.isHeadless()); + + Computer c = addTestSlave(true); + launchJnlpAndVerify(c, buildJnlpArgs(c).add("-arg","-headless")); + assertEquals(1, ComputerListener.all().get(ListenerImpl.class).offlined); + } + + @Test + @Issue("JENKINS-39370") + public void testHeadlessLaunchWithCustomWorkDir() throws Exception { + Assume.assumeFalse("Skipping JNLPLauncherTest.testLaunch because we are running headless", GraphicsEnvironment.isHeadless()); File workDir = tmpDir.newFolder("workDir"); - Computer c = addTestSlave(); + Computer c = addTestSlave(false); launchJnlpAndVerify(c, buildJnlpArgs(c).add("-arg","-headless", "-workDir", workDir.getAbsolutePath())); assertEquals(1, ComputerListener.all().get(ListenerImpl.class).offlined); } + + @Test + @LocalData + @Issue("JENKINS-44112") + public void testNoWorkDirMigration() throws Exception { + Computer computer = j.jenkins.getComputer("Foo"); + assertThat(computer, instanceOf(SlaveComputer.class)); + + SlaveComputer c = (SlaveComputer)computer; + ComputerLauncher launcher = c.getLauncher(); + assertThat(launcher, instanceOf(JNLPLauncher.class)); + JNLPLauncher jnlpLauncher = (JNLPLauncher)launcher; + assertNotNull("Work Dir Settings should be defined", + jnlpLauncher.getWorkDirSettings()); + assertTrue("Work directory should be disabled for the migrated agent", + jnlpLauncher.getWorkDirSettings().isDisabled()); + } + + @Issue("JENKINS-44112") + public void testDefaults() throws Exception { + String errorMsg = "Work directory should be disabled for agents created via old API"; + assertTrue(errorMsg, new JNLPLauncher().getWorkDirSettings().isDisabled()); + assertTrue(errorMsg, new JNLPLauncher(null, null).getWorkDirSettings().isDisabled()); + } @TestExtension("testHeadlessLaunch") public static class ListenerImpl extends ComputerListener { @@ -132,6 +169,15 @@ public class JNLPLauncherTest { args.add("-headless","-basedir"); args.add(j.createTmpDir()); args.add("-nosecurity","-jnlp", getJnlpLink(c)); + + if (c instanceof SlaveComputer) { + SlaveComputer sc = (SlaveComputer)c; + ComputerLauncher launcher = sc.getLauncher(); + if (launcher instanceof JNLPLauncher) { + args.add(((JNLPLauncher)launcher).getWorkDirSettings().toCommandLineArgs(sc)); + } + } + return args; } @@ -178,11 +224,11 @@ public class JNLPLauncherTest { /** * Adds a JNLP {@link Slave} to the system and returns it. */ - private Computer addTestSlave() throws Exception { + private Computer addTestSlave(boolean enableWorkDir) throws Exception { List slaves = new ArrayList(j.jenkins.getNodes()); File dir = Util.createTempDir(); slaves.add(new DumbSlave("test","dummy",dir.getAbsolutePath(),"1", Mode.NORMAL, "", - new JNLPLauncher(), RetentionStrategy.INSTANCE, new ArrayList>())); + new JNLPLauncher(enableWorkDir), RetentionStrategy.INSTANCE, new ArrayList>())); j.jenkins.setNodes(slaves); Computer c = j.jenkins.getComputer("test"); assertNotNull(c); diff --git a/test/src/test/java/hudson/tools/InstallerTranslatorTest.java b/test/src/test/java/hudson/tools/InstallerTranslatorTest.java index 5319d4e406..dc0057fa00 100644 --- a/test/src/test/java/hudson/tools/InstallerTranslatorTest.java +++ b/test/src/test/java/hudson/tools/InstallerTranslatorTest.java @@ -52,7 +52,7 @@ public class InstallerTranslatorTest { @Issue("JENKINS-23517") @Test public void offlineNodeForJDK() throws Exception { - Node slave = new DumbSlave("disconnected-slave", null, "/wherever", "1", Node.Mode.NORMAL, null, new JNLPLauncher(), RetentionStrategy.NOOP, Collections.>emptyList()); + Node slave = new DumbSlave("disconnected-slave", null, "/wherever", "1", Node.Mode.NORMAL, null, new JNLPLauncher(true), RetentionStrategy.NOOP, Collections.>emptyList()); String globalDefaultLocation = "/usr/lib/jdk"; JDK jdk = new JDK("my-jdk", globalDefaultLocation, Collections.singletonList(new InstallSourceProperty(Collections.singletonList(new CommandInstaller(null, "irrelevant", "/opt/jdk"))))); r.jenkins.getJDKs().add(jdk); diff --git a/test/src/test/java/jenkins/security/Security218Test.java b/test/src/test/java/jenkins/security/Security218Test.java index 7d4facc44a..9892aebe7d 100644 --- a/test/src/test/java/jenkins/security/Security218Test.java +++ b/test/src/test/java/jenkins/security/Security218Test.java @@ -80,7 +80,7 @@ public class Security218Test implements Serializable { * @see #launchJnlpSlave(Slave) */ public DumbSlave createJnlpSlave(String name) throws Exception { - DumbSlave s = new DumbSlave(name, "", System.getProperty("java.io.tmpdir") + '/' + name, "2", Mode.NORMAL, "", new JNLPLauncher(), RetentionStrategy.INSTANCE, Collections.EMPTY_LIST); + DumbSlave s = new DumbSlave(name, "", System.getProperty("java.io.tmpdir") + '/' + name, "2", Mode.NORMAL, "", new JNLPLauncher(true), RetentionStrategy.INSTANCE, Collections.EMPTY_LIST); j.jenkins.addNode(s); return s; } diff --git a/test/src/test/resources/hudson/slaves/JNLPLauncherTest/testNoWorkDirMigration/config.xml b/test/src/test/resources/hudson/slaves/JNLPLauncherTest/testNoWorkDirMigration/config.xml new file mode 100644 index 0000000000..6e7f8d86b1 --- /dev/null +++ b/test/src/test/resources/hudson/slaves/JNLPLauncherTest/testNoWorkDirMigration/config.xml @@ -0,0 +1,37 @@ + + + + 1.0 + 2 + NORMAL + true + + + false + + ${ITEM_ROOTDIR}/workspace + ${ITEM_ROOTDIR}/builds + + + + + + 0 + + + + all + false + false + + + + all + 0 + + JNLP4-connect + + + + + \ No newline at end of file diff --git a/test/src/test/resources/hudson/slaves/JNLPLauncherTest/testNoWorkDirMigration/nodes/Foo/config.xml b/test/src/test/resources/hudson/slaves/JNLPLauncherTest/testNoWorkDirMigration/nodes/Foo/config.xml new file mode 100644 index 0000000000..27c4fe4c21 --- /dev/null +++ b/test/src/test/resources/hudson/slaves/JNLPLauncherTest/testNoWorkDirMigration/nodes/Foo/config.xml @@ -0,0 +1,14 @@ + + + Foo + + /myfs/jenkins/agent + 1 + NORMAL + + + + + + + -- GitLab From 564ca0b6d7f50c3b1164f3f1de8dad5c8c89a8cb Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sun, 30 Jul 2017 08:42:31 -0400 Subject: [PATCH 0094/1763] [JENKINS-45553] - Cache the Mac so we do not need to constantly recreate it (#2948) [JENKINS-45553] - Cache the Mac so we do not need to constantly recreate it --- .../main/java/jenkins/security/HMACConfidentialKey.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/jenkins/security/HMACConfidentialKey.java b/core/src/main/java/jenkins/security/HMACConfidentialKey.java index 71a0c2eb24..4a520cd82e 100644 --- a/core/src/main/java/jenkins/security/HMACConfidentialKey.java +++ b/core/src/main/java/jenkins/security/HMACConfidentialKey.java @@ -27,6 +27,7 @@ import java.util.Arrays; */ public class HMACConfidentialKey extends ConfidentialKey { private volatile SecretKey key; + private Mac mac; private final int length; /** @@ -61,12 +62,14 @@ public class HMACConfidentialKey extends ConfidentialKey { this(owner,shortName,Integer.MAX_VALUE); } - /** * Computes the message authentication code for the specified byte sequence. */ - public byte[] mac(byte[] message) { - return chop(createMac().doFinal(message)); + public synchronized byte[] mac(byte[] message) { + if (mac == null) { + mac = createMac(); + } + return chop(mac.doFinal(message)); } /** -- GitLab From 5f125d110eb9f65ec6bd6030466df846c4c96f34 Mon Sep 17 00:00:00 2001 From: Andrew Bayer Date: Sun, 30 Jul 2017 08:44:03 -0400 Subject: [PATCH 0095/1763] [FIXED JENKINS-20272] Don't monitor response on offline agents (#2911) * [FIXED JENKINS-20272] Don't monitor response on offline agents * Updating to only not check if channel is null. * Fix broken test. --- .../node_monitors/ResponseTimeMonitor.java | 4 +- .../ResponseTimeMonitorTest.java | 48 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 test/src/test/java/hudson/node_monitors/ResponseTimeMonitorTest.java diff --git a/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java b/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java index 652b2217fb..d7241e9eff 100644 --- a/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java @@ -23,7 +23,6 @@ */ package hudson.node_monitors; -import hudson.Util; import hudson.Extension; import hudson.model.Computer; import hudson.remoting.Callable; @@ -49,6 +48,9 @@ public class ResponseTimeMonitor extends NodeMonitor { public static final AbstractNodeMonitorDescriptor DESCRIPTOR = new AbstractAsyncNodeMonitorDescriptor() { @Override protected Callable createCallable(Computer c) { + if (c.getChannel() == null) { + return null; + } return new Step1(get(c)); } diff --git a/test/src/test/java/hudson/node_monitors/ResponseTimeMonitorTest.java b/test/src/test/java/hudson/node_monitors/ResponseTimeMonitorTest.java new file mode 100644 index 0000000000..8bd2c5640a --- /dev/null +++ b/test/src/test/java/hudson/node_monitors/ResponseTimeMonitorTest.java @@ -0,0 +1,48 @@ +package hudson.node_monitors; + +import hudson.model.User; +import hudson.slaves.DumbSlave; +import hudson.slaves.OfflineCause; +import hudson.slaves.SlaveComputer; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.JenkinsRule; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +/** + * @author Andrew Bayer + */ +public class ResponseTimeMonitorTest { + + @Rule + public JenkinsRule j = new JenkinsRule(); + + /** + * Makes sure that it doesn't try to monitor an already-offline agent. + */ + @Test + @Issue("JENKINS-20272") + public void skipOfflineAgent() throws Exception { + DumbSlave s = j.createSlave(); + SlaveComputer c = s.getComputer(); + c.connect(false).get(); // wait until it's connected + + // Try as temporarily offline first. + c.setTemporarilyOffline(true, new OfflineCause.UserCause(User.getUnknown(), "Temporarily offline")); + assertNotNull(ResponseTimeMonitor.DESCRIPTOR.monitor(c)); + + // Now try as actually disconnected. + c.setTemporarilyOffline(false, null); + j.disconnectSlave(s); + assertNull(ResponseTimeMonitor.DESCRIPTOR.monitor(c)); + + // Now reconnect and make sure we get a non-null response. + c.connect(false).get(); // wait until it's connected + + assertNotNull(ResponseTimeMonitor.DESCRIPTOR.monitor(c)); + } + +} -- GitLab From 06cbf011466d396db93ed019522e8d0b149dea54 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 31 Jul 2017 12:34:12 -0700 Subject: [PATCH 0096/1763] [maven-release-plugin] prepare release jenkins-2.72 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 425689c1d8..47ce210cb9 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.72-SNAPSHOT + 2.72 cli diff --git a/core/pom.xml b/core/pom.xml index dc3231db45..3242259039 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.72-SNAPSHOT + 2.72 jenkins-core diff --git a/pom.xml b/pom.xml index 0d5a01206f..e9dd314bd8 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.72-SNAPSHOT + 2.72 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.72 diff --git a/test/pom.xml b/test/pom.xml index 8f62c5547e..d4ab6dfd29 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.72-SNAPSHOT + 2.72 test diff --git a/war/pom.xml b/war/pom.xml index fd146f2cf3..e73822629c 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.72-SNAPSHOT + 2.72 jenkins-war -- GitLab From 45aa3324a75ed900a95d58703e7ec978114d8f54 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 31 Jul 2017 12:34:12 -0700 Subject: [PATCH 0097/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 47ce210cb9..9c52bbda98 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.72 + 2.73-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 3242259039..f3edfa0152 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.72 + 2.73-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index e9dd314bd8..299d8a9031 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.72 + 2.73-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.72 + HEAD diff --git a/test/pom.xml b/test/pom.xml index d4ab6dfd29..6c73ebfc97 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.72 + 2.73-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index e73822629c..fc91bdd6b3 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.72 + 2.73-SNAPSHOT jenkins-war -- GitLab From c8b5086f1186ac137846d9e4329970718c637191 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Mon, 31 Jul 2017 20:41:32 -0400 Subject: [PATCH 0098/1763] [JENKINS-45892] Prevent a Run from being serialized except at top level. --- core/src/main/java/hudson/model/Run.java | 38 ++++++++- .../main/java/jenkins/model/RunAction2.java | 1 + .../test/java/hudson/model/RunActionTest.java | 78 +++++++++++++++++++ 3 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 test/src/test/java/hudson/model/RunActionTest.java diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 4701bfc396..201566de60 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -774,6 +774,9 @@ public abstract class Run ,RunT extends Run"; + } return project.getFullName() + " #" + number; } @@ -1920,7 +1923,16 @@ public abstract class Run ,RunT extends Run,RunT extends Run> saving = new HashSet<>(); + + private Object writeReplace() { + synchronized (saving) { + if (saving.contains(this)) { + return this; + } else { + LOGGER.warning("JENKINS-45892: improper backreference detected in " + getDataFile()); + return new Replacer(this); + } + } + } + + /** Not {@link Serializable} for now, since we are only expecting to use this from XStream. */ + private static class Replacer { + private final String id; + Replacer(Run r) { + id = r.getExternalizableId(); + } + private Object readResolve() { + return fromExternalizableId(id); + } + } + /** * Gets the log of the build as a string. * @return Returns the log or an empty string if it has not been found diff --git a/core/src/main/java/jenkins/model/RunAction2.java b/core/src/main/java/jenkins/model/RunAction2.java index b5443bcccb..1f180e5b99 100644 --- a/core/src/main/java/jenkins/model/RunAction2.java +++ b/core/src/main/java/jenkins/model/RunAction2.java @@ -29,6 +29,7 @@ import hudson.model.Run; /** * Optional interface for {@link Action}s that add themselves to a {@link Run}. + * You may keep a {@code transient} reference to an owning build, restored in {@link #onLoad}. * @since 1.519, 1.509.3 */ public interface RunAction2 extends Action { diff --git a/test/src/test/java/hudson/model/RunActionTest.java b/test/src/test/java/hudson/model/RunActionTest.java new file mode 100644 index 0000000000..2f586b8c51 --- /dev/null +++ b/test/src/test/java/hudson/model/RunActionTest.java @@ -0,0 +1,78 @@ +/* + * The MIT License + * + * Copyright 2017 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION 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.XmlFile; +import java.io.File; +import static org.hamcrest.Matchers.*; +import static org.junit.Assert.*; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runners.model.Statement; +import org.jvnet.hudson.test.BuildWatcher; +import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.RestartableJenkinsRule; + +public class RunActionTest { + + @ClassRule + public static BuildWatcher buildWatcher = new BuildWatcher(); + + @Rule + public RestartableJenkinsRule rr = new RestartableJenkinsRule(); + + @Issue("JENKINS-45892") + @Test + public void badSerialization() { + rr.addStep(new Statement() { + @Override + public void evaluate() throws Throwable { + FreeStyleProject p = rr.j.createFreeStyleProject("p"); + FreeStyleBuild b1 = rr.j.buildAndAssertSuccess(p); + FreeStyleBuild b2 = rr.j.buildAndAssertSuccess(p); + b2.addAction(new BadAction(b1)); + b2.save(); + String text = new XmlFile(new File(b2.getRootDir(), "build.xml")).asString(); + System.out.println(text); + assertThat(text, not(containsString(""))); + } + }); + rr.addStep(new Statement() { + @Override + public void evaluate() throws Throwable { + FreeStyleProject p = rr.j.jenkins.getItemByFullName("p", FreeStyleProject.class); + assertEquals(p.getBuildByNumber(1), p.getBuildByNumber(2).getAction(BadAction.class).owner); + } + }); + } + static class BadAction extends InvisibleAction { + final Run owner; // oops, should have been transient and used RunAction2 + BadAction(Run owner) { + this.owner = owner; + } + } + +} -- GitLab From 29a9ad76a235047299c204c29122902e363ad787 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Tue, 1 Aug 2017 16:40:41 -0400 Subject: [PATCH 0099/1763] Extending fix to AbstractItem. --- .../main/java/hudson/model/AbstractItem.java | 39 +++++++++- core/src/main/java/hudson/model/Run.java | 3 +- .../java/hudson/model/AbstractItem2Test.java | 71 +++++++++++++++++++ .../test/java/hudson/model/RunActionTest.java | 5 -- 4 files changed, 111 insertions(+), 7 deletions(-) create mode 100644 test/src/test/java/hudson/model/AbstractItem2Test.java diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index 8cd5a1625e..78f558e0bb 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -44,9 +44,12 @@ import hudson.util.AlternativeUiTextProvider.Message; import hudson.util.AtomicFileWriter; import hudson.util.IOUtils; import hudson.util.Secret; +import java.io.Serializable; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; import jenkins.model.DirectlyModifiableTopLevelItemGroup; import jenkins.model.Jenkins; @@ -511,7 +514,16 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet */ public synchronized void save() throws IOException { if(BulkChange.contains(this)) return; - getConfigFile().write(this); + synchronized (saving) { + saving.add(this); + } + try { + getConfigFile().write(this); + } finally { + synchronized (saving) { + saving.remove(this); + } + } SaveableListener.fireOnChange(this, getConfigFile()); } @@ -519,6 +531,31 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet return Items.getConfigFile(this); } + private static final Set saving = new HashSet<>(); + + private Object writeReplace() { + synchronized (saving) { + if (saving.contains(this)) { + return this; + } else { + LOGGER.log(Level.WARNING, "JENKINS-45892: reference to {0} being saved but not at top level", this); + return new Replacer(this); + } + } + } + + /** Not {@link Serializable} for now, since we are only expecting to use this from XStream. */ + private static class Replacer { + private final String fullName; + Replacer(AbstractItem i) { + fullName = i.getFullName(); + } + private Object readResolve() { + // May or may not work: + return Jenkins.getInstance().getItemByFullName(fullName); + } + } + public Descriptor getDescriptorByName(String className) { return Jenkins.getInstance().getDescriptorByName(className); } diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 201566de60..5eab7539a4 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -1947,7 +1947,8 @@ public abstract class Run ,RunT extends Runthis is p1"))); + } + }); + rr.addStep(new Statement() { + @Override + public void evaluate() throws Throwable { + FreeStyleProject p1 = rr.j.jenkins.getItemByFullName("p1", FreeStyleProject.class); + FreeStyleProject p2 = rr.j.jenkins.getItemByFullName("p2", FreeStyleProject.class); + assertEquals(/* does not work yet: p1 */ null, p2.getProperty(BadProperty.class).other); + } + }); + } + static class BadProperty extends JobProperty { + final FreeStyleProject other; + BadProperty(FreeStyleProject other) { + this.other = other; + } + } + +} diff --git a/test/src/test/java/hudson/model/RunActionTest.java b/test/src/test/java/hudson/model/RunActionTest.java index 2f586b8c51..96bdfb60b4 100644 --- a/test/src/test/java/hudson/model/RunActionTest.java +++ b/test/src/test/java/hudson/model/RunActionTest.java @@ -28,19 +28,14 @@ import hudson.XmlFile; import java.io.File; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; -import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.junit.runners.model.Statement; -import org.jvnet.hudson.test.BuildWatcher; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.RestartableJenkinsRule; public class RunActionTest { - @ClassRule - public static BuildWatcher buildWatcher = new BuildWatcher(); - @Rule public RestartableJenkinsRule rr = new RestartableJenkinsRule(); -- GitLab From 4bbdf8193315f2c97810a12b4cc184ccd8b8f642 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Tue, 1 Aug 2017 16:53:48 -0400 Subject: [PATCH 0100/1763] Extending fix to User. --- core/src/main/java/hudson/model/User.java | 36 ++++++++++++++++++- .../java/hudson/model/UserRestartTest.java | 36 +++++++++++++++++++ 2 files changed, 71 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/User.java b/core/src/main/java/hudson/model/User.java index 845d769862..9ee58d66cb 100644 --- a/core/src/main/java/hudson/model/User.java +++ b/core/src/main/java/hudson/model/User.java @@ -50,6 +50,7 @@ import hudson.util.XStream2; import java.io.File; import java.io.FileFilter; import java.io.IOException; +import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -731,10 +732,43 @@ public class User extends AbstractModelObject implements AccessControlled, Descr throw FormValidation.error(Messages.User_IllegalFullname(fullName)); } if(BulkChange.contains(this)) return; - getConfigFile().write(this); + synchronized (saving) { + saving.add(this); + } + try { + getConfigFile().write(this); + } finally { + synchronized (saving) { + saving.remove(this); + } + } SaveableListener.fireOnChange(this, getConfigFile()); } + private static final Set saving = new HashSet<>(); + + private Object writeReplace() { + synchronized (saving) { + if (saving.contains(this)) { + return this; + } else { + LOGGER.log(Level.WARNING, "JENKINS-45892: reference to {0} being saved but not at top level", this); + return new Replacer(this); + } + } + } + + /** Not {@link Serializable} for now, since we are only expecting to use this from XStream. */ + private static class Replacer { + private final String id; + Replacer(User u) { + id = u.getId(); + } + private Object readResolve() { + return getById(id, false); + } + } + /** * Deletes the data directory and removes this user from Hudson. * diff --git a/test/src/test/java/hudson/model/UserRestartTest.java b/test/src/test/java/hudson/model/UserRestartTest.java index 43fbbc80ec..03b03f6b73 100644 --- a/test/src/test/java/hudson/model/UserRestartTest.java +++ b/test/src/test/java/hudson/model/UserRestartTest.java @@ -25,10 +25,13 @@ package hudson.model; import hudson.tasks.Mailer; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.not; import org.junit.Test; import static org.junit.Assert.*; import org.junit.Rule; import org.junit.runners.model.Statement; +import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.RestartableJenkinsRule; public class UserRestartTest { @@ -58,4 +61,37 @@ public class UserRestartTest { }); } + @Issue("JENKINS-45892") + @Test + public void badSerialization() { + rr.addStep(new Statement() { + @Override + public void evaluate() throws Throwable { + rr.j.jenkins.setSecurityRealm(rr.j.createDummySecurityRealm()); + FreeStyleProject p = rr.j.createFreeStyleProject("p"); + User u = User.get("pqhacker"); + u.setFullName("Pat Q. Hacker"); + u.save(); + p.addProperty(new BadProperty(u)); + String text = p.getConfigFile().asString(); + System.out.println(text); + assertThat(text, not(containsString("Pat Q. Hacker"))); + } + }); + rr.addStep(new Statement() { + @Override + public void evaluate() throws Throwable { + FreeStyleProject p = rr.j.jenkins.getItemByFullName("p", FreeStyleProject.class); + User u = p.getProperty(BadProperty.class).user; // do not inline: call User.get second + assertEquals(User.get("pqhacker"), u); + } + }); + } + static class BadProperty extends JobProperty { + final User user; + BadProperty(User user) { + this.user = user; + } + } + } -- GitLab From 7ab8ba1c15d1d1d67f366d338d80c948a1dfe81e Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Tue, 1 Aug 2017 17:41:04 -0400 Subject: [PATCH 0101/1763] Using RestartableJenkinsRule.then. --- test/pom.xml | 2 +- .../java/hudson/model/UserRestartTest.java | 29 +++++++------------ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 6c73ebfc97..2a977268a8 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -53,7 +53,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2.20 + 2.24-20170801.213935-3 test diff --git a/test/src/test/java/hudson/model/UserRestartTest.java b/test/src/test/java/hudson/model/UserRestartTest.java index 43fbbc80ec..8971212d07 100644 --- a/test/src/test/java/hudson/model/UserRestartTest.java +++ b/test/src/test/java/hudson/model/UserRestartTest.java @@ -28,7 +28,6 @@ import hudson.tasks.Mailer; import org.junit.Test; import static org.junit.Assert.*; import org.junit.Rule; -import org.junit.runners.model.Statement; import org.jvnet.hudson.test.RestartableJenkinsRule; public class UserRestartTest { @@ -37,24 +36,18 @@ public class UserRestartTest { public RestartableJenkinsRule rr = new RestartableJenkinsRule(); @Test public void persistedUsers() throws Exception { - rr.addStep(new Statement() { - @Override - public void evaluate() throws Throwable { - User bob = User.getById("bob", true); - bob.setFullName("Bob"); - bob.addProperty(new Mailer.UserProperty("bob@nowhere.net")); - } + rr.then(r -> { + User bob = User.getById("bob", true); + bob.setFullName("Bob"); + bob.addProperty(new Mailer.UserProperty("bob@nowhere.net")); }); - rr.addStep(new Statement() { - @Override - public void evaluate() throws Throwable { - User bob = User.getById("bob", false); - assertNotNull(bob); - assertEquals("Bob", bob.getFullName()); - Mailer.UserProperty email = bob.getProperty(Mailer.UserProperty.class); - assertNotNull(email); - assertEquals("bob@nowhere.net", email.getAddress()); - } + rr.then(r -> { + User bob = User.getById("bob", false); + assertNotNull(bob); + assertEquals("Bob", bob.getFullName()); + Mailer.UserProperty email = bob.getProperty(Mailer.UserProperty.class); + assertNotNull(email); + assertEquals("bob@nowhere.net", email.getAddress()); }); } -- GitLab From 1af56bedb1c44ed5f89e1d296f7210e5e9136125 Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Wed, 2 Aug 2017 10:33:22 +0200 Subject: [PATCH 0102/1763] add missing @Symbol for agent protocols --- core/src/main/java/hudson/TcpSlaveAgentListener.java | 2 ++ core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java | 2 ++ core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java | 2 ++ 3 files changed, 6 insertions(+) diff --git a/core/src/main/java/hudson/TcpSlaveAgentListener.java b/core/src/main/java/hudson/TcpSlaveAgentListener.java index bae4e2b4a9..602bb31c72 100644 --- a/core/src/main/java/hudson/TcpSlaveAgentListener.java +++ b/core/src/main/java/hudson/TcpSlaveAgentListener.java @@ -58,6 +58,7 @@ import org.apache.commons.io.Charsets; import org.apache.commons.io.IOUtils; import org.apache.commons.io.output.NullOutputStream; import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -307,6 +308,7 @@ public final class TcpSlaveAgentListener extends Thread { * @since 1.653 */ @Extension + @Symbol("ping") public static class PingAgentProtocol extends AgentProtocol { private final byte[] ping; diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java index 8d235f6114..d996fc0aab 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java @@ -14,6 +14,7 @@ import javax.inject.Inject; import jenkins.AgentProtocol; import jenkins.model.Jenkins; import jenkins.util.SystemProperties; +import org.jenkinsci.Symbol; import org.jenkinsci.remoting.engine.JnlpClientDatabase; import org.jenkinsci.remoting.engine.JnlpConnectionState; import org.jenkinsci.remoting.engine.JnlpProtocol3Handler; @@ -29,6 +30,7 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; */ @Deprecated @Extension +@Symbol("jnlp3") public class JnlpSlaveAgentProtocol3 extends AgentProtocol { private NioChannelSelector hub; diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java index d932f3b5d8..e96812b0b5 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java @@ -48,6 +48,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import jenkins.AgentProtocol; import jenkins.model.identity.InstanceIdentityProvider; +import org.jenkinsci.Symbol; import org.jenkinsci.remoting.engine.JnlpConnectionState; import org.jenkinsci.remoting.engine.JnlpProtocol4Handler; import org.jenkinsci.remoting.protocol.IOHub; @@ -62,6 +63,7 @@ import org.jenkinsci.remoting.protocol.cert.PublicKeyMatchingX509ExtendedTrustMa * @since 2.41 enabled by default */ @Extension +@Symbol("jnlp4") public class JnlpSlaveAgentProtocol4 extends AgentProtocol { /** * Our logger. -- GitLab From 3c71aff334114970fcd9e739b9172bfca7ee71b4 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 2 Aug 2017 13:14:19 -0400 Subject: [PATCH 0103/1763] jenkins-test-harness 2.24 --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 2a977268a8..b61a86e40c 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -53,7 +53,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2.24-20170801.213935-3 + 2.24 test -- GitLab From 6ed7c7f1d00caa21bfd8e43d34140bf66b579f5f Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Wed, 2 Aug 2017 20:17:13 +0200 Subject: [PATCH 0104/1763] [FIXED JENKINS-45895] - JNLPLauncher config.jelly should not display Work Dir settings when included from other class --- .../main/java/hudson/slaves/JNLPLauncher.java | 16 ++++++++++++++++ .../hudson/slaves/JNLPLauncher/config.jelly | 5 ++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/slaves/JNLPLauncher.java b/core/src/main/java/hudson/slaves/JNLPLauncher.java index 18c97e55a5..d0852590c3 100644 --- a/core/src/main/java/hudson/slaves/JNLPLauncher.java +++ b/core/src/main/java/hudson/slaves/JNLPLauncher.java @@ -163,6 +163,22 @@ public class JNLPLauncher extends ComputerLauncher { public String getDisplayName() { return Messages.JNLPLauncher_displayName(); } + + /** + * Checks if Work Dir settings should be displayed. + * + * This flag is checked in {@code config.jelly} before displaying the + * {@link JNLPLauncher#workDirSettings} property. + * By default the configuration is displayed only for {@link JNLPLauncher}, + * but the implementation can be overridden. + * @return {@code true} if work directories are supported by the launcher type. + * @since TODO + */ + public boolean isWorkDirSupported() { + // This property is included only for JNLPLauncher by default. + // Causes JENKINS-45895 in the case of includes otherwise + return DescriptorImpl.class.equals(getClass()); + } }; /** diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly b/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly index 85aa8aafda..d0765ddb5b 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config.jelly @@ -24,7 +24,10 @@ THE SOFTWARE. - + + + + -- GitLab From 32be27a5dab0a8e213faf045a5d8dfef064ca8d2 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 2 Aug 2017 16:23:36 -0400 Subject: [PATCH 0105/1763] Strengthening tests a bit. --- test/src/test/java/hudson/model/AbstractItem2Test.java | 2 +- test/src/test/java/hudson/model/RunActionTest.java | 2 +- test/src/test/java/hudson/model/UserRestartTest.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/src/test/java/hudson/model/AbstractItem2Test.java b/test/src/test/java/hudson/model/AbstractItem2Test.java index fc99e1206e..a35044ee87 100644 --- a/test/src/test/java/hudson/model/AbstractItem2Test.java +++ b/test/src/test/java/hudson/model/AbstractItem2Test.java @@ -48,8 +48,8 @@ public class AbstractItem2Test { FreeStyleProject p2 = rr.j.createFreeStyleProject("p2"); p2.addProperty(new BadProperty(p1)); String text = p2.getConfigFile().asString(); - System.out.println(text); assertThat(text, not(containsString("this is p1"))); + assertThat(text, containsString("p1")); } }); rr.addStep(new Statement() { diff --git a/test/src/test/java/hudson/model/RunActionTest.java b/test/src/test/java/hudson/model/RunActionTest.java index 96bdfb60b4..16aac5e404 100644 --- a/test/src/test/java/hudson/model/RunActionTest.java +++ b/test/src/test/java/hudson/model/RunActionTest.java @@ -51,8 +51,8 @@ public class RunActionTest { b2.addAction(new BadAction(b1)); b2.save(); String text = new XmlFile(new File(b2.getRootDir(), "build.xml")).asString(); - System.out.println(text); assertThat(text, not(containsString(""))); + assertThat(text, containsString("p#1")); } }); rr.addStep(new Statement() { diff --git a/test/src/test/java/hudson/model/UserRestartTest.java b/test/src/test/java/hudson/model/UserRestartTest.java index 03b03f6b73..87ddf1f5d2 100644 --- a/test/src/test/java/hudson/model/UserRestartTest.java +++ b/test/src/test/java/hudson/model/UserRestartTest.java @@ -74,8 +74,8 @@ public class UserRestartTest { u.save(); p.addProperty(new BadProperty(u)); String text = p.getConfigFile().asString(); - System.out.println(text); assertThat(text, not(containsString("Pat Q. Hacker"))); + assertThat(text, containsString("pqhacker")); } }); rr.addStep(new Statement() { -- GitLab From b6758e36242026f7256469742d4ae1e8833e54cf Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 2 Aug 2017 16:25:46 -0400 Subject: [PATCH 0106/1763] Make readResolve methods tolerate Jenkins.instance == null. --- core/src/main/java/hudson/model/AbstractItem.java | 8 ++++++-- core/src/main/java/hudson/model/Run.java | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index 78f558e0bb..817e243a98 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -551,8 +551,12 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet fullName = i.getFullName(); } private Object readResolve() { - // May or may not work: - return Jenkins.getInstance().getItemByFullName(fullName); + Jenkins j = Jenkins.getInstanceOrNull(); + if (j == null) { + return null; + } + // Will generally only work if called after job loading: + return j.getItemByFullName(fullName); } } diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 5eab7539a4..e0a4d0917e 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -51,7 +51,6 @@ import hudson.cli.declarative.CLIMethod; import hudson.model.Descriptor.FormException; import hudson.model.listeners.RunListener; import hudson.model.listeners.SaveableListener; -import hudson.model.queue.Executables; import hudson.model.queue.SubTask; import hudson.search.SearchIndexBuilder; import hudson.security.ACL; @@ -2356,7 +2355,10 @@ public abstract class Run ,RunT extends Run job = j.getItemByFullName(jobName, Job.class); if (job == null) { return null; -- GitLab From 2d2101215dc39dfcb03279e3cb8898b8b9e5bc5f Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 2 Aug 2017 16:28:41 -0400 Subject: [PATCH 0107/1763] Simplifying writeReplace methods by factoring common logic into XmlFile.replaceIfNotAtTopLevel. --- core/src/main/java/hudson/XmlFile.java | 34 ++++++++++++++++++- .../main/java/hudson/model/AbstractItem.java | 27 ++------------- core/src/main/java/hudson/model/Run.java | 25 ++------------ core/src/main/java/hudson/model/User.java | 25 ++------------ 4 files changed, 39 insertions(+), 72 deletions(-) diff --git a/core/src/main/java/hudson/XmlFile.java b/core/src/main/java/hudson/XmlFile.java index 72d4d6c128..eeaa49772b 100644 --- a/core/src/main/java/hudson/XmlFile.java +++ b/core/src/main/java/hudson/XmlFile.java @@ -50,8 +50,13 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; +import java.io.Serializable; import java.io.Writer; import java.io.StringWriter; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.Map; +import java.util.function.Supplier; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.io.IOUtils; @@ -114,6 +119,7 @@ import org.apache.commons.io.IOUtils; public final class XmlFile { private final XStream xs; private final File file; + private static final Map beingWritten = Collections.synchronizedMap(new IdentityHashMap<>()); public XmlFile(File file) { this(DEFAULT_XSTREAM,file); @@ -168,7 +174,12 @@ public final class XmlFile { AtomicFileWriter w = new AtomicFileWriter(file); try { w.write("\n"); - xs.toXML(o,w); + beingWritten.put(o, null); + try { + xs.toXML(o, w); + } finally { + beingWritten.remove(o); + } w.commit(); } catch(StreamException e) { throw new IOException(e); @@ -177,6 +188,27 @@ public final class XmlFile { } } + /** + * Provides an XStream replacement for an object unless a call to {@link #write} is currently in progress. + * As per JENKINS-45892 this may be used by any class which expects to be written at top level to an XML file + * but which cannot safely be serialized as a nested object (for example, because it expects some {@code onLoad} hook): + * implement a {@code writeReplace} method delegating to this method. + * The replacement need not be {@link Serializable} since it is only necessary for use from XStream. + * @param o an object ({@code this} from {@code writeReplace}) + * @param replacement a supplier of a safely serializable replacement object with a {@code readResolve} method + * @return {@code o}, if {@link #write} is being called on it, else the replacement + * @since FIXME + */ + public static Object replaceIfNotAtTopLevel(Object o, Supplier replacement) { + if (beingWritten.containsKey(o)) { + return o; + } else { + // Unfortunately we cannot easily tell which XML file is actually being saved here, at least without implementing a custom Converter. + LOGGER.log(Level.WARNING, "JENKINS-45892: reference to {0} being saved but not at top level", o); + return replacement.get(); + } + } + public boolean exists() { return file.exists(); } diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index 817e243a98..424e934e31 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -44,12 +44,9 @@ import hudson.util.AlternativeUiTextProvider.Message; import hudson.util.AtomicFileWriter; import hudson.util.IOUtils; import hudson.util.Secret; -import java.io.Serializable; -import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; -import java.util.Set; import java.util.concurrent.TimeUnit; import jenkins.model.DirectlyModifiableTopLevelItemGroup; import jenkins.model.Jenkins; @@ -514,16 +511,7 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet */ public synchronized void save() throws IOException { if(BulkChange.contains(this)) return; - synchronized (saving) { - saving.add(this); - } - try { - getConfigFile().write(this); - } finally { - synchronized (saving) { - saving.remove(this); - } - } + getConfigFile().write(this); SaveableListener.fireOnChange(this, getConfigFile()); } @@ -531,20 +519,9 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet return Items.getConfigFile(this); } - private static final Set saving = new HashSet<>(); - private Object writeReplace() { - synchronized (saving) { - if (saving.contains(this)) { - return this; - } else { - LOGGER.log(Level.WARNING, "JENKINS-45892: reference to {0} being saved but not at top level", this); - return new Replacer(this); - } - } + return XmlFile.replaceIfNotAtTopLevel(this, () -> new Replacer(this)); } - - /** Not {@link Serializable} for now, since we are only expecting to use this from XStream. */ private static class Replacer { private final String fullName; Replacer(AbstractItem i) { diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index e0a4d0917e..d48912c8e5 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -1922,16 +1922,7 @@ public abstract class Run ,RunT extends Run,RunT extends Run> saving = new HashSet<>(); - private Object writeReplace() { - synchronized (saving) { - if (saving.contains(this)) { - return this; - } else { - // Unfortunately we cannot easily tell which XML file is actually being saved here, at least without implementing a custom Converter. - LOGGER.log(WARNING, "JENKINS-45892: reference to {0} being saved but not at top level", this); - return new Replacer(this); - } - } + return XmlFile.replaceIfNotAtTopLevel(this, () -> new Replacer(this)); } - - /** Not {@link Serializable} for now, since we are only expecting to use this from XStream. */ private static class Replacer { private final String id; Replacer(Run r) { diff --git a/core/src/main/java/hudson/model/User.java b/core/src/main/java/hudson/model/User.java index 9ee58d66cb..902ae36e60 100644 --- a/core/src/main/java/hudson/model/User.java +++ b/core/src/main/java/hudson/model/User.java @@ -50,7 +50,6 @@ import hudson.util.XStream2; import java.io.File; import java.io.FileFilter; import java.io.IOException; -import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -732,33 +731,13 @@ public class User extends AbstractModelObject implements AccessControlled, Descr throw FormValidation.error(Messages.User_IllegalFullname(fullName)); } if(BulkChange.contains(this)) return; - synchronized (saving) { - saving.add(this); - } - try { - getConfigFile().write(this); - } finally { - synchronized (saving) { - saving.remove(this); - } - } + getConfigFile().write(this); SaveableListener.fireOnChange(this, getConfigFile()); } - private static final Set saving = new HashSet<>(); - private Object writeReplace() { - synchronized (saving) { - if (saving.contains(this)) { - return this; - } else { - LOGGER.log(Level.WARNING, "JENKINS-45892: reference to {0} being saved but not at top level", this); - return new Replacer(this); - } - } + return XmlFile.replaceIfNotAtTopLevel(this, () -> new Replacer(this)); } - - /** Not {@link Serializable} for now, since we are only expecting to use this from XStream. */ private static class Replacer { private final String id; Replacer(User u) { -- GitLab From 808254700fc7bdf14a2728111dba54f1b492a8ef Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 2 Aug 2017 16:37:04 -0400 Subject: [PATCH 0108/1763] Windows builds have been timing out; giving them an extra hour. --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index bcced2b016..baf6c2158b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -32,7 +32,7 @@ for(i = 0; i < buildTypes.size(); i++) { // Now run the actual build. stage("${buildType} Build / Test") { - timeout(time: 180, unit: 'MINUTES') { + timeout(time: 240, unit: 'MINUTES') { // See below for what this method does - we're passing an arbitrary environment // variable to it so that JAVA_OPTS and MAVEN_OPTS are set correctly. withMavenEnv(["JAVA_OPTS=-Xmx1536m -Xms512m", -- GitLab From 5ea807c6a9006a16658cf6e3b04f6c1417e59506 Mon Sep 17 00:00:00 2001 From: Damian Szczepanik Date: Mon, 24 Jul 2017 00:09:09 +0200 Subject: [PATCH 0109/1763] Added Polish translations for setup wizard --- .../ProxyConfiguration/config_pl.properties | 6 +- .../install/pluginSetupWizard_pl.properties | 78 +++++++++++++++++++ 2 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 core/src/main/resources/jenkins/install/pluginSetupWizard_pl.properties diff --git a/core/src/main/resources/hudson/ProxyConfiguration/config_pl.properties b/core/src/main/resources/hudson/ProxyConfiguration/config_pl.properties index a03b5b7cb5..fd26448050 100644 --- a/core/src/main/resources/hudson/ProxyConfiguration/config_pl.properties +++ b/core/src/main/resources/hudson/ProxyConfiguration/config_pl.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# Copyright (c) 2004-2017, Sun Microsystems, Inc, Damian Szczepanik # # 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,6 @@ Password=Has\u0142o Port=Port Server=Serwer -User\ name=Nazwa u\u017cytkownika +User\ name=Nazwa u\u017Cytkownika +No\ Proxy\ Host=Brak hosta proxy +Validate\ Proxy=Sprawd\u017A proxy diff --git a/core/src/main/resources/jenkins/install/pluginSetupWizard_pl.properties b/core/src/main/resources/jenkins/install/pluginSetupWizard_pl.properties new file mode 100644 index 0000000000..e94da4e1c8 --- /dev/null +++ b/core/src/main/resources/jenkins/install/pluginSetupWizard_pl.properties @@ -0,0 +1,78 @@ +# The MIT License +# +# Copyright (c) 2017, Damian Szczepanik +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +installWizard_welcomePanel_title=Zaczynamy +installWizard_welcomePanel_banner=Dostosuj Jenkinsa +installWizard_welcomePanel_message=Wtyczki rozszerzaj\u0105ce Jenkinsa o dodatkowe funkcjonalno\u015Bci, kt\u00F3re zaspokajaj\u0105 wiele potrzeb. +installWizard_welcomePanel_recommendedActionTitle=Zainstaluj sugerowane wtyczki +installWizard_welcomePanel_recommendedActionDetails=Zainstaluj wtyczki, kt\u00F3re spo\u0142eczno\u015B\u0107 Jenkinsa uzna\u0142a za najbardziej przydatne. +installWizard_welcomePanel_customizeActionTitle=Wybierz wtyczki do instalacji +installWizard_welcomePanel_customizeActionDetails=Wybierz i zainstaluj wtyczki najbardziej dopasowane do Twoich potrzeb. +installWizard_jenkinsVersionTitle=Jenkins +installWizard_installComplete_banner=Jenkins jest gotowy! +installWizard_installComplete_finishButtonLabel=Zacznij korzysta\u0107 z Jenkinsa +installWizard_installComplete_message=Konfiguracja Jenkinsa zosta\u0142a zako\u0144czona. +installWizard_firstUserSkippedMessage=
      \ +Pomini\u0119to utworzenie konta administratora. Aby si\u0119 zalogowa\u0107, u\u017Cyj loginu 'admin' i has\u0142a u\u017Cytego podczas konfigurowania Jenkinsa.\ +
      +installWizard_addFirstUser_title=Dodawanie pierwszego u\u017Cytkownika +installWizard_installCustom_title=Instalacja wybrantych wtyczek +installWizard_installing_title=Instalacja wtyczek +installWizard_installComplete_title=Instalacja zako\u0144czona +installWizard_installCustom_selectAll=Wszystkie +installWizard_installCustom_selectNone=\u017Badne +installWizard_installCustom_selectRecommended=Rekomendowane +installWizard_installCustom_selected=Wybrane +installWizard_installCustom_pluginListDesc=Zauwa\u017C, \u017Ce poni\u017Cej nie jest wy\u015Bwietlana pe\u0142na lista wtyczek. Dodatkowe wtyczki mog\u0105 by\u0107 pobrane przez Mened\u017Cera wtyczek, kiedy konfiguracja Jenkinsa zostanie zasko\u0144czona. Sprawd\u017A wi\u0119cej informacji na Wiki. +installWizard_goBack=Wr\u00F3\u0107 +installWizard_goInstall=Instaluj +installWizard_error_connection=Nie uda\u0142o si\u0119 po\u0142\u0105czy\u0107 z Jenkinsem +installWizard_error_header=Wyst\u0105pi\u0142 b\u0142\u0105d +installWizard_installingConsole_dependencyIndicatorNote=** - zale\u017Cno\u015Bci wymagane +installWizard_retry=Pon\u00F3w +installWizard_pluginInstallFailure_message=Niekt\u00F3rych wtyczek nie uda\u0142o si\u0119 zainstalowa\u0107. Mo\u017Cesz ponowi\u0107 instalacje lub kontynuowa\u0107 z b\u0142\u0119dnymi wtyczkami. +installWizard_continue=Kontynuuj +installWizard_offline_title=Offline +installWizard_installIncomplete_title=Wznawianie instalacji +installWizard_installIncomplete_banner=Wznawianie instalacji +installWizard_offline_message=Wygl\u0105da, \u017Ce Jenkins pracuje w trybie offline. \ +

      \ +Aby uzyska\u0107 wi\u0119cej informacji o instalowaniu Jenkinsa bez dost\u0119pu do Internetu, sprawd\u017A \ +Offline Jenkins Installation Documentation.

      \ +Mo\u017Cesz kontynuowa\u0107 konfiguruj\u0105c proxy lub pomin\u0105\u0107 instalacje wtyczek.\ +

      +installWizard_configureProxy_label=Konfiguruj proxy +installWizard_skipPluginInstallations=Pomi\u0144 instalacje wtyczek +installWizard_configureProxy_save=Zapisz i kontynuuj +installWizard_installIncomplete_resumeInstallationButtonLabel=Pon\u00F3w +installWizard_installIncomplete_message=Jenkins zosta\u0142 ponownie uruchomiony w trakcie instalacji i wygl\u0105da, \u017Ce cz\u0119\u015B\u0107 wtyczek nie zosta\u0142a zainstalowana. +installWizard_installComplete_installComplete_restartRequiredMessage=Instalacja jest zako\u0144czona, ale niekt\u00F3re wtyczki wymagaj\u0105 ponownego uruchomienia Jenkinsa. +installWizard_saveFirstUser=Zapisz i zako\u0144cz +installWizard_skipFirstUser=Kontynuuj jako administrator +installWizard_error_message=Wyst\u0105pi\u0142 b\u0142\u0105d podczas instalacji +installWizard_installCustom_dependenciesPrefix=Zale\u017Cno\u015Bci +installWizard_pluginInstallFailure_title=Instalacja nie powiod\u0142a si\u0119 +installWizard_installing_detailsLink=Szczeg\u00F3\u0142y... +installWizard_installComplete_installComplete_restartRequiredNotSupportedMessage= +installWizard_gettingStarted_title=Zaczynamy +installWizard_saveSecurity=Zapisz i kontynuuj +installWizard_installIncomplete_dependenciesLabel=Zale\u017Cno\u015Bci -- GitLab From 8c7d06c72a64533482c45108abb600f8e462c710 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 2 Aug 2017 18:06:43 -0400 Subject: [PATCH 0110/1763] Amend JENKINS-24110 fix to more politely specify what was not being run. --- core/src/main/java/hudson/model/Executor.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/Executor.java b/core/src/main/java/hudson/model/Executor.java index dac98709fd..279a1fa762 100644 --- a/core/src/main/java/hudson/model/Executor.java +++ b/core/src/main/java/hudson/model/Executor.java @@ -355,6 +355,10 @@ public class Executor extends Thread implements ModelObject { LOGGER.log(FINE, getName()+" grabbed "+workUnit+" from queue"); SubTask task = workUnit.work; Executable executable = task.createExecutable(); + if (executable == null) { + String displayName = task instanceof Queue.Task ? ((Queue.Task) task).getFullDisplayName() : task.getDisplayName(); + LOGGER.log(WARNING, "{0} cannot be run (for example because it is disabled)", displayName); + } lock.writeLock().lock(); try { Executor.this.executable = executable; @@ -387,7 +391,7 @@ public class Executor extends Thread implements ModelObject { // by tasks. In such case Jenkins starts the workUnit in order // to report results to console outputs. if (executable == null) { - throw new Error("The null Executable has been created for "+workUnit+". The task cannot be executed"); + return; } if (executable instanceof Actionable) { -- GitLab From 2eea8902a558a134d54aa9351ec46556bd785db1 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Thu, 20 Jul 2017 11:12:26 +0200 Subject: [PATCH 0111/1763] [FIX JENKINS-45679] JNLP needs to request Java 8 (cherry picked from commit 99cf772da11823ec965874b17e89866a3931ebc1) --- .../hudson/slaves/SlaveComputer/slave-agent.jnlp.jelly | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 aff376cb8a..07f6f25144 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 @@ -50,10 +50,10 @@ THE SOFTWARE. - + - + -- GitLab From c7cb521a2ed3f887a13c78330bcf93cd13bdb7aa Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sun, 9 Jul 2017 11:56:40 +0200 Subject: [PATCH 0112/1763] [JENKINS-34914] - Prevent NPE in Jenkins#getRootURL() when the nstance is not fully loaded (cherry picked from commit c064d88a3b418e4cc6e3a75b4faa7db4c69880f2) --- core/src/main/java/jenkins/model/Jenkins.java | 15 ++++++++++++--- .../model/JenkinsLocationConfiguration.java | 6 ++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index acb561edf8..10129fe3c4 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -2326,12 +2326,21 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve * It is done in this order so that it can work correctly even in the face * of a reverse proxy. * - * @return null if this parameter is not configured by the user and the calling thread is not in an HTTP request; otherwise the returned URL will always have the trailing {@code /} + * @return {@code null} if this parameter is not configured by the user and the calling thread is not in an HTTP request; + * otherwise the returned URL will always have the trailing {@code /} + * @throws IllegalStateException {@link JenkinsLocationConfiguration} cannot be retrieved. + * Jenkins instance may be not ready, or there is an extension loading glitch. * @since 1.66 * @see Hyperlinks in HTML */ - public @Nullable String getRootUrl() { - String url = JenkinsLocationConfiguration.get().getUrl(); + public @Nullable String getRootUrl() throws IllegalStateException { + final JenkinsLocationConfiguration config = JenkinsLocationConfiguration.get(); + if (config == null) { + // Try to get standard message if possible + final Jenkins j = Jenkins.getInstance(); + throw new IllegalStateException("Jenkins instance " + j + " has been successfully initialized, but JenkinsLocationConfiguration is undefined."); + } + String url = config.getUrl(); if(url!=null) { return Util.ensureEndsWith(url,"/"); } diff --git a/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java b/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java index 981ef9a3a6..b7390ad3d3 100644 --- a/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java +++ b/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java @@ -41,6 +41,12 @@ public class JenkinsLocationConfiguration extends GlobalConfiguration { // just to suppress warnings private transient String charset,useSsl; + /** + * Gets local configuration. + * + * @return {@code null} if the {@link GlobalConfiguration#all()} list does not contain this extension. + * Most likely it means that the Jenkins instance has not been fully loaded yet. + */ public static @CheckForNull JenkinsLocationConfiguration get() { return GlobalConfiguration.all().get(JenkinsLocationConfiguration.class); } -- GitLab From bb86f57242afd87d737fa0c038d15ebdac88a08e Mon Sep 17 00:00:00 2001 From: Nikolas Falco Date: Sun, 9 Jul 2017 19:36:05 +0200 Subject: [PATCH 0113/1763] [JENKINS-14807] Fix path separator when EnvVars overrides variable like PATH+XYZ The getEnvironment(Node, TaskListener) now returns an environment setup correctly with the platform value of the computer node where the job is executed. (cherry picked from commit cf0183d1ed1e999a04a1445b2cd369b58e1268bf) --- core/src/main/java/hudson/model/Job.java | 12 ++-- core/src/test/java/hudson/model/JobTest.java | 58 +++++++++++++++++++- 2 files changed, 64 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index 0575724d99..b089d70635 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -374,13 +374,15 @@ public abstract class Job, RunT extends Run job = Mockito.mock(FreeStyleProject.class); + Mockito.when(job.getEnvironment(Mockito.any(Node.class), Mockito.any(TaskListener.class))).thenCallRealMethod(); + Mockito.when(job.getCharacteristicEnvVars()).thenReturn(emptyEnv); + + Computer c = Mockito.mock(Computer.class); + // ensure that PATH variable exists to perform the path separator join + if (!slaveEnv.containsKey("PATH")) { + slaveEnv.put("PATH", "/bin/bash"); + } + Mockito.when(c.getEnvironment()).thenReturn(slaveEnv); + Mockito.when(c.buildEnvironment(Mockito.any(TaskListener.class))).thenReturn(emptyEnv); + + Node node = PowerMockito.mock(Node.class); + PowerMockito.doReturn(c).when(node).toComputer(); + + EnvVars env = job.getEnvironment(node, null); + String path = "/test"; + env.override("PATH+TEST", path); + + assertThat("The contributed PATH was not joined using the path separator defined in slave node", // + env.get("PATH"), // + CoreMatchers.containsString(path + (slavePlatform == Platform.WINDOWS ? ';' : ':'))); + } + } -- GitLab From be6d02e648d5c41e5b16e797bdc55873d0f56c56 Mon Sep 17 00:00:00 2001 From: Curt Moore Date: Thu, 13 Jul 2017 09:52:18 -0500 Subject: [PATCH 0114/1763] [JENKINS-45516] Fix null pointer exception when checking for previous completed build (cherry picked from commit 245ad0bdb17ebd33eca81c099e8a19a893c049e3) --- core/src/main/java/hudson/model/AbstractBuild.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java index 168505f29a..5e809db226 100644 --- a/core/src/main/java/hudson/model/AbstractBuild.java +++ b/core/src/main/java/hudson/model/AbstractBuild.java @@ -337,7 +337,7 @@ public abstract class AbstractBuild

      ,R extends Abs AbstractBuild p = getPreviousCompletedBuild(); if (upstreamCulprits) { // If we have dependencies since the last successful build, add their authors to our list - if (p.getPreviousNotFailedBuild() != null) { + if (p != null && p.getPreviousNotFailedBuild() != null) { Map depmap = p.getDependencyChanges(p.getPreviousSuccessfulBuild()); for (AbstractBuild.DependencyChange dep : depmap.values()) { -- GitLab From a0a55d1da6882e8a56d90885e7cd55a22accbfe1 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 3 Aug 2017 11:01:16 -0400 Subject: [PATCH 0115/1763] [JENKINS-43199] Reliably close build log file (#2954) * [JENKINS-43199] Reliably close build log file. * Try harder to ensure that the logger is closed at the end of the build. --- core/src/main/java/hudson/model/Run.java | 26 ++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 4701bfc396..84a31086a9 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -1698,6 +1698,7 @@ public abstract class Run ,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run Date: Thu, 3 Aug 2017 17:12:22 -0400 Subject: [PATCH 0116/1763] Use official version of jbcrypt 0.4. --- core/pom.xml | 6 + .../src/main/java/hudson/security/BCrypt.java | 777 ------------------ .../security/HudsonPrivateSecurityRealm.java | 1 + 3 files changed, 7 insertions(+), 777 deletions(-) delete mode 100644 core/src/main/java/hudson/security/BCrypt.java diff --git a/core/pom.xml b/core/pom.xml index f3edfa0152..f675636fe6 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -590,6 +590,12 @@ THE SOFTWARE. 1.3.1-jenkins-1 + + org.mindrot + jbcrypt + 0.4 + + -- GitLab From e64137a7a01e22bdd75776c198d0908fc4a38f99 Mon Sep 17 00:00:00 2001 From: Bruno Meneguello Date: Sun, 6 Aug 2017 18:24:17 -0300 Subject: [PATCH 0123/1763] Update Messages_pt_BR.properties --- .../resources/hudson/node_monitors/Messages_pt_BR.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 a55804ed54..5f7378571e 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 @@ -26,7 +26,7 @@ DiskSpaceMonitor.DisplayName=Espa\u00e7o livre em disco # Time out for last {0} try ResponseTimeMonitor.TimeOut=Time out desde a \u00faltima {0} tentativa # Free Temp Space -TemporarySpaceMonitor.DisplayName=Intervalo de tempo dispon\u00edvel +TemporarySpaceMonitor.DisplayName=Espa\u00e7o tempor\u00e1rio dispon\u00edvel # Response Time ResponseTimeMonitor.DisplayName=Tempo de resposta # Making {0} offline temporarily due to the lack of disk space @@ -40,4 +40,4 @@ AbstractNodeMonitorDescriptor.NoDataYet=Nada ainda # Putting {0} back online as there is enough disk space again DiskSpaceMonitor.MarkedOnline=Retornando {0} para online pois h\u00e1 espa\u00e7o em disco suficiente novamente # Disk space is too low. Only {0}GB left. -DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Pouco espa\u00e7o em disco. Somente {0}GB restante. +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=Pouco espa\u00e7o em disco. Somente {0}GB dispon\u00edvel em {1}. -- GitLab From 6ad4c02c2381b87e20c021f3e9adc2fbb6c61dd2 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 7 Aug 2017 07:19:13 -0700 Subject: [PATCH 0124/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index fbd4e27dd2..36dfadd08c 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.73 + 2.74-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 2cf8a6debd..d315aff83a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73 + 2.74-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index e4631ebaa8..633cf4bc6d 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73 + 2.74-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.73 + HEAD diff --git a/test/pom.xml b/test/pom.xml index 34b13bf24f..6598da0930 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73 + 2.74-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index e02ef837ff..5c53ff55e0 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73 + 2.74-SNAPSHOT jenkins-war -- GitLab From ff8ff3f450d3ece0abd19c1d92af9ca212e735b9 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 7 Aug 2017 07:19:13 -0700 Subject: [PATCH 0125/1763] [maven-release-plugin] prepare release jenkins-2.73 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 9c52bbda98..fbd4e27dd2 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.73-SNAPSHOT + 2.73 cli diff --git a/core/pom.xml b/core/pom.xml index f675636fe6..2cf8a6debd 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73-SNAPSHOT + 2.73 jenkins-core diff --git a/pom.xml b/pom.xml index 299d8a9031..e4631ebaa8 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73-SNAPSHOT + 2.73 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.73 diff --git a/test/pom.xml b/test/pom.xml index 6c73ebfc97..34b13bf24f 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73-SNAPSHOT + 2.73 test diff --git a/war/pom.xml b/war/pom.xml index fc91bdd6b3..e02ef837ff 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73-SNAPSHOT + 2.73 jenkins-war -- GitLab From 2bb5cfd097ec3e7298327ebccf62e20fe54f04eb Mon Sep 17 00:00:00 2001 From: Damian Szczepanik Date: Mon, 7 Aug 2017 22:40:46 +0200 Subject: [PATCH 0126/1763] Added Polish translations --- .../PluginManager/installed_pl.properties | 8 +++-- .../config_pl.properties | 27 +++++++++++++++-- .../hudson/security/Messages_pl.properties | 20 ++++++++++++- .../SecurityRealm/signup_pl.properties | 25 ++++++++++++++++ .../hudson/tasks/Messages_pl.properties | 10 +++++-- .../message_pl.properties | 30 +++++++++++++++++++ 6 files changed, 110 insertions(+), 10 deletions(-) create mode 100644 core/src/main/resources/hudson/security/SecurityRealm/signup_pl.properties create mode 100644 core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message_pl.properties diff --git a/core/src/main/resources/hudson/PluginManager/installed_pl.properties b/core/src/main/resources/hudson/PluginManager/installed_pl.properties index 882151920a..4fb0ab51f3 100644 --- a/core/src/main/resources/hudson/PluginManager/installed_pl.properties +++ b/core/src/main/resources/hudson/PluginManager/installed_pl.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2016, Sun Microsystems, Damian Szczepanik +# Copyright (c) 2004-2017, Sun Microsystems, Damian Szczepanik # # 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 @@ Restart\ Once\ No\ Jobs\ Are\ Running=Uruchom ponownie gdy \u017Cadne zadania ni Uncheck\ to\ disable\ the\ plugin=Odznacz aby wy\u0142\u0105czy\u0107 wtyczk\u0119 Uninstall=Odinstaluj Version=Wersja -downgradeTo=Powr\u00F3\u0107 do starszej wersji {0} +downgradeTo=Powr\u00F3\u0107 do wersji {0} requires.restart=Wymagane jest ponowne uruchomienie Jenkinsa. Zmiany wtyczek w tym momencie s\u0105 bardzo niewskazane. Uruchom ponownie Jenkinsa, zanim wprowadzisz zmiany. Uninstallation\ pending=Trwa odinstalowywanie This\ plugin\ cannot\ be\ disabled=Ta wtyczka nie mo\u017Ce by\u0107 wy\u0142\u0105czona No\ plugins\ installed.=Brak zainstalowanych wtyczek -This\ plugin\ cannot\ be\ enabled=Ta wtyczka nie mo\u017Ce by\u0107 wy\u0142\u0105czona +This\ plugin\ cannot\ be\ enabled=Ta wtyczka nie mo\u017Ce by\u0107 w\u0142\u0105czona Update\ Center=Centrum aktualizacji Filter=Filtruj No\ description\ available.=Opis nie jest dost\u0119pny +Warning=Ostrze\u017Cenie +New\ plugins\ will\ take\ effect\ once\ you\ restart\ Jenkins=Nowe wtyczki zostan\u0105 w\u0142\u0105czone po ponownym uruchomieniu Jenkinsa. diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/config_pl.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/config_pl.properties index c90b977db4..1b1b2f423f 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/config_pl.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/config_pl.properties @@ -1,3 +1,24 @@ -# This file is under the MIT License by authors - -Allow\ users\ to\ sign\ up=Pozw\u00F3l ludziom na rejestrowanie si\u0119 +# The MIT License +# +# Copyright (c) 2013-2017, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +Allow\ users\ to\ sign\ up=Pozw\u00F3l u\u017Cytkownikom na rejestrowanie si\u0119 +Enable\ captcha\ on\ sign\ up=W\u0142\u0105cz captcha podczas rejestracji +Captcha\ Support=Wsparcie dla captcha diff --git a/core/src/main/resources/hudson/security/Messages_pl.properties b/core/src/main/resources/hudson/security/Messages_pl.properties index ec181ceb9a..cac95150ed 100644 --- a/core/src/main/resources/hudson/security/Messages_pl.properties +++ b/core/src/main/resources/hudson/security/Messages_pl.properties @@ -26,5 +26,23 @@ LDAPSecurityRealm.DisplayName=LDAP # Create/delete/modify users that can log in to this Jenkins HudsonPrivateSecurityRealm.ManageUserLinks.Description=Dodawaj, usuwaj i modyfikuj u\u017Cytkownik\u00F3w, kt\u00F3rzy mog\u0105 si\u0119 logowa\u0107 do Jenkinsa GlobalSecurityConfiguration.DisplayName=Konfiguruj ustawienia bezpiecze\u0144stwa -GlobalSecurityConfiguration.Description=Zabezpiecz Jenkinsa, decyduj, kto ma do niego dost\u0119p. +GlobalSecurityConfiguration.Description=Zabezpiecz Jenkinsa: decyduj, kto ma do niego dost\u0119p. HudsonPrivateSecurityRealm.Details.DisplayName=Has\u0142o +HudsonPrivateSecurityRealm.DisplayName=W\u0142asna baza danych Jenkinsa +HudsonPrivateSecurityRealm.Details.PasswordError=\ + Potw\u00F3rzone has\u0142o nie jest takie samo, jak wpisane. \ + Upewnij si\u0119, \u017Ce oba has\u0142a s\u0105 takie same. +HudsonPrivateSecurityRealm.CreateAccount.PasswordRequired=Has\u0142o jest wymagane +HudsonPrivateSecurityRealm.CreateAccount.UserNameRequired=Nazwa u\u017Cytkownika jest wymagana +HudsonPrivateSecurityRealm.CreateAccount.InvalidEmailAddress=Niepoprawny adres e-mail +HudsonPrivateSecurityRealm.CreateAccount.UserNameAlreadyTaken=Nazwa u\u017Cytkownika jest ju\u017C u\u017Cywana +AuthorizationStrategy.DisplayName=Ka\u017Cdy u\u017Cytkownik mo\u017Ce wszystko +LDAPSecurityRealm.SyntaxOfServerField=Sk\u0142adnia serwera to SERWER, SERWER:PORT lub ldaps://SERVER[:PORT] +LDAPSecurityRealm.UnknownHost=Nieznany host +LDAPSecurityRealm.InvalidPortNumber=Niepoprawna warto\u015B\u0107 portu +PAMSecurityRealm.ReadPermission=Jenkins musi mie\u0107 mo\u017Cliwo\u015B\u0107 odczytu /etc/shadow +PAMSecurityRealm.BelongToGroup={0} musi nale\u017Ce\u0107 do grupy {1} aby m\u00F3c odczyta\u0107 /etc/shadow +PAMSecurityRealm.Success=Sukces +PAMSecurityRealm.User=U\u017Cytkownik \u2018{0}\u2019 +PAMSecurityRealm.CurrentUser=Aktualny u\u017Cytkownik +Permission.Permissions.Title=nd. diff --git a/core/src/main/resources/hudson/security/SecurityRealm/signup_pl.properties b/core/src/main/resources/hudson/security/SecurityRealm/signup_pl.properties new file mode 100644 index 0000000000..b8c44f57f3 --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/signup_pl.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2017, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ not\ supported==Rejestracja nie jest wspierana +This\ is\ not\ supported\ in\ the\ current\ configuration.=Niedost\u0119pne dla aktualnej konfiguracji. +Sign\ up=Zarejestruj diff --git a/core/src/main/resources/hudson/tasks/Messages_pl.properties b/core/src/main/resources/hudson/tasks/Messages_pl.properties index f685a33f96..649fb965a1 100644 --- a/core/src/main/resources/hudson/tasks/Messages_pl.properties +++ b/core/src/main/resources/hudson/tasks/Messages_pl.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2016, Damian Szczepanik +# Copyright (c) 2016-2017, Damian Szczepanik # # 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,10 @@ # THE SOFTWARE. BuildTrigger.NoProjectSpecified=Nie podano \u017Cadnego projektu BuildTrigger.NoSuchProject=Nie odnaleziono projektu ''{0}''. Czy chodzi\u0142o o ''{1}''? -ArtifactArchiver.NoIncludes=\ ArtifactArchiver.DisplayName=Zachowaj w artifactory -BuildTrigger.DisplayName=Uruchom inne zadania \ No newline at end of file +BuildTrigger.DisplayName=Uruchom inne zadania +Ant.DisplayName=Uruchom Ant'a +Ant.GlobalConfigNeeded=By\u0107 mo\u017Ce musisz skonfigurowa\u0107, gdzie jest instalacja Ant'a? +Ant.NotADirectory={0} nie jest katalogiem +Ant.NotAntDirectory={0} nie wygl\u0105da, aby by\u0142 katalogiem Ant'a +Ant.ProjectConfigNeeded=By\u0107 mo\u017Ce musisz skonfigurowa\u0107 projekt, aby wybra\u0107 jedn\u0105 z instalacji Ant'a? diff --git a/core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message_pl.properties b/core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message_pl.properties new file mode 100644 index 0000000000..3e6ce7eddf --- /dev/null +++ b/core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message_pl.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2017, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +pluginTitle={0} {1}: +coreTitle=Jenkins {0} i kluczowe biblioteki: + +blurb=Zosta\u0142y opublikowane ostrze\u017Cenia dla aktualnie zainstalowanych komponent\u00F3w: +more=Pozosta\u0142e ostrze\u017Cenia zosta\u0142y ukryte ze wzgl\u0119du na u\u017Cywan\u0105 konfiguracje bezpiecze\u0144stwa. + +pluginManager.link=Przejd\u017A do managera wtyczek +configureSecurity.link=Skonfiguruj, kt\u00F3re z ostrze\u017Ce\u0144 b\u0119d\u0105 wy\u015Bwietlane -- GitLab From b8f6246d7600a6e7d8b732da9c3153fb33f5ddde Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Fri, 11 Aug 2017 10:09:27 -0400 Subject: [PATCH 0127/1763] [JENKINS-41631] Enforce upper bound deps on Jenkins core (#2956) * [JENKINS-41631] Enforce upper bound deps on Jenkins core. * stapler 1.252 --- core/pom.xml | 14 +++++++++++++- pom.xml | 10 ++++++++-- test/pom.xml | 47 ++++++++++++++++++++++++++++++++++++++++++++--- war/pom.xml | 1 - 4 files changed, 65 insertions(+), 7 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index d315aff83a..c486ebd0bb 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -39,7 +39,7 @@ THE SOFTWARE. true - 1.250 + 1.252 2.5.6.SEC03 2.4.11 @@ -95,6 +95,12 @@ THE SOFTWARE. com.google.inject guice + + + com.google.guava + guava + + @@ -608,6 +614,12 @@ THE SOFTWARE. com.google.guava guava + + + com.google.code.findbugs + jsr305 + + com.google.guava diff --git a/pom.xml b/pom.xml index 633cf4bc6d..ae289b8da3 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ THE SOFTWARE. jenkins-jira 11.0.1 - 1.7.7 + 1.7.25 2.14 1.4.1 0.11 @@ -207,7 +207,7 @@ THE SOFTWARE. commons-logging commons-logging - 1.1.3 + 1.2 provided @@ -558,6 +558,11 @@ THE SOFTWARE. + + org.apache.maven.plugins + maven-enforcer-plugin + 3.0.0-M1 + org.eclipse.m2e @@ -690,6 +695,7 @@ THE SOFTWARE. 1.${java.level} + diff --git a/test/pom.xml b/test/pom.xml index 6598da0930..faa247b8b2 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -53,7 +53,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2.20 + 2.23 test @@ -85,6 +85,14 @@ THE SOFTWARE. commons-codec commons-codec + + com.google.inject + guice + + + org.apache.ant + ant + @@ -106,7 +114,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1.2-beta-4 + 1.6 test @@ -119,6 +127,12 @@ THE SOFTWARE. org.jvnet.mock-javamail mock-javamail 1.7 + + + javax.mail + mail + + org.hamcrest @@ -128,7 +142,7 @@ THE SOFTWARE. xalan xalan - 2.7.1 + 2.7.2 xml-apis @@ -156,6 +170,16 @@ THE SOFTWARE. org.reflections reflections 0.9.9 + + + com.google.guava + guava + + + com.google.code.findbugs + jsr305 + + org.codehaus.geb @@ -239,6 +263,23 @@ THE SOFTWARE. true + + org.apache.maven.plugins + maven-enforcer-plugin + + + + + org.apache.maven:maven-embedder + org.codehaus.plexus:plexus-classworlds + org.apache.maven:maven-core + org.apache.maven:maven-aether-provider + org.codehaus.plexus:plexus-utils + + + + + diff --git a/war/pom.xml b/war/pom.xml index 75eb49104e..ddec0dea84 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -571,7 +571,6 @@ THE SOFTWARE. org.apache.maven.plugins maven-enforcer-plugin - 1.3.1 enforce-versions -- GitLab From a975f7227ee58d3f274b82e3d9b615b297f30fa0 Mon Sep 17 00:00:00 2001 From: Andrew Bayer Date: Fri, 11 Aug 2017 11:03:42 -0400 Subject: [PATCH 0128/1763] [FIXED JENKINS-46082] API will include culprits again. --- .../main/java/hudson/model/AbstractBuild.java | 6 +++++ .../java/hudson/model/AbstractBuildTest.java | 25 ++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java index 9644c2c0de..c8674fb028 100644 --- a/core/src/main/java/hudson/model/AbstractBuild.java +++ b/core/src/main/java/hudson/model/AbstractBuild.java @@ -324,6 +324,12 @@ public abstract class AbstractBuild

      ,R extends Abs return culprits; } + @Override + @Exported + @Nonnull public Set getCulprits() { + return RunWithSCM.super.getCulprits(); + } + @Override public boolean shouldCalculateCulprits() { return getCulpritIds() == null; diff --git a/test/src/test/java/hudson/model/AbstractBuildTest.java b/test/src/test/java/hudson/model/AbstractBuildTest.java index df845c06ad..fad2b3dcb7 100644 --- a/test/src/test/java/hudson/model/AbstractBuildTest.java +++ b/test/src/test/java/hudson/model/AbstractBuildTest.java @@ -24,6 +24,7 @@ package hudson.model; import com.gargoylesoftware.htmlunit.Page; +import com.gargoylesoftware.htmlunit.WebResponse; import hudson.EnvVars; import hudson.Launcher; import hudson.model.queue.QueueTaskFuture; @@ -43,6 +44,8 @@ import static org.junit.Assert.*; import hudson.tasks.LogRotatorTest; import hudson.tasks.Recorder; import hudson.util.OneShotEvent; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.CaptureEnvironmentBuilder; @@ -53,6 +56,7 @@ import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.TestBuilder; import org.jvnet.hudson.test.TestExtension; import org.jvnet.hudson.test.UnstableBuilder; +import org.xml.sax.SAXException; /** * Unit tests of {@link AbstractBuild}. @@ -125,12 +129,31 @@ public class AbstractBuildTest { assertThat(rsp.getWebResponse().getContentAsString(), containsString(out)); } - private void assertCulprits(AbstractBuild b, String... expectedIds) { + private void assertCulprits(AbstractBuild b, String... expectedIds) throws IOException, SAXException { Set actual = new TreeSet<>(); for (User u : b.getCulprits()) { actual.add(u.getId()); } assertEquals(actual, new TreeSet<>(Arrays.asList(expectedIds))); + + if (expectedIds.length > 0) { + JenkinsRule.WebClient wc = j.createWebClient(); + WebResponse response = wc.goTo(b.getUrl() + "api/json?tree=culprits[id]", "application/json").getWebResponse(); + JSONObject json = JSONObject.fromObject(response.getContentAsString()); + + Object culpritsArray = json.get("culprits"); + assertNotNull(culpritsArray); + assertTrue(culpritsArray instanceof JSONArray); + Set fromApi = new TreeSet<>(); + for (Object o : ((JSONArray)culpritsArray).toArray()) { + assertTrue(o instanceof JSONObject); + Object id = ((JSONObject)o).get("id"); + if (id instanceof String) { + fromApi.add((String)id); + } + } + assertEquals(fromApi, new TreeSet<>(Arrays.asList(expectedIds))); + } } @Test -- GitLab From 86c28ea056236ee9125af7cc85b256cb65643a2f Mon Sep 17 00:00:00 2001 From: godfath3r Date: Sat, 12 Aug 2017 13:24:32 +0300 Subject: [PATCH 0129/1763] [JENKINS-42376] - Add executor name on Unexpected exception. (#2970) * Add executor name on Unexpected exception. * Add a colon after job name --- core/src/main/java/hudson/model/Executor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/Executor.java b/core/src/main/java/hudson/model/Executor.java index 279a1fa762..a9b428ffba 100644 --- a/core/src/main/java/hudson/model/Executor.java +++ b/core/src/main/java/hudson/model/Executor.java @@ -444,7 +444,7 @@ public class Executor extends Thread implements ModelObject { LOGGER.log(FINE, getName()+" interrupted",e); // die peacefully } catch(Exception | Error e) { - LOGGER.log(SEVERE, "Unexpected executor death", e); + LOGGER.log(SEVERE, getName()+": Unexpected executor death", e); } finally { if (asynchronousExecution == null) { finish2(); -- GitLab From 34bf393255bb603bb3b0fb921a41fc3916d16f42 Mon Sep 17 00:00:00 2001 From: Josiah Haswell Date: Sat, 12 Aug 2017 16:53:41 -0600 Subject: [PATCH 0130/1763] [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973) * Saving progress for review * Adding licenses * Adding integration test for headers * Removing proposal for refactoring to method objects * Removing whitespace changeswq * Fixing test --- core/src/main/java/hudson/model/View.java | 4 +++ test/src/test/java/hudson/model/ViewTest.java | 25 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index 375087c2da..f19ab9a605 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -1053,6 +1053,10 @@ public abstract class View extends AbstractModelObject implements AccessControll */ @Restricted(DoNotUse.class) public Categories doItemCategories(StaplerRequest req, StaplerResponse rsp, @QueryParameter String iconStyle) throws IOException, ServletException { + + rsp.addHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + rsp.addHeader("Pragma", "no-cache"); + rsp.addHeader("Expires", "0"); getOwner().checkPermission(Item.CREATE); Categories categories = new Categories(); int order = 0; diff --git a/test/src/test/java/hudson/model/ViewTest.java b/test/src/test/java/hudson/model/ViewTest.java index 56f99abdf0..7a70d87df2 100644 --- a/test/src/test/java/hudson/model/ViewTest.java +++ b/test/src/test/java/hudson/model/ViewTest.java @@ -25,6 +25,7 @@ package hudson.model; import com.gargoylesoftware.htmlunit.WebRequest; import com.gargoylesoftware.htmlunit.html.DomNodeUtil; +import com.gargoylesoftware.htmlunit.util.NameValuePair; import jenkins.model.Jenkins; import org.jvnet.hudson.test.Issue; import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; @@ -53,11 +54,15 @@ import hudson.util.HudsonIsLoading; import java.io.File; import java.io.IOException; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.LogRecord; import jenkins.model.ProjectNamingStrategy; import jenkins.security.NotReallyRoleSensitiveCallable; + +import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.*; import org.junit.Ignore; import org.junit.Rule; @@ -85,6 +90,26 @@ public class ViewTest { assertNotNull(j.createWebClient().goTo("").getWebResponse().getResponseHeaderValue("X-Hudson")); } + @Issue("JENKINS-43848") + @Test public void testNoCacheHeadersAreSet() throws Exception { + List responseHeaders = j.createWebClient() + .goTo("view/all/itemCategories", "application/json") + .getWebResponse() + .getResponseHeaders(); + + + final Map values = new HashMap<>(); + + for(NameValuePair p : responseHeaders) { + values.put(p.getName(), p.getValue()); + } + + String resp = values.get("Cache-Control"); + assertThat(resp, is("no-cache, no-store, must-revalidate")); + assertThat(values.get("Expires"), is("0")); + assertThat(values.get("Pragma"), is("no-cache")); + } + /** * Creating two views with the same name. */ -- GitLab From c772b373a41ba03fd16106d50cabbf3482cde633 Mon Sep 17 00:00:00 2001 From: pbe-axelor Date: Mon, 14 Aug 2017 12:16:36 +0200 Subject: [PATCH 0131/1763] Fixed French translation Use unicode characters in build_with_parameters french translation. --- core/src/main/resources/jenkins/model/Messages_fr.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/jenkins/model/Messages_fr.properties b/core/src/main/resources/jenkins/model/Messages_fr.properties index 580e44c5b4..884604d9fa 100644 --- a/core/src/main/resources/jenkins/model/Messages_fr.properties +++ b/core/src/main/resources/jenkins/model/Messages_fr.properties @@ -47,7 +47,7 @@ Mailer.Localhost.Error=Veuillez configurer un nom d''h\u00f4te valide, au lieu d PatternProjectNamingStrategy.DisplayName=Pattern PatternProjectNamingStrategy.NamePatternRequired=Le nom de pattern est obligatoire PatternProjectNamingStrategy.NamePatternInvalidSyntax=La syntaxe de l''expression r\u00e9guli\u00e8re est invalide. -ParameterizedJobMixIn.build_with_parameters=Lancer un build avec des paramètres +ParameterizedJobMixIn.build_with_parameters=Lancer un build avec des param\u00e8tres ParameterizedJobMixIn.build_now=Lancer un build BlockedBecauseOfBuildInProgress.shortDescription=Le build #{0} est d\u00e9j\u00e0 en cours {1} BlockedBecauseOfBuildInProgress.ETA=\ (fin pr\u00e9vue \u00e0 : {0}) -- GitLab From b216af3ab2e8366a8b141df92372ff4405b4d89d Mon Sep 17 00:00:00 2001 From: joyyc Date: Mon, 14 Aug 2017 22:50:01 +0800 Subject: [PATCH 0132/1763] Get rid of excess semicolons --- core/src/main/java/hudson/model/Run.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 8cf50d2fb4..c467439347 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -2153,7 +2153,6 @@ public abstract class Run ,RunT extends Run Date: Mon, 14 Aug 2017 15:40:46 -0400 Subject: [PATCH 0133/1763] javadoc:javadoc could fail under some circumstances. --- Jenkinsfile | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index bcced2b016..3599b383fc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,7 @@ for(i = 0; i < buildTypes.size(); i++) { "MAVEN_OPTS=-Xmx1536m -Xms512m"]) { // Actually run Maven! // -Dmaven.repo.local=… tells Maven to create a subdir in the temporary directory for the local Maven repository - def mvnCmd = "mvn -Pdebug -U clean install javadoc:javadoc ${runTests ? '-Dmaven.test.failure.ignore' : '-DskipTests'} -V -B -Dmaven.repo.local=${pwd tmp: true}/m2repo -s settings-azure.xml -e" + def mvnCmd = "mvn -Pdebug -U javadoc:javadoc clean install ${runTests ? '-Dmaven.test.failure.ignore' : '-DskipTests'} -V -B -Dmaven.repo.local=${pwd tmp: true}/m2repo -s settings-azure.xml -e" if(isUnix()) { sh mvnCmd sh 'test `git status --short | tee /dev/stderr | wc --bytes` -eq 0' diff --git a/pom.xml b/pom.xml index ae289b8da3..1747061576 100644 --- a/pom.xml +++ b/pom.xml @@ -723,7 +723,7 @@ THE SOFTWARE. org.codehaus.mojo extra-enforcer-rules - 1.0-beta-2 + 1.0-beta-6 -- GitLab From df9c18548326a0a8f1eba2962c1b766131aa29e5 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 15 Aug 2017 09:03:38 -0700 Subject: [PATCH 0134/1763] [maven-release-plugin] prepare release jenkins-2.74 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 36dfadd08c..3b61ec7dd4 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.74-SNAPSHOT + 2.74 cli diff --git a/core/pom.xml b/core/pom.xml index c486ebd0bb..a554ab35c4 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.74-SNAPSHOT + 2.74 jenkins-core diff --git a/pom.xml b/pom.xml index 1747061576..e912bb7f48 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.74-SNAPSHOT + 2.74 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.74 @@ -695,7 +695,7 @@ THE SOFTWARE. 1.${java.level} - + diff --git a/test/pom.xml b/test/pom.xml index faa247b8b2..0b0fe9a07a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.74-SNAPSHOT + 2.74 test diff --git a/war/pom.xml b/war/pom.xml index ddec0dea84..514e088dab 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.74-SNAPSHOT + 2.74 jenkins-war -- GitLab From ea77fdc0c59efe12cfc8875ef1289fbc27827200 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 15 Aug 2017 09:03:39 -0700 Subject: [PATCH 0135/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 3b61ec7dd4..b98eaaa433 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.74 + 2.75-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index a554ab35c4..78ddda7daa 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.74 + 2.75-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index e912bb7f48..7488ff1f29 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.74 + 2.75-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.74 + HEAD diff --git a/test/pom.xml b/test/pom.xml index 0b0fe9a07a..9d12833b20 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.74 + 2.75-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 514e088dab..4e25ba2013 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.74 + 2.75-SNAPSHOT jenkins-war -- GitLab From 81e52b83d5caefd9a9637b47787baf9cfddb0421 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Wed, 16 Aug 2017 18:36:20 -0700 Subject: [PATCH 0136/1763] [maven-release-plugin] prepare release jenkins-2.60.3 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 17569e230d..9df5727068 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.60.3-SNAPSHOT + 2.60.3 cli diff --git a/core/pom.xml b/core/pom.xml index 66c9d7a021..8d994d1915 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.3-SNAPSHOT + 2.60.3 jenkins-core diff --git a/pom.xml b/pom.xml index 27b8adb594..aeff01651a 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.3-SNAPSHOT + 2.60.3 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.60.3 diff --git a/test/pom.xml b/test/pom.xml index a5dfe2a8e6..35198862f0 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.3-SNAPSHOT + 2.60.3 test diff --git a/war/pom.xml b/war/pom.xml index 7011c89a6e..4adb3b0156 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.3-SNAPSHOT + 2.60.3 jenkins-war -- GitLab From 73ce3d74de0565ee38e41adc1a4b51c902a9163a Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Wed, 16 Aug 2017 18:36:21 -0700 Subject: [PATCH 0137/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 9df5727068..990dc5d0b0 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.60.3 + 2.60.4-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 8d994d1915..5248d7f278 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.3 + 2.60.4-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index aeff01651a..21ecf564ea 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.3 + 2.60.4-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.60.3 + HEAD diff --git a/test/pom.xml b/test/pom.xml index 35198862f0..0f494e6748 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.3 + 2.60.4-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 4adb3b0156..cf1363a22f 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.60.3 + 2.60.4-SNAPSHOT jenkins-war -- GitLab From ccb3e4cd501b14f617979117ea31fc21f07b972b Mon Sep 17 00:00:00 2001 From: bale836 Date: Sat, 19 Aug 2017 21:28:48 +0800 Subject: [PATCH 0138/1763] [JENKINS-46288] - Fix ProxyConfiguration validation for NTLM authentication (#2984) /** * Constructor. * @param userName The user name. This should not include the domain to authenticate with. * For example: "user" is correct whereas "DOMAIN\\user" is not. * @param password The password. * @param host The host the authentication request is originating from. Essentially, the * computer name for this machine. * @param domain The domain to authenticate within. */ --- core/src/main/java/hudson/ProxyConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/ProxyConfiguration.java b/core/src/main/java/hudson/ProxyConfiguration.java index 7c2809c53f..3baea805d4 100644 --- a/core/src/main/java/hudson/ProxyConfiguration.java +++ b/core/src/main/java/hudson/ProxyConfiguration.java @@ -396,7 +396,7 @@ public final class ProxyConfiguration extends AbstractDescribableImpl= 0){ final String domain = userName.substring(0, userName.indexOf('\\')); final String user = userName.substring(userName.indexOf('\\') + 1); - return new NTCredentials(user, Secret.fromString(password).getPlainText(), domain, ""); + return new NTCredentials(user, Secret.fromString(password).getPlainText(), "", domain); } else { return new UsernamePasswordCredentials(userName, Secret.fromString(password).getPlainText()); } -- GitLab From efdd52e9e78cc057ea49a7d338ee575d131c1959 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 19 Aug 2017 18:23:31 +0200 Subject: [PATCH 0139/1763] [JENKINS-45841] - Disable JNLP/JNLP2/CLI protocols on new installations (#2950) * [JENKINS-45841] - Disable JNLP/JNLP2/CLI protocols in the Setup Wizard * [JENKINS-45841] - Implement deprecation data model for Agent protocols. WiP * [JENKINS-45841] - DeprecationCause is YAGNI, extend UI and document deprecated protocols * [JENKINS-45841] - Fix the layouts * [JENKINS-45841] - Add administrative monitor for deprecated protocols * [JENKINS-45841] - Added Initializer check, polished the warning message * [JENKINS-45841] - Add tests * [JENKINS-45841] - Replace JNLP protocol links by jenkins.io redirects * [JENKINS-45841] - Address comments from @jglick * [JENKINS-45841] - Initializer checks status when Jenkins instance is not ready --- .../src/main/java/hudson/cli/CliProtocol.java | 7 +- .../main/java/hudson/cli/CliProtocol2.java | 8 +- core/src/main/java/jenkins/AgentProtocol.java | 22 +++ .../java/jenkins/install/SetupWizard.java | 10 ++ .../DeprecatedAgentProtocolMonitor.java | 113 +++++++++++++ .../slaves/JnlpSlaveAgentProtocol.java | 5 + .../slaves/JnlpSlaveAgentProtocol2.java | 5 + .../slaves/JnlpSlaveAgentProtocol3.java | 5 + .../cli/CliProtocol/deprecationCause.jelly | 4 + .../CliProtocol/deprecationCause.properties | 2 + .../cli/CliProtocol2/deprecationCause.jelly | 4 + .../CliProtocol2/deprecationCause.properties | 3 + .../GlobalSecurityConfiguration/index.groovy | 5 + .../message.jelly | 7 + .../message.properties | 4 + .../deprecationCause.jelly | 4 + .../deprecationCause.properties | 2 + .../deprecationCause.jelly | 5 + .../deprecationCause.properties | 3 + .../deprecationCause.jelly | 5 + .../deprecationCause.properties | 1 + .../description.properties | 5 +- .../description_de.properties | 4 +- .../jenkins/slaves/Messages.properties | 7 +- .../test/java/jenkins/AgentProtocolTest.java | 156 ++++++++++++++++++ .../java/jenkins/install/SetupWizardTest.java | 15 ++ .../config.xml | 42 +++++ .../jenkins.CLI.xml | 4 + .../config.xml | 39 +++++ .../config.xml | 45 +++++ 30 files changed, 529 insertions(+), 12 deletions(-) create mode 100644 core/src/main/java/jenkins/slaves/DeprecatedAgentProtocolMonitor.java create mode 100644 core/src/main/resources/hudson/cli/CliProtocol/deprecationCause.jelly create mode 100644 core/src/main/resources/hudson/cli/CliProtocol/deprecationCause.properties create mode 100644 core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause.jelly create mode 100644 core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause.properties create mode 100644 core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.jelly create mode 100644 core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause.jelly create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause.jelly create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause.jelly create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause.properties create mode 100644 test/src/test/java/jenkins/AgentProtocolTest.java create mode 100644 test/src/test/resources/jenkins/AgentProtocolTest/testShouldDisableCLIProtocolsWhenCLIisDisabled/config.xml create mode 100644 test/src/test/resources/jenkins/AgentProtocolTest/testShouldDisableCLIProtocolsWhenCLIisDisabled/jenkins.CLI.xml create mode 100644 test/src/test/resources/jenkins/AgentProtocolTest/testShouldNotDisableProtocolsForMigratedInstances/config.xml create mode 100644 test/src/test/resources/jenkins/AgentProtocolTest/testShouldNotOverrideUserConfiguration/config.xml diff --git a/core/src/main/java/hudson/cli/CliProtocol.java b/core/src/main/java/hudson/cli/CliProtocol.java index cdf25b033f..58b5c95a64 100644 --- a/core/src/main/java/hudson/cli/CliProtocol.java +++ b/core/src/main/java/hudson/cli/CliProtocol.java @@ -47,12 +47,17 @@ public class CliProtocol extends AgentProtocol { return jenkins.CLI.get().isEnabled() ? "CLI-connect" : null; } + @Override + public boolean isDeprecated() { + return true; + } + /** * {@inheritDoc} */ @Override public String getDisplayName() { - return "Jenkins CLI Protocol/1"; + return "Jenkins CLI Protocol/1 (deprecated, unencrypted)"; } @Override diff --git a/core/src/main/java/hudson/cli/CliProtocol2.java b/core/src/main/java/hudson/cli/CliProtocol2.java index e7d0bad71f..9fca4055fb 100644 --- a/core/src/main/java/hudson/cli/CliProtocol2.java +++ b/core/src/main/java/hudson/cli/CliProtocol2.java @@ -38,12 +38,18 @@ public class CliProtocol2 extends CliProtocol { return false; } + @Override + public boolean isDeprecated() { + // We do not recommend it though it may be required for Remoting CLI + return true; + } + /** * {@inheritDoc} */ @Override public String getDisplayName() { - return "Jenkins CLI Protocol/2"; + return "Jenkins CLI Protocol/2 (deprecated)"; } @Override diff --git a/core/src/main/java/jenkins/AgentProtocol.java b/core/src/main/java/jenkins/AgentProtocol.java index 93140b71c1..f4917b3996 100644 --- a/core/src/main/java/jenkins/AgentProtocol.java +++ b/core/src/main/java/jenkins/AgentProtocol.java @@ -8,6 +8,8 @@ import hudson.TcpSlaveAgentListener; import java.io.IOException; import java.net.Socket; import java.util.Set; +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; import jenkins.model.Jenkins; /** @@ -18,6 +20,15 @@ import jenkins.model.Jenkins; * Implementations of this extension point is singleton, and its {@link #handle(Socket)} method * gets invoked concurrently whenever a new connection comes in. * + *

      Extending UI

      + *
      + *
      description.jelly
      + *
      Optional protocol description
      + *
      deprecationCause.jelly
      + *
      Optional. If the protocol is marked as {@link #isDeprecated()}, + * clarifies the deprecation reason and provides extra documentation links
      + *
      + * * @author Kohsuke Kawaguchi * @since 1.467 * @see TcpSlaveAgentListener @@ -53,6 +64,16 @@ public abstract class AgentProtocol implements ExtensionPoint { public boolean isRequired() { return false; } + + /** + * Checks if the protocol is deprecated. + * + * @since TODO + */ + public boolean isDeprecated() { + return false; + } + /** * Protocol name. * @@ -86,6 +107,7 @@ public abstract class AgentProtocol implements ExtensionPoint { return ExtensionList.lookup(AgentProtocol.class); } + @CheckForNull public static AgentProtocol of(String protocolName) { for (AgentProtocol p : all()) { String n = p.getName(); diff --git a/core/src/main/java/jenkins/install/SetupWizard.java b/core/src/main/java/jenkins/install/SetupWizard.java index 992ce935a7..0f04f903db 100644 --- a/core/src/main/java/jenkins/install/SetupWizard.java +++ b/core/src/main/java/jenkins/install/SetupWizard.java @@ -52,6 +52,8 @@ import java.net.HttpRetryException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; +import java.util.Arrays; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import jenkins.CLI; @@ -62,6 +64,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +import org.jenkinsci.remoting.engine.JnlpProtocol4Handler; import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.stapler.interceptor.RequirePOST; @@ -127,6 +130,13 @@ public class SetupWizard extends PageDecorator { // Disable CLI over Remoting CLI.get().setEnabled(false); + // Disable old Non-Encrypted protocols () + HashSet newProtocols = new HashSet<>(jenkins.getAgentProtocols()); + newProtocols.removeAll(Arrays.asList( + "JNLP2-connect", "JNLP-connect", "CLI-connect" + )); + jenkins.setAgentProtocols(newProtocols); + // require a crumb issuer jenkins.setCrumbIssuer(new DefaultCrumbIssuer(false)); diff --git a/core/src/main/java/jenkins/slaves/DeprecatedAgentProtocolMonitor.java b/core/src/main/java/jenkins/slaves/DeprecatedAgentProtocolMonitor.java new file mode 100644 index 0000000000..096468e7b7 --- /dev/null +++ b/core/src/main/java/jenkins/slaves/DeprecatedAgentProtocolMonitor.java @@ -0,0 +1,113 @@ +/* + * The MIT License + * + * Copyright (c) 2017 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION 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 jenkins.slaves; + +import hudson.Extension; +import hudson.init.InitMilestone; +import hudson.init.Initializer; +import hudson.model.AdministrativeMonitor; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.annotation.CheckForNull; +import jenkins.AgentProtocol; +import jenkins.model.Jenkins; +import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; + + +/** + * Monitors enabled protocols and warns if an {@link AgentProtocol} is deprecated. + * + * @author Oleg Nenashev + * @since TODO + * @see AgentProtocol + */ +@Extension +@Symbol("deprecatedAgentProtocol") +@Restricted(NoExternalUse.class) +public class DeprecatedAgentProtocolMonitor extends AdministrativeMonitor { + + private static final Logger LOGGER = Logger.getLogger(DeprecatedAgentProtocolMonitor.class.getName()); + + public DeprecatedAgentProtocolMonitor() { + super(); + } + + @Override + public String getDisplayName() { + return Messages.DeprecatedAgentProtocolMonitor_displayName(); + } + + @Override + public boolean isActivated() { + final Set agentProtocols = Jenkins.getInstance().getAgentProtocols(); + for (String name : agentProtocols) { + AgentProtocol pr = AgentProtocol.of(name); + if (pr != null && pr.isDeprecated()) { + return true; + } + } + return false; + } + + @Restricted(NoExternalUse.class) + public String getDeprecatedProtocols() { + String res = getDeprecatedProtocolsString(); + return res != null ? res : "N/A"; + } + + @CheckForNull + public static String getDeprecatedProtocolsString() { + final List deprecatedProtocols = new ArrayList<>(); + final Set agentProtocols = Jenkins.getInstance().getAgentProtocols(); + for (String name : agentProtocols) { + AgentProtocol pr = AgentProtocol.of(name); + if (pr != null && pr.isDeprecated()) { + deprecatedProtocols.add(name); + } + } + if (deprecatedProtocols.isEmpty()) { + return null; + } + return StringUtils.join(deprecatedProtocols, ','); + } + + @Initializer(after = InitMilestone.JOB_LOADED) + @Restricted(NoExternalUse.class) + public static void initializerCheck() { + String protocols = getDeprecatedProtocolsString(); + if(protocols != null) { + LOGGER.log(Level.WARNING, "This Jenkins instance uses deprecated Remoting protocols: {0}" + + "It may impact stability of the instance. " + + "If newer protocol versions are supported by all system components " + + "(agents, CLI and other clients), " + + "it is highly recommended to disable the deprecated protocols.", protocols); + } + } +} diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java index e351b93945..6c33950690 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java @@ -79,6 +79,11 @@ public class JnlpSlaveAgentProtocol extends AgentProtocol { return OPT_IN; } + @Override + public boolean isDeprecated() { + return true; + } + @Override public String getName() { return handler.isEnabled() ? handler.getName() : null; diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java index 66bc07dc9d..24aca6696f 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java @@ -53,6 +53,11 @@ public class JnlpSlaveAgentProtocol2 extends AgentProtocol { return false; } + @Override + public boolean isDeprecated() { + return true; + } + /** * {@inheritDoc} */ diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java index d996fc0aab..d216f628dd 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java @@ -67,6 +67,11 @@ public class JnlpSlaveAgentProtocol3 extends AgentProtocol { return Messages.JnlpSlaveAgentProtocol3_displayName(); } + @Override + public boolean isDeprecated() { + return true; + } + @Override public void handle(Socket socket) throws IOException, InterruptedException { handler.handle(socket, diff --git a/core/src/main/resources/hudson/cli/CliProtocol/deprecationCause.jelly b/core/src/main/resources/hudson/cli/CliProtocol/deprecationCause.jelly new file mode 100644 index 0000000000..9704ac6557 --- /dev/null +++ b/core/src/main/resources/hudson/cli/CliProtocol/deprecationCause.jelly @@ -0,0 +1,4 @@ + + + ${%message} + diff --git a/core/src/main/resources/hudson/cli/CliProtocol/deprecationCause.properties b/core/src/main/resources/hudson/cli/CliProtocol/deprecationCause.properties new file mode 100644 index 0000000000..c46f5db25d --- /dev/null +++ b/core/src/main/resources/hudson/cli/CliProtocol/deprecationCause.properties @@ -0,0 +1,2 @@ +message=This protocol is an obsolete protocol, which has been replaced by CLI2-connect. \ + It is also not encrypted. diff --git a/core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause.jelly b/core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause.jelly new file mode 100644 index 0000000000..9704ac6557 --- /dev/null +++ b/core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause.jelly @@ -0,0 +1,4 @@ + + + ${%message} + diff --git a/core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause.properties b/core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause.properties new file mode 100644 index 0000000000..8effec1404 --- /dev/null +++ b/core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause.properties @@ -0,0 +1,3 @@ +message=Remoting-based CLI is deprecated and not recommended due to the security reasons. \ + It is recommended to disable this protocol on the instance. \ + if you need Remoting CLI on your instance, this protocol has to be enabled. diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy index 519143e4fd..9d1b0917e9 100644 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy @@ -72,6 +72,11 @@ l.layout(norefresh:true, permission:app.ADMINISTER, title:my.displayName, csscla td(colspan:"2"); td(class:"setting-description"){ st.include(from:p, page: "description", optional:true); + if (p.deprecated) { + br() + text(b(_("Deprecated. "))) + st.include(from:p, page: "deprecationCause", optional:true); + } } td(); } diff --git a/core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.jelly b/core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.jelly new file mode 100644 index 0000000000..3be67e2a95 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.jelly @@ -0,0 +1,7 @@ + + +
      + ${%blurb(it.deprecatedProtocols)} + ${%Protocol Configuration} +
      +
      diff --git a/core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.properties b/core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.properties new file mode 100644 index 0000000000..b40c0b6cd6 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.properties @@ -0,0 +1,4 @@ +blurb=This Jenkins instance uses deprecated protocols: {0}. \ + It may impact stability of the instance. \ + If newer protocol versions are supported by all system components (agents, CLI and other clients), \ + it is highly recommended to disable the deprecated protocols. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause.jelly b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause.jelly new file mode 100644 index 0000000000..9704ac6557 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause.jelly @@ -0,0 +1,4 @@ + + + ${%message} + diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause.properties new file mode 100644 index 0000000000..a50d4246fd --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause.properties @@ -0,0 +1,2 @@ +message=This protocol is an obsolete protocol, which has been replaced by JNLP2-connect. \ + It is also not encrypted. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause.jelly b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause.jelly new file mode 100644 index 0000000000..b9c22be05f --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause.jelly @@ -0,0 +1,5 @@ + + + ${%message} + ${%JNLP2 Protocol Errata} + diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause.properties new file mode 100644 index 0000000000..97e8478517 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause.properties @@ -0,0 +1,3 @@ +message=This protocol has known stability issues, and it is replaced by JNLP4. \ + It is also not encrypted. \ + See more information in the protocol Errata. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause.jelly b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause.jelly new file mode 100644 index 0000000000..d9089b2f7d --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause.jelly @@ -0,0 +1,5 @@ + + + ${%This protocol is unstable. See the protocol documentation for more info.} + ${%JNLP3 Protocol Errata} + diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause.properties @@ -0,0 +1 @@ + diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description.properties index 3e5d49de58..ec1f6a2c89 100644 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description.properties +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description.properties @@ -1,4 +1 @@ -summary=Extends the version 2 protocol by adding basic encryption but requires a thread per client. \ - This protocol falls back to Java Web Start Agent Protocol/2 (unencrypted) when it can't create a secure connection. \ - This protocol is not recommended. \ - Use Java Web Start Agent Protocol/4 instead. +summary=Extends the version 2 protocol by adding basic encryption but requires a thread per client. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description_de.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description_de.properties index 02dbda7508..6280077683 100644 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description_de.properties +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description_de.properties @@ -20,6 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -summary=Erweitert das Protokoll Version 2 um einfache Verschl\u00FCsselung, aber erfordert einen Thread pro Client. \ - Dieses Protokoll f\u00E4llt auf Protokoll-Version 2 (unverschl\u00FCsselt) zur\u00FCck, wenn keine sichere Verbindung hergestellt werden kann. \ - Dieses Protokoll sollte nicht verwendet werden, stattdessen sollte Protokoll-Version 4 verwendet werden. +summary=Erweitert das Protokoll Version 2 um einfache Verschl\u00fcsselung, aber erfordert einen Thread pro Client. diff --git a/core/src/main/resources/jenkins/slaves/Messages.properties b/core/src/main/resources/jenkins/slaves/Messages.properties index 6cdab92614..017247dbbd 100644 --- a/core/src/main/resources/jenkins/slaves/Messages.properties +++ b/core/src/main/resources/jenkins/slaves/Messages.properties @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -JnlpSlaveAgentProtocol.displayName=Java Web Start Agent Protocol/1 (unencrypted) -JnlpSlaveAgentProtocol2.displayName=Java Web Start Agent Protocol/2 (unencrypted) -JnlpSlaveAgentProtocol3.displayName=Java Web Start Agent Protocol/3 (basic encryption) +JnlpSlaveAgentProtocol.displayName=Java Web Start Agent Protocol/1 (deprecated, unencrypted) +JnlpSlaveAgentProtocol2.displayName=Java Web Start Agent Protocol/2 (deprecated, unencrypted) +JnlpSlaveAgentProtocol3.displayName=Java Web Start Agent Protocol/3 (deprecated, basic encryption) JnlpSlaveAgentProtocol4.displayName=Java Web Start Agent Protocol/4 (TLS encryption) +DeprecatedAgentProtocolMonitor.displayName=Deprecated Agent Protocol Monitor diff --git a/test/src/test/java/jenkins/AgentProtocolTest.java b/test/src/test/java/jenkins/AgentProtocolTest.java new file mode 100644 index 0000000000..7deb30e746 --- /dev/null +++ b/test/src/test/java/jenkins/AgentProtocolTest.java @@ -0,0 +1,156 @@ +/* + * The MIT License + * + * Copyright (c) 2017 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION 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 jenkins; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import javax.annotation.CheckForNull; +import jenkins.install.SetupWizardTest; +import jenkins.model.Jenkins; +import jenkins.slaves.DeprecatedAgentProtocolMonitor; +import org.apache.commons.collections.ListUtils; +import org.apache.commons.lang.StringUtils; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.nullValue; +import org.hamcrest.core.StringContains; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.recipes.LocalData; + +/** + * Tests for {@link AgentProtocol}. + * + * @author Oleg Nenashev + */ +public class AgentProtocolTest { + + @Rule + public JenkinsRule j = new JenkinsRule(); + + /** + * Checks that Jenkins does not disable agent protocols by default after the upgrade. + * + * @throws Exception Test failure + * @see SetupWizardTest#shouldDisableUnencryptedProtocolsByDefault() + */ + @Test + @LocalData + @Issue("JENKINS-45841") + public void testShouldNotDisableProtocolsForMigratedInstances() throws Exception { + assertProtocols(true, "Legacy Non-encrypted JNLP/CLI protocols should be enabled", + "JNLP-connect", "JNLP2-connect", "JNLP4-connect", "CLI-connect"); + assertProtocols(true, "Default encrypted protocols should be enabled", "JNLP4-connect", "CLI2-connect"); + assertProtocols(true, "Protocol should be enabled due to CLI settings", "CLI2-connect"); + assertProtocols(false, "JNLP3-connect protocol should be disabled by default", "JNLP3-connect"); + assertMonitorTriggered("JNLP-connect", "JNLP2-connect", "CLI-connect"); + } + + @Test + @LocalData + @Issue("JENKINS-45841") + public void testShouldNotOverrideUserConfiguration() throws Exception { + assertEnabled("CLI-connect", "JNLP-connect", "JNLP3-connect"); + assertDisabled("CLI2-connect", "JNLP2-connect", "JNLP4-connect"); + assertProtocols(true, "System protocols should be always enabled", "Ping"); + assertMonitorTriggered("JNLP-connect", "JNLP3-connect", "CLI-connect"); + } + + @Test + @LocalData + public void testShouldDisableCLIProtocolsWhenCLIisDisabled() throws Exception { + assertProtocols(false, "CLI is forcefully disabled, protocols should be blocked", + "CLI-connect", "CLI2-connect"); + assertEnabled("JNLP3-connect"); + assertMonitorTriggered("JNLP3-connect"); + } + + private void assertEnabled(String ... protocolNames) throws AssertionError { + assertProtocols(true, null, protocolNames); + } + + private void assertDisabled(String ... protocolNames) throws AssertionError { + assertProtocols(false, null, protocolNames); + } + + private void assertProtocols(boolean shouldBeEnabled, @CheckForNull String why, String ... protocolNames) { + assertProtocols(j.jenkins, shouldBeEnabled, why, protocolNames); + } + + public static void assertProtocols(Jenkins jenkins, boolean shouldBeEnabled, @CheckForNull String why, String ... protocolNames) + throws AssertionError { + Set agentProtocols = jenkins.getAgentProtocols(); + List failedChecks = new ArrayList<>(); + for (String protocol : protocolNames) { + if (shouldBeEnabled && !(agentProtocols.contains(protocol))) { + failedChecks.add(protocol); + } + if (!shouldBeEnabled && agentProtocols.contains(protocol)) { + failedChecks.add(protocol); + } + } + + if (!failedChecks.isEmpty()) { + String message = String.format("Protocol(s) are not %s: %s. %sEnabled protocols: %s", + shouldBeEnabled ? "enabled" : "disabled", + StringUtils.join(failedChecks, ','), + why != null ? "Reason: " + why + ". " : "", + StringUtils.join(agentProtocols, ',')); + fail(message); + } + } + + public static void assertMonitorNotActive() { + DeprecatedAgentProtocolMonitor monitor = new DeprecatedAgentProtocolMonitor(); + assertFalse("Deprecated Agent Protocol Monitor should not be activated", monitor.isActivated()); + } + + public static void assertMonitorTriggered(String ... expectedProtocols) { + DeprecatedAgentProtocolMonitor monitor = new DeprecatedAgentProtocolMonitor(); + assertTrue("Deprecated Agent Protocol Monitor should be activated", monitor.isActivated()); + String protocolList = monitor.getDeprecatedProtocols(); + assertThat("List of the protocols should not be null", protocolList, not(nullValue())); + + List failedChecks = new ArrayList<>(); + for(String protocol : expectedProtocols) { + if (!protocolList.contains(protocol)) { + failedChecks.add(protocol); + } + } + + if (!failedChecks.isEmpty()) { + String message = String.format( + "Protocol(s) should in the deprecated protocol list: %s. Current list: %s", + StringUtils.join(expectedProtocols, ','), protocolList); + fail(message); + } + } +} diff --git a/test/src/test/java/jenkins/install/SetupWizardTest.java b/test/src/test/java/jenkins/install/SetupWizardTest.java index 469b81661d..03dbc0df74 100644 --- a/test/src/test/java/jenkins/install/SetupWizardTest.java +++ b/test/src/test/java/jenkins/install/SetupWizardTest.java @@ -32,6 +32,9 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; +import java.util.Set; +import jenkins.AgentProtocolTest; +import jenkins.slaves.DeprecatedAgentProtocolMonitor; import org.apache.commons.io.FileUtils; import static org.hamcrest.Matchers.*; import org.junit.Before; @@ -39,6 +42,7 @@ import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.JenkinsRule; import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertFalse; import org.junit.rules.TemporaryFolder; import org.jvnet.hudson.test.Issue; @@ -111,6 +115,17 @@ public class SetupWizardTest { wc.assertFails("setupWizard/completeInstall", 403); } + @Test + @Issue("JENKINS-45841") + public void shouldDisableUnencryptedProtocolsByDefault() throws Exception { + AgentProtocolTest.assertProtocols(j.jenkins, true, + "Encrypted JNLP4-protocols protocol should be enabled", "JNLP4-connect"); + AgentProtocolTest.assertProtocols(j.jenkins, false, + "Non-encrypted JNLP protocols should be disabled by default", + "JNLP-connect", "JNLP2-connect", "CLI-connect"); + AgentProtocolTest.assertMonitorNotActive(); + } + private String jsonRequest(JenkinsRule.WebClient wc, String path) throws Exception { // Try to call the actions method to retrieve the data final Page res; diff --git a/test/src/test/resources/jenkins/AgentProtocolTest/testShouldDisableCLIProtocolsWhenCLIisDisabled/config.xml b/test/src/test/resources/jenkins/AgentProtocolTest/testShouldDisableCLIProtocolsWhenCLIisDisabled/config.xml new file mode 100644 index 0000000000..e21f1873e8 --- /dev/null +++ b/test/src/test/resources/jenkins/AgentProtocolTest/testShouldDisableCLIProtocolsWhenCLIisDisabled/config.xml @@ -0,0 +1,42 @@ + + + + 1.0 + 2 + NORMAL + true + + + false + + ${ITEM_ROOTDIR}/workspace + ${ITEM_ROOTDIR}/builds + + + + + + 0 + + + + all + false + false + + + + all + 0 + + CLI-connect + CLI2-connect + JNLP3-connect + + + JNLP4-connect + + + + + \ No newline at end of file diff --git a/test/src/test/resources/jenkins/AgentProtocolTest/testShouldDisableCLIProtocolsWhenCLIisDisabled/jenkins.CLI.xml b/test/src/test/resources/jenkins/AgentProtocolTest/testShouldDisableCLIProtocolsWhenCLIisDisabled/jenkins.CLI.xml new file mode 100644 index 0000000000..7a90194462 --- /dev/null +++ b/test/src/test/resources/jenkins/AgentProtocolTest/testShouldDisableCLIProtocolsWhenCLIisDisabled/jenkins.CLI.xml @@ -0,0 +1,4 @@ + + + false + \ No newline at end of file diff --git a/test/src/test/resources/jenkins/AgentProtocolTest/testShouldNotDisableProtocolsForMigratedInstances/config.xml b/test/src/test/resources/jenkins/AgentProtocolTest/testShouldNotDisableProtocolsForMigratedInstances/config.xml new file mode 100644 index 0000000000..16c467b807 --- /dev/null +++ b/test/src/test/resources/jenkins/AgentProtocolTest/testShouldNotDisableProtocolsForMigratedInstances/config.xml @@ -0,0 +1,39 @@ + + + + 1.0 + 2 + NORMAL + true + + + false + + ${ITEM_ROOTDIR}/workspace + ${ITEM_ROOTDIR}/builds + + + + + + 0 + + + + all + false + false + + + + all + 0 + + + + + \ No newline at end of file diff --git a/test/src/test/resources/jenkins/AgentProtocolTest/testShouldNotOverrideUserConfiguration/config.xml b/test/src/test/resources/jenkins/AgentProtocolTest/testShouldNotOverrideUserConfiguration/config.xml new file mode 100644 index 0000000000..921c61d890 --- /dev/null +++ b/test/src/test/resources/jenkins/AgentProtocolTest/testShouldNotOverrideUserConfiguration/config.xml @@ -0,0 +1,45 @@ + + + + 1.0 + 2 + NORMAL + true + + + false + + ${ITEM_ROOTDIR}/workspace + ${ITEM_ROOTDIR}/builds + + + + + + 0 + + + + all + false + false + + + + all + 0 + + + CLI-connect + JNLP-connect + JNLP3-connect + + + JNLP4-connect + JNLP2-connect + CLI2-connect + + + + + \ No newline at end of file -- GitLab From 100202cf03db1fc4a0a7365f4ea585ed6ebadbcc Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 19 Aug 2017 21:50:17 +0200 Subject: [PATCH 0140/1763] [JENKINS-46282] - Update WinSW from 2.1.0 to 2.1.2 (#2987) * [JENKINS-46282] - Update WinSW from 2.1.0 to 2.1.2 Fixes [JENKINS-46282](https://issues.jenkins-ci.org/browse/JENKINS-46282), which impacts the default installation. Also updates Parent POM in the module Full list of fixes: - JENKINS-46282 - Runaway Process Killer extension was not using the stopTimeoutMs parameter - [WinSW Issue #206](https://github.com/kohsuke/winsw/issues/206) - Prevent printing of log entries in the `status` command - [WinSW Issue #218](https://github.com/kohsuke/winsw/issues/218) - Prevent hanging of the stop executable when its logs are not being drained do the parent process Full Diff: https://github.com/kohsuke/winsw/compare/winsw-v2.1.0...winsw-v2.1.2 * [JENKINS-46282] - Pick the released version of Windows Agent Installer --- core/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 78ddda7daa..3fcc54e1d6 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -771,7 +771,7 @@ THE SOFTWARE. com.sun.winsw winsw - 2.1.0 + 2.1.2 bin exe ${project.build.outputDirectory}/windows-service diff --git a/war/pom.xml b/war/pom.xml index 4e25ba2013..4203816bd0 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -114,7 +114,7 @@ THE SOFTWARE. org.jenkins-ci.modules windows-slave-installer - 1.9 + 1.9.1 org.jenkins-ci.modules -- GitLab From b90f067e1b3d80ad453e70c167a3f9fc9362bca2 Mon Sep 17 00:00:00 2001 From: Alexander Shopov Date: Tue, 23 Aug 2016 15:12:32 +0300 Subject: [PATCH 0141/1763] Bulgarian translation of properies files --- .../hudson/AboutJenkins/index_bg.properties | 40 +++++++ .../resources/hudson/Messages_bg.properties | 12 ++ .../PluginManager/advanced_bg.properties | 3 +- .../hudson/PluginManager/table_bg.properties | 7 +- .../message_bg.properties | 27 +++++ .../hudson/cli/CLIAction/index_bg.properties | 36 ++++++ .../deprecationCause_bg.properties | 26 +++++ .../cli/CliProtocol/description_bg.properties | 28 +++++ .../deprecationCause_bg.properties | 29 +++++ .../CliProtocol2/description_bg.properties | 27 +++++ .../hudson/cli/Messages_bg.properties | 28 ++++- .../index_bg.properties | 48 ++++++++ .../message_bg.properties | 28 +++++ .../MemoryUsageMonitor/index_bg.properties | 32 ++++++ .../hudson/diagnosis/Messages_bg.properties | 11 +- .../message_bg.properties | 31 ++++++ .../OldDataMonitor/manage_bg.properties | 105 ++++++++++++++++++ .../OldDataMonitor/message_bg.properties | 29 +++++ .../message_bg.properties | 9 +- .../message_bg.properties | 32 ++++++ .../_restart_bg.properties | 34 ++++++ .../WindowsInstallerLink/index_bg.properties | 41 +++++++ .../LogRecorder/configure_bg.properties | 34 ++++++ .../logging/LogRecorder/delete_bg.properties | 26 +++++ .../logging/LogRecorder/index_bg.properties | 24 ++++ .../LogRecorder/sidepanel_bg.properties | 30 +++++ .../LogRecorderManager/all_bg.properties | 24 ++++ .../LogRecorderManager/feeds_bg.properties | 28 +++++ .../LogRecorderManager/index_bg.properties | 32 ++++++ .../LogRecorderManager/levels_bg.properties | 40 +++++++ .../LogRecorderManager/new_bg.properties | 24 ++++ .../sidepanel_bg.properties | 34 ++++++ .../config_bg.properties | 27 +++++ .../config_bg.properties | 26 +++++ .../FileParameterValue/value_bg.properties | 24 ++++ .../model/Fingerprint/index_bg.properties | 35 ++++++ .../hudson/model/JDK/config_bg.properties | 24 ++++ .../hudson/model/Label/index_bg.properties | 28 +++++ .../model/Label/sidepanel_bg.properties | 30 +++++ .../ListView/configure-entries_bg.properties | 46 ++++++++ .../ListView/newJobButtonBar_bg.properties | 24 ++++ .../ListView/newViewDetail_bg.properties | 27 +++++ .../hudson/model/Messages_bg.properties | 35 +++++- .../model/MyView/newViewDetail_bg.properties | 27 +++++ .../hudson/model/MyView/noJob_bg.properties | 25 +++++ .../MyViewsProperty/config_bg.properties | 28 +++++ .../MyViewsProperty/newView_bg.properties | 24 ++++ .../NoFingerprintMatch/index_bg.properties | 41 +++++++ .../ParametersAction/index_bg.properties | 26 +++++ .../index_bg.properties | 29 +++++ .../config_bg.properties | 28 +++++ .../ProxyView/configure-entries_bg.properties | 26 +++++ .../ProxyView/newViewDetail_bg.properties | 24 ++++ .../config_bg.properties | 38 +++++++ .../model/Slave/help-launcher_bg.properties | 24 ++++ .../config_bg.properties | 28 +++++ .../hudson/model/TaskAction/log_bg.properties | 24 ++++ .../config_bg.properties | 28 +++++ .../model/TreeView/sidepanel2_bg.properties | 24 ++++ .../ConnectionCheckJob/row_bg.properties | 3 +- .../CoreUpdateMonitor/message_bg.properties | 36 ++++++ .../DownloadJob/Failure/status_bg.properties | 26 +++++ .../Installing/status_bg.properties | 24 ++++ .../DownloadJob/Pending/status_bg.properties | 24 ++++ .../DownloadJob/Skipped/status_bg.properties | 24 ++++ .../DownloadJob/Success/status_bg.properties | 24 ++++ .../UpdateCenter/EnableJob/row_bg.properties | 24 ++++ .../UpdateCenter/NoOpJob/row_bg.properties | 24 ++++ .../Canceled/status_bg.properties | 24 ++++ .../Failure/status_bg.properties | 24 ++++ .../Pending/status_bg.properties | 24 ++++ .../Running/status_bg.properties | 24 ++++ .../RestartJenkinsJob/row_bg.properties | 24 ++++ .../model/UpdateCenter/body_bg.properties | 9 +- .../UpdateCenter/sidepanel_bg.properties | 9 +- .../hudson/model/View/configure_bg.properties | 36 ++++++ .../hudson/model/View/delete_bg.properties | 26 +++++ .../hudson/model/View/index_bg.properties | 24 ++++ .../hudson/model/View/noJob_bg.properties | 29 +++++ .../labels/LabelAtom/configure_bg.properties | 31 ++++++ .../config_bg.properties | 24 ++++ .../node_monitors/Messages_bg.properties | 5 +- .../message_bg.properties | 32 ++++++ .../Data/cause_bg.properties | 24 ++++ .../message_bg.properties | 26 +++++ .../MigrationFailedNotice/index_bg.properties | 24 ++++ .../message_bg.properties | 26 +++++ .../askRootPassword_bg.properties | 38 +++++++ .../ZFSInstaller/confirm_bg.properties | 48 ++++++++ .../ZFSInstaller/message_bg.properties | 31 ++++++ .../inProgress_bg.properties | 24 ++++ .../search/Search/search-failed_bg.properties | 26 +++++ .../UserSearchProperty/config_bg.properties | 26 +++++ .../error_bg.properties | 39 +++++++ .../config_bg.properties | 24 ++++ .../SecurityRealm/signup_bg.properties | 28 +++++ .../DefaultCrumbIssuer/config_bg.properties | 24 ++++ .../hudson/slaves/Cloud/index_bg.properties | 24 ++++ .../CommandConnector/config_bg.properties | 24 ++++ .../CommandLauncher/config_bg.properties | 24 ++++ .../slaves/CommandLauncher/help_bg.properties | 28 +++++ .../ComputerLauncher/main_bg.properties | 31 ++++++ .../config_bg.properties | 24 ++++ .../DumbSlave/configure-entries_bg.properties | 36 ++++++ .../DumbSlave/newInstanceDetail_bg.properties | 33 ++++++ .../config_bg.properties | 28 +++++ .../slaves/JNLPLauncher/config_bg.properties | 28 +++++ .../slaves/JNLPLauncher/help_bg.properties | 44 ++++++++ .../slaves/JNLPLauncher/main_bg.properties | 39 +++++++ .../hudson/slaves/Messages_bg.properties | 11 +- .../ChannelTermination/cause_bg.properties | 24 ++++ .../Demand/config_bg.properties | 30 +++++ .../Scheduled/config_bg.properties | 26 +++++ .../config_bg.properties | 35 ++++++ .../ArtifactArchiver/config_bg.properties | 40 +++++++ .../tasks/BatchFile/config_bg.properties | 30 +++++ .../tasks/BuildTrigger/config_bg.properties | 30 +++++ .../FingerprintAction/index_bg.properties | 36 ++++++ .../tasks/Fingerprinter/config_bg.properties | 24 ++++ .../MavenInstallation/config_bg.properties | 24 ++++ .../hudson/tasks/Maven/config_bg.properties | 2 +- .../hudson/tasks/Maven/help_bg.properties | 45 ++++++++ .../hudson/tasks/Messages_bg.properties | 17 ++- .../config_bg.properties | 26 +++++ .../config_bg.properties | 24 ++++ .../config_bg.properties | 26 +++++ .../DescriptorImpl/credentialOK_bg.properties | 26 +++++ .../enterCredential_bg.properties | 34 ++++++ .../tools/JDKInstaller/config_bg.properties | 26 +++++ .../hudson/tools/Messages_bg.properties | 5 +- .../ToolInstallation/config_bg.properties | 26 +++++ .../ToolInstallation/global_bg.properties | 34 ++++++ .../config_bg.properties | 28 +++++ .../config_bg.properties | 26 +++++ .../hudson/triggers/Messages_bg.properties | 22 +++- .../message_bg.properties | 31 ++++++ .../BuildAction/index_bg.properties | 31 ++++++ .../DescriptorImpl/index_bg.properties | 40 +++++++ .../triggers/SCMTrigger/config_bg.properties | 26 +++++ .../triggers/SCMTrigger/global_bg.properties | 26 +++++ .../TimerTrigger/config_bg.properties | 24 ++++ .../util/AWTProblem/index_bg.properties | 29 +++++ .../AdministrativeError/message_bg.properties | 24 ++++ .../DoubleLaunchChecker/index_bg.properties | 40 +++++++ .../HudsonFailedToLoad/index_bg.properties | 24 ++++ .../util/HudsonIsLoading/index_bg.properties | 26 +++++ .../HudsonIsRestarting/index_bg.properties | 26 +++++ .../index_bg.properties | 38 +++++++ .../index_bg.properties | 30 +++++ .../index_bg.properties | 44 ++++++++ .../index_bg.properties | 45 ++++++++ .../util/JNADoublyLoaded/index_bg.properties | 31 ++++++ .../hudson/util/NoHomeDir/index_bg.properties | 40 +++++++ .../hudson/util/NoTempDir/index_bg.properties | 33 ++++++ .../BuildButtonColumn/column_bg.properties | 31 ++++++ .../hudson/views/Messages_bg.properties | 5 +- .../StatusColumn/columnHeader_bg.properties | 2 +- .../WeatherColumn/columnHeader_bg.properties | 2 +- .../widgets/HistoryWidget/entry_bg.properties | 5 +- .../CLI/WarnWhenEnabled/message_bg.properties | 36 ++++++ .../jenkins/CLI/config_bg.properties | 26 +++++ .../HsErrPidList/index_bg.properties | 44 ++++++++ .../HsErrPidList/message_bg.properties | 25 +++++ .../message_bg.properties | 46 ++++++++ .../diagnostics/Messages_bg.properties | 31 ++++++ .../message_bg.properties | 32 ++++++ .../authenticate-security-token_bg.properties | 51 +++++++++ .../proxy-configuration_bg.properties | 24 ++++ .../setupWizardFirstUser_bg.properties | 25 +++++ .../client-scripts_bg.properties | 31 ++++++ .../footer_bg.properties | 27 +++++ .../jenkins/management/Messages_bg.properties | 5 +- .../management/PluginsLink/info_bg.properties | 24 ++++ .../config-details_bg.properties | 24 ++++ .../Warning/message_bg.properties | 33 ++++++ .../message_bg.properties | 29 +++++ .../MasterComputer/configure_bg.properties | 32 ++++++ .../jenkins/model/Messages_bg.properties | 8 +- .../index_bg.properties | 24 ++++ .../IdentityRootAction/index_bg.properties | 37 ++++++ .../item_category/Messages_bg.properties | 42 +++++++ .../jenkins/security/Messages_bg.properties | 5 +- .../message_bg.properties | 32 ++++++ .../AdminWhitelistRule/index_bg.properties | 28 +++++ .../message_bg.properties | 32 ++++++ .../security/s2m/Messages_bg.properties | 28 +++++ .../message_bg.properties | 36 ++++++ .../deprecationCause_bg.properties | 26 +++++ .../description_bg.properties | 30 +++++ .../deprecationCause_bg.properties | 30 +++++ .../description_bg.properties | 33 ++++++ .../deprecationCause_bg.properties | 26 +++++ .../description_bg.properties | 35 ++++++ .../description_bg.properties | 26 +++++ .../jenkins/slaves/Messages_bg.properties | 37 ++++++ .../config_bg.properties | 30 +++++ .../ReverseBuildTrigger/config_bg.properties | 30 +++++ .../queue-items_bg.properties | 28 +++++ .../lib/hudson/buildCaption_bg.properties | 5 +- .../lib/hudson/executors_bg.properties | 5 +- .../project/upstream-downstream_bg.properties | 6 +- .../resources/lib/hudson/queue_bg.properties | 5 +- 202 files changed, 5516 insertions(+), 37 deletions(-) create mode 100644 core/src/main/resources/hudson/AboutJenkins/index_bg.properties create mode 100644 core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/message_bg.properties create mode 100644 core/src/main/resources/hudson/cli/CLIAction/index_bg.properties create mode 100644 core/src/main/resources/hudson/cli/CliProtocol/deprecationCause_bg.properties create mode 100644 core/src/main/resources/hudson/cli/CliProtocol/description_bg.properties create mode 100644 core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause_bg.properties create mode 100644 core/src/main/resources/hudson/cli/CliProtocol2/description_bg.properties create mode 100644 core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_bg.properties create mode 100644 core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_bg.properties create mode 100644 core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_bg.properties create mode 100644 core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/message_bg.properties create mode 100644 core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_bg.properties create mode 100644 core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_bg.properties create mode 100644 core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_bg.properties create mode 100644 core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_bg.properties create mode 100644 core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorder/configure_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorder/delete_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorder/index_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorder/sidepanel_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorderManager/all_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorderManager/feeds_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorderManager/index_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorderManager/levels_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorderManager/new_bg.properties create mode 100644 core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_bg.properties create mode 100644 core/src/main/resources/hudson/markup/EscapedMarkupFormatter/config_bg.properties create mode 100644 core/src/main/resources/hudson/model/FileParameterDefinition/config_bg.properties create mode 100644 core/src/main/resources/hudson/model/FileParameterValue/value_bg.properties create mode 100644 core/src/main/resources/hudson/model/Fingerprint/index_bg.properties create mode 100644 core/src/main/resources/hudson/model/JDK/config_bg.properties create mode 100644 core/src/main/resources/hudson/model/Label/index_bg.properties create mode 100644 core/src/main/resources/hudson/model/Label/sidepanel_bg.properties create mode 100644 core/src/main/resources/hudson/model/ListView/configure-entries_bg.properties create mode 100644 core/src/main/resources/hudson/model/ListView/newJobButtonBar_bg.properties create mode 100644 core/src/main/resources/hudson/model/ListView/newViewDetail_bg.properties create mode 100644 core/src/main/resources/hudson/model/MyView/newViewDetail_bg.properties create mode 100644 core/src/main/resources/hudson/model/MyView/noJob_bg.properties create mode 100644 core/src/main/resources/hudson/model/MyViewsProperty/config_bg.properties create mode 100644 core/src/main/resources/hudson/model/MyViewsProperty/newView_bg.properties create mode 100644 core/src/main/resources/hudson/model/NoFingerprintMatch/index_bg.properties create mode 100644 core/src/main/resources/hudson/model/ParametersAction/index_bg.properties create mode 100644 core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_bg.properties create mode 100644 core/src/main/resources/hudson/model/PasswordParameterDefinition/config_bg.properties create mode 100644 core/src/main/resources/hudson/model/ProxyView/configure-entries_bg.properties create mode 100644 core/src/main/resources/hudson/model/ProxyView/newViewDetail_bg.properties create mode 100644 core/src/main/resources/hudson/model/RunParameterDefinition/config_bg.properties create mode 100644 core/src/main/resources/hudson/model/Slave/help-launcher_bg.properties create mode 100644 core/src/main/resources/hudson/model/StringParameterDefinition/config_bg.properties create mode 100644 core/src/main/resources/hudson/model/TaskAction/log_bg.properties create mode 100644 core/src/main/resources/hudson/model/TextParameterDefinition/config_bg.properties create mode 100644 core/src/main/resources/hudson/model/TreeView/sidepanel2_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Failure/status_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Installing/status_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Pending/status_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Skipped/status_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Success/status_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/EnableJob/row_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/NoOpJob/row_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Canceled/status_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Failure/status_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Pending/status_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Running/status_bg.properties create mode 100644 core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/row_bg.properties create mode 100644 core/src/main/resources/hudson/model/View/configure_bg.properties create mode 100644 core/src/main/resources/hudson/model/View/delete_bg.properties create mode 100644 core/src/main/resources/hudson/model/View/index_bg.properties create mode 100644 core/src/main/resources/hudson/model/View/noJob_bg.properties create mode 100644 core/src/main/resources/hudson/model/labels/LabelAtom/configure_bg.properties create mode 100644 core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_bg.properties create mode 100644 core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_bg.properties create mode 100644 core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_bg.properties create mode 100644 core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_bg.properties create mode 100644 core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_bg.properties create mode 100644 core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_bg.properties create mode 100644 core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_bg.properties create mode 100644 core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_bg.properties create mode 100644 core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_bg.properties create mode 100644 core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_bg.properties create mode 100644 core/src/main/resources/hudson/search/Search/search-failed_bg.properties create mode 100644 core/src/main/resources/hudson/search/UserSearchProperty/config_bg.properties create mode 100644 core/src/main/resources/hudson/security/FederatedLoginService/UnclaimedIdentityException/error_bg.properties create mode 100644 core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/config_bg.properties create mode 100644 core/src/main/resources/hudson/security/SecurityRealm/signup_bg.properties create mode 100644 core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/config_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/Cloud/index_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/CommandConnector/config_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/CommandLauncher/config_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/CommandLauncher/help_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/ComputerLauncher/main_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/DelegatingComputerLauncher/config_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/JNLPLauncher/config_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/JNLPLauncher/help_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/JNLPLauncher/main_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_bg.properties create mode 100644 core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_bg.properties create mode 100644 core/src/main/resources/hudson/tasks/ArtifactArchiver/config_bg.properties create mode 100644 core/src/main/resources/hudson/tasks/BatchFile/config_bg.properties create mode 100644 core/src/main/resources/hudson/tasks/BuildTrigger/config_bg.properties create mode 100644 core/src/main/resources/hudson/tasks/Fingerprinter/FingerprintAction/index_bg.properties create mode 100644 core/src/main/resources/hudson/tasks/Fingerprinter/config_bg.properties create mode 100644 core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_bg.properties create mode 100644 core/src/main/resources/hudson/tasks/Maven/help_bg.properties create mode 100644 core/src/main/resources/hudson/tools/AbstractCommandInstaller/config_bg.properties create mode 100644 core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_bg.properties create mode 100644 core/src/main/resources/hudson/tools/InstallSourceProperty/config_bg.properties create mode 100644 core/src/main/resources/hudson/tools/JDKInstaller/DescriptorImpl/credentialOK_bg.properties create mode 100644 core/src/main/resources/hudson/tools/JDKInstaller/DescriptorImpl/enterCredential_bg.properties create mode 100644 core/src/main/resources/hudson/tools/JDKInstaller/config_bg.properties create mode 100644 core/src/main/resources/hudson/tools/ToolInstallation/config_bg.properties create mode 100644 core/src/main/resources/hudson/tools/ToolInstallation/global_bg.properties create mode 100644 core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_bg.properties create mode 100644 core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_bg.properties create mode 100644 core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_bg.properties create mode 100644 core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_bg.properties create mode 100644 core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_bg.properties create mode 100644 core/src/main/resources/hudson/triggers/SCMTrigger/config_bg.properties create mode 100644 core/src/main/resources/hudson/triggers/SCMTrigger/global_bg.properties create mode 100644 core/src/main/resources/hudson/triggers/TimerTrigger/config_bg.properties create mode 100644 core/src/main/resources/hudson/util/AWTProblem/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/AdministrativeError/message_bg.properties create mode 100644 core/src/main/resources/hudson/util/DoubleLaunchChecker/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/HudsonFailedToLoad/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/HudsonIsLoading/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/HudsonIsRestarting/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/IncompatibleVMDetected/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/JNADoublyLoaded/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/NoHomeDir/index_bg.properties create mode 100644 core/src/main/resources/hudson/util/NoTempDir/index_bg.properties create mode 100644 core/src/main/resources/hudson/views/BuildButtonColumn/column_bg.properties create mode 100644 core/src/main/resources/jenkins/CLI/WarnWhenEnabled/message_bg.properties create mode 100644 core/src/main/resources/jenkins/CLI/config_bg.properties create mode 100644 core/src/main/resources/jenkins/diagnosis/HsErrPidList/index_bg.properties create mode 100644 core/src/main/resources/jenkins/diagnosis/HsErrPidList/message_bg.properties create mode 100644 core/src/main/resources/jenkins/diagnostics/CompletedInitializationMonitor/message_bg.properties create mode 100644 core/src/main/resources/jenkins/diagnostics/Messages_bg.properties create mode 100644 core/src/main/resources/jenkins/diagnostics/SecurityIsOffMonitor/message_bg.properties create mode 100644 core/src/main/resources/jenkins/install/SetupWizard/authenticate-security-token_bg.properties create mode 100644 core/src/main/resources/jenkins/install/SetupWizard/proxy-configuration_bg.properties create mode 100644 core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_bg.properties create mode 100644 core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_bg.properties create mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_bg.properties create mode 100644 core/src/main/resources/jenkins/management/PluginsLink/info_bg.properties create mode 100644 core/src/main/resources/jenkins/model/BuildDiscarderProperty/config-details_bg.properties create mode 100644 core/src/main/resources/jenkins/model/DownloadSettings/Warning/message_bg.properties create mode 100644 core/src/main/resources/jenkins/model/Jenkins/EnforceSlaveAgentPortAdministrativeMonitor/message_bg.properties create mode 100644 core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure_bg.properties create mode 100644 core/src/main/resources/jenkins/model/RunIdMigrator/UnmigrationInstruction/index_bg.properties create mode 100644 core/src/main/resources/jenkins/model/identity/IdentityRootAction/index_bg.properties create mode 100644 core/src/main/resources/jenkins/model/item_category/Messages_bg.properties create mode 100644 core/src/main/resources/jenkins/security/s2m/AdminCallableMonitor/message_bg.properties create mode 100644 core/src/main/resources/jenkins/security/s2m/AdminWhitelistRule/index_bg.properties create mode 100644 core/src/main/resources/jenkins/security/s2m/MasterKillSwitchWarning/message_bg.properties create mode 100644 core/src/main/resources/jenkins/security/s2m/Messages_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/description_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/description_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/Messages_bg.properties create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/config_bg.properties create mode 100644 core/src/main/resources/jenkins/triggers/ReverseBuildTrigger/config_bg.properties create mode 100644 core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items_bg.properties diff --git a/core/src/main/resources/hudson/AboutJenkins/index_bg.properties b/core/src/main/resources/hudson/AboutJenkins/index_bg.properties new file mode 100644 index 0000000000..81aeda52c0 --- /dev/null +++ b/core/src/main/resources/hudson/AboutJenkins/index_bg.properties @@ -0,0 +1,40 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# About Jenkins {0} +about=\ + \u041e\u0442\u043d\u043e\u0441\u043d\u043e Jenkins {0} +# Static resources +static.dependencies=\ + \u0421\u0442\u0430\u0442\u0438\u0447\u043d\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0438 +# License and dependency information for plugins +plugin.dependencies=\ + \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0442\u0435 \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438\u0442\u0435. +No\ information\ recorded=\ + \u041d\u0435 \u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0432\u0430 \u043d\u0438\u043a\u0430\u043a\u0432\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f +# Jenkins depends on the following 3rd party libraries +dependencies=\ + Jenkins \u0437\u0430\u0432\u0438\u0441\u0438 \u0438 \u043e\u0442 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438 \u043c\u0435\u0441\u0442\u0430 +# Jenkins is a community-developed open-source automation server. +blurb=\ + Jenkins \u0435 \u0441\u044a\u0440\u0432\u044a\u0440 \u0437\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u0441\ + \u043e\u0442\u0432\u043e\u0440\u0435\u043d \u043a\u043e\u0434, \u043a\u043e\u0439\u0442\u043e \u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0432\u0430 \u043e\u0442 \u0441\u0432\u043e\u044f\u0442\u0430 \u043e\u0431\u0449\u043d\u043e\u0441\u0442 \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u0446\u0438. diff --git a/core/src/main/resources/hudson/Messages_bg.properties b/core/src/main/resources/hudson/Messages_bg.properties index 8791c38139..28e59f984c 100644 --- a/core/src/main/resources/hudson/Messages_bg.properties +++ b/core/src/main/resources/hudson/Messages_bg.properties @@ -135,3 +135,15 @@ PluginWrapper.obsolete=\ # {0} v{1} failed to load. PluginWrapper.failed_to_load_plugin=\ \u201e{0}\u201c, \u0432\u0435\u0440\u0441\u0438\u044f {1} \u043d\u0435 \u0441\u0435 \u0437\u0430\u0440\u0435\u0434\u0438. +# Plugins Failed To Load +PluginWrapper.PluginWrapperAdministrativeMonitor.DisplayName=\ + \u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438\u0442\u0435 \u043d\u0435 \u0441\u0435 \u0437\u0430\u0440\u0435\u0434\u0438\u0445\u0430 +# Invalid Plugin Configuration +PluginManager.PluginUpdateMonitor.DisplayName=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 +# Whitespace can no longer be used as the separator. Please Use \u2018,\u2019 as the separator instead. +FilePath.validateAntFileMask.whitespaceSeparator=\ + \u0412\u0435\u0447\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0437\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b. \u041f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0435\u0442\u0430\u044f: \u201e,\u201c +# Cyclic Dependencies Detector +PluginManager.PluginCycleDependenciesMonitor.DisplayName=\ + \u041e\u0442\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0446\u0438\u043a\u043b\u0438\u0447\u043d\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 diff --git a/core/src/main/resources/hudson/PluginManager/advanced_bg.properties b/core/src/main/resources/hudson/PluginManager/advanced_bg.properties index 60ac6803db..3fc652c463 100644 --- a/core/src/main/resources/hudson/PluginManager/advanced_bg.properties +++ b/core/src/main/resources/hudson/PluginManager/advanced_bg.properties @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -File=\u0424\u0430\u0439\u043b +File=\ + \u0424\u0430\u0439\u043b HTTP\ Proxy\ Configuration=\ \u0421\u044a\u0440\u0432\u044a\u0440-\u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a \u0437\u0430 HTTP Submit=\ diff --git a/core/src/main/resources/hudson/PluginManager/table_bg.properties b/core/src/main/resources/hudson/PluginManager/table_bg.properties index 893174efce..25e4b2ed41 100644 --- a/core/src/main/resources/hudson/PluginManager/table_bg.properties +++ b/core/src/main/resources/hudson/PluginManager/table_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -61,3 +61,8 @@ depCompatWarning=\ \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u0442\u0430\u0437\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0432\u0438\u0441\u0435\u0449\u0438\u0442\u0435 \u043e\u0442 \u043d\u0435\u044f\ \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438. \u0427\u0430\u0441\u0442 \u043e\u0442 \u0442\u044f\u0445 \u043d\u0435 \u0441\u0430 \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 \u0441 \u0442\u0435\u043a\u0443\u0449\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 Jenkins. \u0429\u0435\ \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u0438\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\u0442\u0435, \u043a\u043e\u0438\u0442\u043e \u0433\u0438 \u043f\u043e\u043b\u0437\u0432\u0430\u0442. +# \ +# Warning: This plugin version may not be safe to use. Please review the following security notices: +securityWarning=\ + \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u0442\u0430\u0437\u0438 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\u0442\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u043c\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441\u044a\u0441\ + \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430. \u041f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u0442\u0430. diff --git a/core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/message_bg.properties b/core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/message_bg.properties new file mode 100644 index 0000000000..4c826414ea --- /dev/null +++ b/core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/message_bg.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Correct=\ + \u041e\u0442\u0433\u043e\u0432\u0430\u0440\u044f +# There are dependency errors loading some plugins +Dependency\ errors=\ + \u0418\u043c\u0430 \u0433\u0440\u0435\u0448\u043a\u0438 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 \u043d\u044f\u043a\u043e\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 diff --git a/core/src/main/resources/hudson/cli/CLIAction/index_bg.properties b/core/src/main/resources/hudson/cli/CLIAction/index_bg.properties new file mode 100644 index 0000000000..f1abd03aaa --- /dev/null +++ b/core/src/main/resources/hudson/cli/CLIAction/index_bg.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017 Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Available\ Commands=\ + \u041d\u0430\u043b\u0438\u0447\u043d\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0438 +# You can access various features in Jenkins through a command-line tool. See \ +# the Wiki for more details of this feature.\ +# To get started, download jenkins-cli.jar, and run it as follows: +blurb=\ + \u0418\u043c\u0430\u0442\u0435 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 Jenkins \u0447\u0440\u0435\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430 \u0437\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434.\ + \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435\ + \u0443\u0438\u043a\u0438\u0442\u043e.\ + \u0421\u0432\u0430\u043b\u0435\u0442\u0435 \u0444\u0430\u0439\u043b\u0430 jenkins-cli.jar \u0438 \u0433\u043e\ + \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u0442\u0435 \u043f\u043e \u0441\u043b\u0435\u0434\u043d\u0438\u044f \u043d\u0430\u0447\u0438\u043d: +# Jenkins CLI +Jenkins\ CLI=\ + Jenkins \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 diff --git a/core/src/main/resources/hudson/cli/CliProtocol/deprecationCause_bg.properties b/core/src/main/resources/hudson/cli/CliProtocol/deprecationCause_bg.properties new file mode 100644 index 0000000000..f6b2646c8a --- /dev/null +++ b/core/src/main/resources/hudson/cli/CliProtocol/deprecationCause_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 protocol is an obsolete protocol, which has been replaced by CLI2-connect. \ +# It is also not encrypted. +message=\ + \u0422\u043e\u0437\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0435 \u043e\u0441\u0442\u0430\u0440\u044f\u043b \u0438 \u0435 \u0431\u0435\u0437 \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435. \u0417\u0430\u043c\u0435\u043d\u0435\u043d \u0435 \u043e\u0442 CLI2-connect. diff --git a/core/src/main/resources/hudson/cli/CliProtocol/description_bg.properties b/core/src/main/resources/hudson/cli/CliProtocol/description_bg.properties new file mode 100644 index 0000000000..95e9c0e6e1 --- /dev/null +++ b/core/src/main/resources/hudson/cli/CliProtocol/description_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Accepts\ connections\ from\ CLI\ clients=\ + \u041f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0438 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0438\u0442\u0435 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434. +# Accepts connections from CLI clients. This protocol is unencrypted. +summary=\ + \u041f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0438 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0438\u0442\u0435 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434. \u0422\u043e\u0437\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043d\u0435 \u0435 \u0437\u0430\u0449\u0438\u0442\u0435\u043d\ + \u0441 \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435. diff --git a/core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause_bg.properties b/core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause_bg.properties new file mode 100644 index 0000000000..976f357b3d --- /dev/null +++ b/core/src/main/resources/hudson/cli/CliProtocol2/deprecationCause_bg.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Remoting-based CLI is deprecated and not recommended due to the security reasons. \ +# It is recommended to disable this protocol on the instance. \ +# if you need Remoting CLI on your instance, this protocol has to be enabled. +message=\ + \u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438\u0442\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0438 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0435\u043d \u0440\u0435\u0434 \u0441\u0430 \u043e\u0441\u0442\u0430\u0440\u0435\u043b\u0438 \u0438 \u043d\u0435 \u0441\u0435 \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430\u0442 \u0437\u0430\u0440\u0430\u0434\u0438\ + \u043d\u0438\u0441\u043a\u0430\u0442\u0430 \u0438\u043c \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442. \u041e\u0441\u0432\u0435\u043d \u0430\u043a\u043e \u043d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u0441\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0435 \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0442\u043e\u0437\u0438\ + \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0432\u0438 \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430\u043c\u0435 \u0434\u0430 \u0433\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435. diff --git a/core/src/main/resources/hudson/cli/CliProtocol2/description_bg.properties b/core/src/main/resources/hudson/cli/CliProtocol2/description_bg.properties new file mode 100644 index 0000000000..d738341fc2 --- /dev/null +++ b/core/src/main/resources/hudson/cli/CliProtocol2/description_bg.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Extends\ the\ version\ 1\ protocol\ by\ adding\ transport\ encryption=\ + \u0420\u0430\u0437\u0448\u0438\u0440\u044f\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 1 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043a\u0430\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u044f \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435 +# Extends the version 1 protocol by adding transport encryption. +summary=\ + \u0420\u0430\u0437\u0448\u0438\u0440\u044f\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 1 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043a\u0430\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u044f \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/cli/Messages_bg.properties b/core/src/main/resources/hudson/cli/Messages_bg.properties index 3ce9a54d03..09062a5544 100644 --- a/core/src/main/resources/hudson/cli/Messages_bg.properties +++ b/core/src/main/resources/hudson/cli/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -159,3 +159,29 @@ CliProtocol2.displayName=\ # Jenkins CLI Protocol/1 CliProtocol.displayName=\ \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043d\u0430 Jenkins \u0437\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0435\u043d \u0440\u0435\u0434, \u0432\u0435\u0440\u0441\u0438\u044f 1 +# \ +# Depending on the security realm, you will need to pass something like:\n\ +# --username USER [ --password PASS | --password-file FILE ]\n\ +# May not be supported in some security realms, such as single-sign-on.\n\ +# Pair with the logout command.\n\ +# The same options can be used on any other command, but unlike other generic CLI options,\n\ +# these come *after* the command name.\n\ +# Whether stored or not, this authentication mode will not let you refer to (e.g.) jobs as arguments\n\ +# if Jenkins denies anonymous users Overall/Read and (e.g.) Job/Read.\n\ +# *Deprecated* in favor of -auth. +LoginCommand.FullDescription=\ + \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442 \u043e\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0449\u0435 \u0441\u0435 \u043d\u0430\u043b\u043e\u0436\u0438 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u043d\u0435\u0449\u043e \u043a\u0430\u0442\u043e:\n\ + --username \u041f\u041e\u0422\u0420\u0415\u0411\u0418\u0422\u0415\u041b [ --password \u041f\u0410\u0420\u041e\u041b\u0410 | --password-file \u0424\u0410\u0419\u041b ]\n\ + \u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u0435 \u0434\u0430 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0438 \u0432\u044a\u0432 \u0432\u0441\u0438\u0447\u043a\u0438 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440. \u043f\u0440\u0438 \u0435\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u0432\u043f\u0438\u0441\u0432\u0430\u043d\u0435.\n\ + \u041a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0430\u0439\u0442\u0435 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u0437\u0430 \u0438\u0437\u0445\u043e\u0434.\n\ + \u0422\u0435\u0437\u0438 \u043e\u043f\u0446\u0438\u0438 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u0441 \u0432\u0441\u044f\u043a\u0430 \u0434\u0440\u0443\u0433\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u043d\u043e \u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u043a\u0430 \u043e\u0442\ + \u043e\u0442 \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438\u0442\u0435 \u043e\u0431\u0449\u0438 \u043e\u043f\u0446\u0438\u0438 \u0437\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0435\u043d \u0440\u0435\u0434, \u0442\u0435 \u0441\u0435 \u043f\u043e\u0434\u0430\u0432\u0430\u0442 \u0421\u041b\u0415\u0414 \u0438\u043c\u0435\u0442\u043e \u043d\u0430\ + \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430. \u0422\u043e\u0437\u0438 \u0440\u0435\u0436\u0438\u043c \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0434\u0430 \u0443\u043a\u0430\u0437\u0432\u0430\u0442\u0435 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430 \u043a\u0430\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0438,\ + \u0430\u043a\u043e Jenkins \u043d\u0435 \u0434\u0430\u0432\u0430 \u043d\u0430 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0438\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u043e\u0431\u0449\u043e \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435.\ + \u041e\u0421\u0422\u0410\u0420\u042f\u041b\u041e, \u0434\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430! \u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435 \u0441 \u201e-auth\u201c \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0432\u0430. +# Installing a plugin from standard input +InstallPluginCommand.InstallingPluginFromStdin=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0432\u0445\u043e\u0434. +# *Deprecated* in favor of -auth. +LogoutCommand.FullDescription=\ + \u041e\u0421\u0422\u0410\u0420\u042f\u041b\u041e, \u0434\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430! \u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435 \u0441 \u201e-auth\u201c \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0432\u0430. diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_bg.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_bg.properties new file mode 100644 index 0000000000..91faf92f5a --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_bg.properties @@ -0,0 +1,48 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Clean up some files from this partition to make more room. +solution.1=\ + \u0418\u0437\u0442\u0440\u0438\u0439\u0442\u0435 \u0447\u0430\u0441\u0442 \u043e\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u043e\u0442 \u0442\u043e\u0437\u0438 \u0434\u044f\u043b, \u0437\u0430 \u0434\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u0435 \u043f\u043e\u0432\u0435\u0447\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e. +# \ +# Move JENKINS_HOME to a bigger partition. \ +# See our Wiki for how to do this. +solution.2=\ + \u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0435\u0442\u0435 JENKINS_HOME \u043d\u0430 \u043f\u043e-\u0433\u043e\u043b\u044f\u043c \u0434\u044f\u043b.\ + \u0412\u0438\u0436\u0442\u0435: \ + \u0443\u0438\u043a\u0438\u0442\u043e \u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0442\u043e\u0432\u0430. +# JENKINS_HOME is almost full +blurb=\ + \u0424\u0430\u0439\u043b\u043e\u0432\u0430\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043d\u0430 \u043a\u043e\u044f\u0442\u043e \u0435 JENKINS_HOME, \u0435 \u043f\u043e\u0447\u0442\u0438 \u043f\u044a\u043b\u043d\u0430 +JENKINS_HOME\ is\ almost\ full=\ + \u0424\u0430\u0439\u043b\u043e\u0432\u0430\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043d\u0430 \u043a\u043e\u044f\u0442\u043e \u0435 JENKINS_HOME, \u0435 \u043f\u043e\u0447\u0442\u0438 \u043f\u044a\u043b\u043d\u0430 +# \ +# Your JENKINS_HOME ({0}) is almost full. \ +# When this directory completely fills up, it\'ll wreak havoc because Jenkins can\'t store any more data. +description.1=\ + \ + \u0424\u0430\u0439\u043b\u043e\u0432\u0430\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 {0}, \u043d\u0430 \u043a\u043e\u044f\u0442\u043e \u0435 JENKINS_HOME ({0}) \u0435 \u043f\u043e\u0447\u0442\u0438 \u043f\u044a\u043b\u043d\u0430.\ + \u041a\u043e\u0433\u0430\u0442\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0441\u0432\u044a\u0440\u0448\u0438, Jenkinns \u043d\u044f\u043c\u0430 \u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e, \u0437\u0430\u0449\u043e\u0442\u043e\ + \u043d\u044f\u043c\u0430 \u043a\u044a\u0434\u0435 \u0434\u0430 \u0441\u044a\u0445\u0440\u0430\u043d\u044f\u0432\u0430 \u043d\u043e\u0432\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438. +# To prevent that problem, you should act now. +description.2=\ + \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0440\u0435\u0430\u0433\u0438\u0440\u0430\u0442\u0435 \u043d\u0435\u0437\u0430\u0431\u0430\u0432\u043d\u043e, \u0437\u0430 \u0434\u0430 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u0435 \u0442\u043e\u0437\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_bg.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_bg.properties new file mode 100644 index 0000000000..967bddc28a --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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= +Tell\ me\ more=\ + \u041f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f +# Your Jenkins data directory "{0}" (AKA JENKINS_HOME) is almost full. You should act on it before it gets completely full. +blurb=\ + \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u0441\u0430 \u0434\u0430\u043d\u043d\u0438 \u043d\u0430 Jenkins \u201e{0}\u201c \u2014 JENKINS_HOME) diff --git a/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_bg.properties b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_bg.properties new file mode 100644 index 0000000000..17fcc9d499 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_bg.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0414\u044a\u043b\u044a\u0433 +Timespan=\ + \u041f\u0435\u0440\u0438\u043e\u0434 +Short=\ + \u041a\u0440\u0430\u0442\u044a\u043a +Medium=\ + \u0421\u0440\u0435\u0434\u0435\u043d +JVM\ Memory\ Usage=\ + \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0430\u043c\u0435\u0442 \u043e\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 Java diff --git a/core/src/main/resources/hudson/diagnosis/Messages_bg.properties b/core/src/main/resources/hudson/diagnosis/Messages_bg.properties index 1a3ea6cfad..25432bc2ea 100644 --- a/core/src/main/resources/hudson/diagnosis/Messages_bg.properties +++ b/core/src/main/resources/hudson/diagnosis/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,3 +31,12 @@ OldDataMonitor.DisplayName=\ \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438 HudsonHomeDiskUsageMonitor.DisplayName=\ \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e +# Reverse Proxy Setup +ReverseProxySetupMonitor.DisplayName=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440\u0430-\u043e\u0431\u0440\u0430\u0442\u0435\u043d \u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a +# Too Many Jobs Not Organized in Views +TooManyJobsButNoView.DisplayName=\ + \u041f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0435 \u0441\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0438\u0440\u0430\u043d\u0438 \u043f\u043e \u0438\u0437\u0433\u043b\u0435\u0434\u0438 +# Missing Descriptor ID +NullIdDescriptorMonitor.DisplayName=\ + \u041b\u0438\u043f\u0441\u0432\u0430\u0449 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043d\u0430 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 diff --git a/core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/message_bg.properties b/core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/message_bg.properties new file mode 100644 index 0000000000..82eaa1e162 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/message_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 following extensions have no ID value and therefore likely cause a problem. Please upgrade these plugins if they are not the latest, \ +# and if they are the latest, please file a bug so that we can fix them. +blurb=\ + \u0421\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u0430 \u0431\u0435\u0437 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 (ID), \u043a\u043e\u0435\u0442\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0434\u043e\u0432\u0435\u0434\u0435 \u0434\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438.\ + \u041e\u0431\u043d\u043e\u0432\u0435\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438\u0442\u0435 \u043a\u044a\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u0438\u043c \u0432\u0435\u0440\u0441\u0438\u044f. \u0410\u043a\u043e \u0432\u0435\u0447\u0435 \u0441\u0430 \u043e\u0431\u043d\u043e\u0432\u0435\u043d\u0438, \u043c\u043e\u043b\u0438\u043c \u0434\u0430\ + \u043f\u043e\u0434\u0430\u0434\u0435\u0442\u0435 \u0434\u043e\u043a\u043b\u0430\u0434 \u0437\u0430 \u0433\u0440\u0435\u0448\u043a\u0430, \u0437\u0430 \u0434\u0430 \u043a\u043e\u0440\u0438\u0433\u0438\u0440\u0430\u043c\u0435 \u0442\u043e\u0432\u0430. +# Descriptor {0} from plugin {2} with display name {1} +problem=\ + \u0414\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 {0} \u043e\u0442 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\u0442\u0430 {2} \u0441 \u0438\u043c\u0435 {1} diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_bg.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_bg.properties new file mode 100644 index 0000000000..ab631fc123 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_bg.properties @@ -0,0 +1,105 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0435 +# \ +# 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=\ + \u0421\u043b\u0435\u0434 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0432\u0440\u0435\u043c\u0435 \u043a\u043e\u0434\u044a\u0442 \u0437\u0430 \u0442\u0435\u0437\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438 \u0449\u0435 \u0431\u044a\u0434\u0435 \u0438\u0437\u0442\u0440\u0438\u0442.\ + \u0421\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0442\u0430 \u0449\u0435 \u0431\u044a\u0434\u0435 \u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0430 \u0437\u0430 \u043f\u043e\u043d\u0435 150 \u0438\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043b\u0435\u0434 \u043f\u0440\u043e\u043c\u044f\u043d\u0430\u0442\u0430 \u043f\u043e\ + \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0442\u0430. \u0412\u0435\u0440\u0441\u0438\u0438\u0442\u0435, \u043f\u043e \u0440\u0430\u043d\u043d\u0438 \u043e\u0442 \u0442\u043e\u0432\u0430, \u0441\u0430 \u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u0440\u043d\u043e. \u0417\u0430 \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430\u043d\u0435 \u0435 \u0434\u0430\ + \u0437\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u043d\u0430\u043d\u043e\u0432\u043e. +Upgrade=\ + \u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 +Manage\ Old\ Data=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438 +Discard\ Unreadable\ Data=\ + \u041e\u0442\u0445\u0432\u044a\u0440\u043b\u044f\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435, \u043a\u043e\u0438\u0442\u043e \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0447\u0435\u0442\u0430\u0442 +# \ +# When there are changes in how data is stored on disk, Jenkins 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 Jenkins 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 Jenkins version(s) where the data structure was changed. +blurb.1=\ + \u041f\u0440\u0438 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0442\u0430 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 Jenkins \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f:\ + \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0441\u0435 \u043c\u0438\u0433\u0440\u0438\u0440\u0430\u0442 \u043a\u044a\u043c \u043d\u043e\u0432\u0430\u0442\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u0438 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430, \u043d\u043e \u0442\u043e\u0439\ + \u043e\u0441\u0442\u0430\u0432\u0430 \u0441\u044a\u0441 \u0441\u0442\u0430\u0440\u0430\u0442\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430. \u0422\u043e\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0432\u0440\u044a\u0449\u0430\u043d\u0435 \u043a\u044a\u043c \u043f\u0440\u0435\u0434\u0438\u0448\u043d\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430\ + Jenkins, \u0430\u043a\u043e \u0441\u0435 \u043d\u0430\u043b\u0430\u0433\u0430. \u0422\u043e\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0434\u0430 \u043e\u0441\u0442\u0430\u043d\u0430\u0442 \u0432 \u0441\u0442\u0430\u0440\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442 \u0437\u0430\ + \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u043d\u043e \u0434\u044a\u043b\u0433\u043e \u0432\u0440\u0435\u043c\u0435. \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u043f\u043e-\u0434\u043e\u043b\u0443 \u0441\u044a\u0434\u044a\u0440\u0436\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0441 \u0442\u0430\u043a\u0438\u0432\u0430 \u0434\u0430\u043d\u043d\u0438,\ + \u043a\u0430\u043a\u0442\u043e \u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u043d\u0430 Jenkins, \u043f\u0440\u0438 \u043a\u043e\u044f\u0442\u043e \u0435 \u0441\u043c\u0435\u043d\u0435\u043d \u0444\u043e\u0440\u043c\u0430\u0442\u044a\u0442 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435. +# \ +# (downgrade as far back as the selected version may still be possible) +blurb.5=\ + (\u0432\u0440\u044a\u0449\u0430\u043d\u0435 \u043a\u044a\u043c \u043d\u0430\u0439-\u0441\u0442\u0430\u0440\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u0430 \u043e\u0442 \u0438\u0437\u0431\u0440\u0430\u043d\u0430\u0442\u0430) +# \ +# The form below may be used to resave these files in the current format. Doing so means a \ +# downgrade to a Jenkins release older than the selected version will not be able to read the \ +# data stored in the new format. Note that simply using Jenkins to create and configure jobs \ +# and run builds can save data that may not be readable by older Jenkins 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=\ + \u0424\u043e\u0440\u043c\u0443\u043b\u044f\u0440\u044a\u0442 \u043f\u043e-\u0434\u043e\u043b\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0434\u0430 \u043f\u0440\u0435\u0437\u0430\u043f\u0438\u0448\u0435\u0442\u0435 \u0442\u0435\u0437\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u043d\u043e\u0432\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442.\ + \u0410\u043a\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u0435 \u0442\u043e\u0432\u0430 \u0438 \u0432\u044a\u0440\u043d\u0435\u0442\u0435 Jenkins \u043a\u044a\u043c \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u0435\u0434\u0438 \u0438\u0437\u0431\u0440\u0430\u043d\u0430\u0442\u0430, \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u043d\u044f\u043c\u0430\ + \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0447\u0435\u0442\u0430\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e. \u0414\u043e\u0440\u0438 \u0431\u0435\u0437 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0442\u043e\u0437\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u044f\u0440 \u0435 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0449\u043e\ + \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u0434\u0430 \u0441\u0435 \u0441\u043b\u0443\u0447\u0438 \u2014 \u0430\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u043d\u043e\u0432\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f, \u043f\u0440\u043e\u043c\u0435\u043d\u0438\u0442\u0435 \u0438\u043b\u0438\ + \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442\u0435 \u0432\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438. \u0410\u043a\u043e \u0432 \u0434\u044f\u0441\u043d\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0430 \u043d\u0430 \u0433\u043e\u0440\u043d\u0430\u0442\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0430\ + \u0434\u043e\u043a\u043b\u0430\u0434\u0432\u0430\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0438 \u043f\u0440\u0438 \u0447\u0435\u0442\u0435\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438, \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0449\u0435 \u0431\u044a\u0434\u0430\u0442 \u0438\u0437\u0433\u0443\u0431\u0435\u043d\u0438, \u0430\u043a\u043e\ + \u043f\u0440\u0435\u0437\u0430\u043f\u0438\u0448\u0435\u0442\u0435 \u0444\u0430\u0439\u043b\u0430. +# \ +# It is acceptable to leave unreadable data in these files, as Jenkins will safely ignore it. \ +# To avoid the log messages at Jenkins startup you can permanently delete the unreadable data \ +# by resaving these files using the button below. +blurb.6=\ + \u041d\u0435 \u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0434\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438, \u043a\u043e\u0438\u0442\u043e \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0447\u0435\u0442\u0430\u0442 \u0432 \u0442\u0435\u0437\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435,\ + \u0437\u0430\u0449\u043e\u0442\u043e Jenkins \u0449\u0435 \u0433\u0438 \u043f\u0440\u0435\u0441\u043a\u043e\u0447\u0438. \u0410\u043a\u043e \u043d\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u043f\u043e\u0432\u0435\u0447\u0435 \u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u0442\u0435 \u0442\u0435\u0437\u0438\ + \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u043d\u0435\u0447\u0435\u0442\u0438\u043c\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438 \u043a\u0430\u0442\u043e \u043f\u0440\u0435\u0437\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0441\ + \u0431\u0443\u0442\u043e\u043d\u0430 \u043e\u0442\u0434\u043e\u043b\u0443. +Unreadable\ Data=\ + \u0414\u0430\u043d\u043d\u0438, \u043a\u043e\u0438\u0442\u043e \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0447\u0435\u0442\u0430\u0442 +No\ old\ data\ was\ found.=\ + \u041d\u0435 \u0441\u0430 \u043e\u0442\u043a\u0440\u0438\u0442\u0438 \u0441\u0442\u0430\u0440\u0438 \u0434\u0430\u043d\u043d\u0438. +Version=\ + \u0412\u0435\u0440\u0441\u0438\u044f +Resave\ data\ files\ with\ structure\ changes\ no\ newer\ than\ Jenkins=\ + \u041f\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0441 \u043f\u0440\u043e\u043c\u0435\u043d\u0438 \u043f\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0442\u0430 \u043d\u0435 \u043f\u043e \u043d\u043e\u0432\u0438, \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0430\u0442\u0430\ + \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 Jenkins. +Error=\ + \u0413\u0440\u0435\u0448\u043a\u0430 +Type=\ + \u0412\u0438\u0434 +# \ +# 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 Jenkins 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 Jenkins to \ +# startup and function properly. +blurb.2=\ + \u0412 \u043d\u044f\u043a\u043e\u0438 \u0441\u043b\u0443\u0447\u0430\u0438 \u0432\u044a\u0437\u043d\u0438\u043a\u0432\u0430\u0442 \u0433\u0440\u0435\u0448\u043a\u0438 \u043f\u0440\u0438 \u0447\u0435\u0442\u0435\u043d\u0435\u0442\u043e \u043d\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 (\u043d\u0430\u043f\u0440. \u0430\u043a\u043e \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\ + \u0434\u043e\u0431\u0430\u0432\u0438 \u0434\u0430\u043d\u043d\u0438, \u043d\u043e \u0441\u043b\u0435\u0434 \u0442\u043e\u0432\u0430 \u0431\u0438\u0432\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0430, \u0430\u043a\u043e \u043e\u0449\u0435 \u043d\u0435 \u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u043e\u0434 \u0437\u0430\ + \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0438\u043b\u0438 \u0430\u043a\u043e Jenkins \u0431\u0438\u0432\u0430 \u0441\u043c\u0435\u043d\u0435\u043d \u0441 \u043f\u043e-\u0441\u0442\u0430\u0440\u0430 \u0432\u0435\u0440\u0441\u0438\u044f, \u043d\u043e \u043d\u043e\u0432\u0430\u0442\u0430 \u0432\u0435\u0447\u0435 \u0435\ + \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0430 \u0434\u0430\u043d\u043d\u0438). \u0422\u0435\u0437\u0438 \u0433\u0440\u0435\u0448\u043a\u0438 \u0441\u0435 \u0432\u043f\u0438\u0441\u0432\u0430\u0442 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0442\u0435, \u043d\u043e \u0434\u0430\u043d\u043d\u0438\u0442\u0435, \u043a\u043e\u0438\u0442\u043e \u043d\u0435\ + \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0447\u0435\u0442\u0430\u0442, \u0441\u0435 \u043f\u0440\u0435\u0441\u043a\u0430\u0447\u0430\u0442, \u0437\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435 Jenkins \u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e. diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_bg.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_bg.properties new file mode 100644 index 0000000000..b8566357e9 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_bg.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041e\u0442\u043a\u0430\u0437 +Manage=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 +You\ have\ data\ stored\ in\ an\ older\ format\ and/or\ unreadable\ data.=\ + \u0427\u0430\u0441\u0442 \u043e\u0442 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u043f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u0438, \u0444\u043e\u0440\u043c\u0430\u0442\u044a\u0442 \u0438\u043c \u0435 \u043f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u0441\u0442\u0430\u0440 \u0438\u043b\u0438\ + \u0435 \u0441\u0433\u0440\u0435\u0448\u0435\u043d. diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_bg.properties b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_bg.properties index 52cd6bb32a..a30f17c108 100644 --- a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_bg.properties +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_bg.properties @@ -20,6 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Dismiss=\u041f\u0440\u043e\u043f\u0443\u0441\u043d\u0438 -More\ Info=\u041f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f -blurb=\u0418\u0437\u0433\u043b\u0435\u0436\u0434\u0430, \u0447\u0435 \u0438\u043c\u0430\u0442\u0435 \u0433\u0440\u0435\u0448\u043a\u0430 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0442\u0430 \u043d\u0430 \u0432\u0430\u0448\u0435\u0442\u043e reverse proxy. +Dismiss=\ + \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435 +More\ Info=\ + \u041f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f +blurb=\ + \u0418\u0437\u0433\u043b\u0435\u0436\u0434\u0430, \u0447\u0435 \u0438\u043c\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0442\u0430 \u043d\u0430 \u043d\u0430\u0441\u0440\u0435\u0449\u043d\u0438\u044f \u0441\u044a\u0440\u0432\u044a\u0440-\u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a. diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_bg.properties b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_bg.properties new file mode 100644 index 0000000000..8678416931 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_bg.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041e\u0442\u043a\u0430\u0437\u0432\u0430\u043d\u0435 +Create\ a\ view\ now=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432 \u0438\u0437\u0433\u043b\u0435\u0434 +# 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=\ + \u0418\u0437\u0433\u043b\u0435\u0436\u0434\u0430, \u0447\u0435 \u0431\u0440\u043e\u044f\u0442 \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u0442\u0430 \u0435 \u043f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u0433\u043e\u043b\u044f\u043c. \u041c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0433\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0438\u0440\u0430\u0442\u0435\ + \u043f\u043e \u0438\u0437\u0433\u043b\u0435\u0434\u0438. \u0417\u0430 \u0434\u0430 \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u043d\u043e\u0432 \u0438\u0437\u0433\u043b\u0435\u0434, \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u201e+\u201c \u0432 \u0433\u043e\u0440\u043d\u0430\u0442\u0430 \u0447\u0430\u0441\u0442 \u043d\u0430\ + \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430. diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_bg.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_bg.properties new file mode 100644 index 0000000000..dca26fb986 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_bg.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 should be taken automatically to the new Jenkins in a few seconds. \ +# If for some reason the service fails to start, please check the Windows event log for errors and consult the wiki page \ +# located at the official wiki. +blurb=\ + \u0421\u043b\u0435\u0434 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438 \u0442\u0440\u044f\u0431\u0432\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0434\u0430 \u0431\u044a\u0434\u0435\u0442\u0435 \u043f\u0440\u0435\u043d\u0430\u0441\u043e\u0447\u0435\u043d\u0438 \u043a\u044a\u043c \u043d\u043e\u0432\u0438\u044f\ + Jenkins. \u0410\u043a\u043e \u0442\u043e\u0432\u0430 \u043d\u0435 \u0441\u0442\u0430\u043d\u0435 \u0432 \u043d\u044f\u043a\u0430\u043a\u0432\u043e \u0440\u0430\u0437\u0443\u043c\u043d\u043e \u0432\u0440\u0435\u043c\u0435, \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0437\u0430\ + \u0441\u044a\u0431\u0438\u0442\u0438\u044f \u043d\u0430 Windows \u0438 \u043f\u043e\u0441\u0435\u0442\u0435\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430\ + \u0437\u0430 \u0442\u043e\u0437\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u043d\u043e\u0442\u043e \u0443\u0438\u043a\u0438 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. +# located at the official wiki. +Please\ wait\ while\ Jenkins\ is\ restarting=\ + \u0418\u0437\u0447\u0430\u043a\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0430\u0442\u043e Jenkins \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_bg.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_bg.properties new file mode 100644 index 0000000000..55244f7fc5 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_bg.properties @@ -0,0 +1,41 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 +Install\ as\ Windows\ Service=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u0443\u0441\u043b\u0443\u0433\u0430 \u043d\u0430 Windows +Installation\ Directory=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u043e\u043d\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f +Yes=\ + \u0414\u0430 +Installation\ Complete=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0438 +# Installation is successfully completed. Do you want to stop this Jenkins and start a newly installed Windows service? +restartBlurb=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e. \u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u0441\u043f\u0440\u0435\u0442\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u044f Jenkins \u0438 \u0434\u0430\ + \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442\u0435 \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 Windows? +# Installing Jenkins as a Windows service allows you to start Jenkins as soon as the machine starts, and regardless of \ +# who is interactively using Jenkins. +installBlurb=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 Jenkins \u043a\u0430\u0442\u043e \u0443\u0441\u043b\u0443\u0433\u0430 \u043d\u0430 Windows \u0432\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0442\u043e\u0439 \u0434\u0430 \u0441\u0435\ + \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430\u0435\u0434\u043d\u043e \u0441 \u043c\u0430\u0448\u0438\u043d\u0430\u0442\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043a\u043e\u0439 \u043f\u043e\u043b\u0437\u0432\u0430 Jenkins \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e. diff --git a/core/src/main/resources/hudson/logging/LogRecorder/configure_bg.properties b/core/src/main/resources/hudson/logging/LogRecorder/configure_bg.properties new file mode 100644 index 0000000000..6ee757f527 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/configure_bg.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loggers=\ + \u0416\u0443\u0440\u043d\u0430\u043b\u0438 +Logger=\ + \u0416\u0443\u0440\u043d\u0430\u043b +Save=\ + \u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 +Log\ level=\ + \u041d\u0438\u0432\u043e \u043d\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u043d\u0438\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 +Name=\ + \u0418\u043c\u0435 +List\ of\ loggers\ and\ the\ log\ levels\ to\ record=\ + \u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0442\u0435 \u0438 \u043d\u0438\u0432\u0430\u0442\u0430 \u0438\u043c diff --git a/core/src/main/resources/hudson/logging/LogRecorder/delete_bg.properties b/core/src/main/resources/hudson/logging/LogRecorder/delete_bg.properties new file mode 100644 index 0000000000..8d3e2bf3ba --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/delete_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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?=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0435\u0442\u0435 \u0442\u043e\u0432\u0430 \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0438? +Yes=\ + \u0414\u0430 diff --git a/core/src/main/resources/hudson/logging/LogRecorder/index_bg.properties b/core/src/main/resources/hudson/logging/LogRecorder/index_bg.properties new file mode 100644 index 0000000000..96ee80ccf8 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/index_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ This\ Log=\ + \u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0436\u0443\u0440\u043d\u0430\u043b diff --git a/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_bg.properties b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_bg.properties new file mode 100644 index 0000000000..dfa27cde7e --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 +Back\ to\ Loggers=\ + \u041a\u044a\u043c \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0442\u0435 +Log\ records=\ + \u0416\u0443\u0440\u043d\u0430\u043b\u043d\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 +Configure=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/all_bg.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/all_bg.properties new file mode 100644 index 0000000000..57eb747540 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/all_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Jenkins\ Log=\ + \u0416\u0443\u0440\u043d\u0430\u043b \u043d\u0430 Jenkins diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/feeds_bg.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/feeds_bg.properties new file mode 100644 index 0000000000..b3eb8cbd67 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/feeds_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +>\ WARNING=\ + > \u041f\u0420\u0415\u0414\u0423\u041f\u0420\u0415\u0416\u0414\u0415\u041d\u0418\u0415 +>\ SEVERE=\ + > \u041e\u041f\u0410\u0421\u041d\u041e\u0421\u0422 +All=\ + \u0412\u0441\u0438\u0447\u043a\u0438 diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/index_bg.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/index_bg.properties new file mode 100644 index 0000000000..2740708946 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/index_bg.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ Recorders=\ + \u0416\u0443\u0440\u043d\u0430\u043b\u0438 +Name=\ + \u0418\u043c\u0435 +Add\ new\ log\ recorder=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432 \u0436\u0443\u0440\u043d\u0430\u043b +All\ Jenkins\ Logs=\ + \u0412\u0441\u0438\u0447\u043a\u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u0438 \u043d\u0430 Jenkins +Log=\ + \u0416\u0443\u0440\u043d\u0430\u043b diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels_bg.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_bg.properties new file mode 100644 index 0000000000..1372aaaa67 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_bg.properties @@ -0,0 +1,40 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 with no name is the default logger. \ +# This level will be inherited by all loggers without a configured level. +defaultLoggerMsg=\ + \u0416\u0443\u0440\u043d\u0430\u043b\u044a\u0442 \u0431\u0435\u0437 \u0438\u043c\u0435 \u0435 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435. \u041d\u0435\u0433\u043e\u0432\u043e\u0442\u043e \u043d\u0438\u0432\u043e \u0441\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u044f\u0432\u0430 \u043e\u0442 \u0432\u0441\u0438\u0447\u043a\u0438\ + \u0436\u0443\u0440\u043d\u0430\u043b\u0438 \u0431\u0435\u0437 \u0438\u0437\u0440\u0438\u0447\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043d\u0438\u0432\u043e. +Level=\ + \u041d\u0438\u0432\u043e +Submit=\ + \u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 +Logger\ Configuration=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 +Adjust\ Levels=\ + \u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043d\u0438\u0432\u0430\u0442\u0430 +Name=\ + \u0418\u043c\u0435 +# https://jenkins.io/redirect/log-levels +url=\ + https://jenkins.io/redirect/log-levels diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/new_bg.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/new_bg.properties new file mode 100644 index 0000000000..0736fc63c2 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/new_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0435 diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_bg.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_bg.properties new file mode 100644 index 0000000000..cf4d1a5f0c --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_bg.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041a\u044a\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u043f\u0430\u043d\u0435\u043b +Logger\ List=\ + \u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0442\u0435 +Manage\ Jenkins=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 Jenkins +New\ Log\ Recorder=\ + \u041d\u043e\u0432 \u0436\u0443\u0440\u043d\u0430\u043b +All\ Logs=\ + \u0412\u0441\u0438\u0447\u043a\u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u0438 +Log\ Levels=\ + \u041d\u0438\u0432\u043e \u043d\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u043d\u0438\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 diff --git a/core/src/main/resources/hudson/markup/EscapedMarkupFormatter/config_bg.properties b/core/src/main/resources/hudson/markup/EscapedMarkupFormatter/config_bg.properties new file mode 100644 index 0000000000..b5bacd470c --- /dev/null +++ b/core/src/main/resources/hudson/markup/EscapedMarkupFormatter/config_bg.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Treats all input as plain text. HTML unsafe characters like < and & are escaped to their respective character entities. +blurb=\ + \u0414\u0430 \u0441\u0435 \u043f\u0440\u0438\u0435\u043c\u0435, \u0447\u0435 \u043f\u043e\u0434\u0430\u0434\u0435\u043d\u0438\u044f\u0442 \u0442\u0435\u043a\u0441\u0442 \u0432\u0438\u043d\u0430\u0433\u0438 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u043e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d \u0442\u0435\u043a\u0441\u0442. \u0417\u043d\u0430\u0446\u0438\u0442\u0435,\ + \u043a\u043e\u0438\u0442\u043e \u043e\u0431\u044a\u0440\u043a\u0432\u0430\u0442 HTML, \u043a\u0430\u0442\u043e \u201e<\u201c \u0438 \u201e&\u201c \u0431\u0438\u0432\u0430\u0442 \u0437\u0430\u043c\u0435\u043d\u044f\u043d\u0438 \u0441\u044a\u0441 \u0441\u044a\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0430\u0449\u0438\u0442\u0435\ + \u0437\u0430\u043c\u0435\u0441\u0442\u0432\u0430\u0449\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u043d\u043e\u0441\u0442\u0438. diff --git a/core/src/main/resources/hudson/model/FileParameterDefinition/config_bg.properties b/core/src/main/resources/hudson/model/FileParameterDefinition/config_bg.properties new file mode 100644 index 0000000000..07768145c3 --- /dev/null +++ b/core/src/main/resources/hudson/model/FileParameterDefinition/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 +File\ location=\ + \u041c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u0430 diff --git a/core/src/main/resources/hudson/model/FileParameterValue/value_bg.properties b/core/src/main/resources/hudson/model/FileParameterValue/value_bg.properties new file mode 100644 index 0000000000..6a810d89a1 --- /dev/null +++ b/core/src/main/resources/hudson/model/FileParameterValue/value_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0438\u0437\u0433\u043b\u0435\u0434 diff --git a/core/src/main/resources/hudson/model/Fingerprint/index_bg.properties b/core/src/main/resources/hudson/model/Fingerprint/index_bg.properties new file mode 100644 index 0000000000..85fc773896 --- /dev/null +++ b/core/src/main/resources/hudson/model/Fingerprint/index_bg.properties @@ -0,0 +1,35 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0423\u043f\u043e\u0442\u0440\u0435\u0431\u0430 +outside\ Jenkins=\ + \u0438\u0437\u0432\u044a\u043d Jenkins +This\ file\ has\ not\ been\ used\ anywhere\ else.=\ + \u0422\u043e\u0437\u0438 \u0444\u0430\u0439\u043b \u043d\u0435 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u043d\u0438\u043a\u044a\u0434\u0435 \u0434\u0440\u0443\u0433\u0430\u0434\u0435. +# Introduced {0} ago +introduced=\ + \u0412\u044a\u0432\u0435\u0434\u0435\u043d\u043e \u043f\u0440\u0435\u0434\u0438 {0} +This\ file\ has\ been\ used\ in\ the\ following\ places=\ + \u0422\u043e\u0437\u0438 \u0444\u0430\u0439\u043b \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u043d\u0430 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043c\u0435\u0441\u0442\u0430. +Back\ to\ Dashboard=\ + \u041a\u044a\u043c \u0442\u0430\u0431\u043b\u043e\u0442\u043e \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 diff --git a/core/src/main/resources/hudson/model/JDK/config_bg.properties b/core/src/main/resources/hudson/model/JDK/config_bg.properties new file mode 100644 index 0000000000..0736fc63c2 --- /dev/null +++ b/core/src/main/resources/hudson/model/JDK/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0435 diff --git a/core/src/main/resources/hudson/model/Label/index_bg.properties b/core/src/main/resources/hudson/model/Label/index_bg.properties new file mode 100644 index 0000000000..249ee5929e --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/index_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041c\u0430\u0448\u0438\u043d\u0438 +Projects=\ + \u041f\u0440\u043e\u0435\u043a\u0442\u0438 +None=\ + \u041d\u044f\u043c\u0430 diff --git a/core/src/main/resources/hudson/model/Label/sidepanel_bg.properties b/core/src/main/resources/hudson/model/Label/sidepanel_bg.properties new file mode 100644 index 0000000000..bbbb60523d --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/sidepanel_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0440\u043e\u0439\u043a\u0438 +Overview=\ + \u041f\u0440\u0435\u0433\u043b\u0435\u0434 +Load\ Statistics=\ + \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0442 +Back\ to\ Dashboard=\ + \u041a\u044a\u043c \u0442\u0430\u0431\u043b\u043e\u0442\u043e \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries_bg.properties b/core/src/main/resources/hudson/model/ListView/configure-entries_bg.properties new file mode 100644 index 0000000000..151467b9f6 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/configure-entries_bg.properties @@ -0,0 +1,46 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Enabled\ jobs\ only=\ + \u0421\u0430\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0442\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f +Status\ Filter=\ + \u0424\u0438\u043b\u0442\u044a\u0440 \u043f\u043e \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e +Add\ column=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 +Regular\ expression=\ + \u0420\u0435\u0433\u0443\u043b\u044f\u0440\u0435\u043d \u0438\u0437\u0440\u0430\u0437 +Disabled\ jobs\ only=\ + \u0421\u0430\u043c\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0442\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f +Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=\ + \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u0435\u043d \u0438\u0437\u0440\u0430\u0437 \u0437\u0430 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043a\u044a\u043c \u0438\u0437\u0433\u043b\u0435\u0434\u0430 +Add\ Job\ Filter=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0444\u0438\u043b\u0442\u044a\u0440 \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u0442\u0430 +Job\ Filters=\ + \u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u0442\u0430 +All\ selected\ jobs=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u0438\u0442\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f +Columns=\ + \u041a\u043e\u043b\u043e\u043d\u0438 +Recurse\ in\ subfolders=\ + \u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u0432\u044a\u0432 \u0432\u0441\u0438\u0447\u043a\u0438 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 +Jobs=\ + \u0417\u0430\u0434\u0430\u043d\u0438\u044f diff --git a/core/src/main/resources/hudson/model/ListView/newJobButtonBar_bg.properties b/core/src/main/resources/hudson/model/ListView/newJobButtonBar_bg.properties new file mode 100644 index 0000000000..9df22d3d0d --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/newJobButtonBar_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ to\ current\ view=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043a\u044a\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u044f \u0438\u0437\u0433\u043b\u0435\u0434 diff --git a/core/src/main/resources/hudson/model/ListView/newViewDetail_bg.properties b/core/src/main/resources/hudson/model/ListView/newViewDetail_bg.properties new file mode 100644 index 0000000000..4db2531bb9 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/newViewDetail_bg.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 items in a simple list format. You can choose which jobs are to be displayed in which view. +blurb=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043e\u0431\u0435\u043a\u0442\u0438\u0442\u0435 \u043a\u0430\u0442\u043e \u0441\u043f\u0438\u0441\u044a\u043a. \u0412\u0438\u0435 \u0440\u0435\u0448\u0430\u0432\u0430\u0442\u0435 \u043a\u043e\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u0438 \u0438\u0437\u0433\u043b\u0435\u0434\u0438 \u0434\u0430\ + \u0441\u0435 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u0442. diff --git a/core/src/main/resources/hudson/model/Messages_bg.properties b/core/src/main/resources/hudson/model/Messages_bg.properties index dc4ad6d81c..34260ce072 100644 --- a/core/src/main/resources/hudson/model/Messages_bg.properties +++ b/core/src/main/resources/hudson/model/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -165,7 +165,7 @@ FreeStyleProject.Description=\ \u0422\u043e\u0432\u0430 \u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e\u0441\u0442 \u0432 Jenkins. Jenkins \u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u0437\u0433\u0440\u0430\u0434\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u0430\u0442\u043e\ \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430\ \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442. \u0422\u043e\u0432\u0430 \u0432\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 Jenkins \u0438 \u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0438 \u043e\u0442\ - \u043e\u0441\u0442\u043d\u043e\u0432\u043d\u0430\u0442\u0430 \u043c\u0443 \u0446\u0435\u043b\u0438. + \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u0442\u0430 \u043c\u0443 \u0446\u0435\u043b\u0438. Hudson.BadPortNumber=\ @@ -368,8 +368,8 @@ Slave.Remote.Director.Mandatory=\ \u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u0430. Slave.Remote.Relative.Path.Warning=\ \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0441\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u043d \u043f\u044a\u0442 \u043a\u0430\u0442\u043e \u043a\u043e\u0440\u0435\u043d\u043e\u0432\u0430\ - \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f? \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0434\u0430\u043b\u0438 \u0438\u0437\u0431\u0440\u0430\u043d\u0438\u044f\u0442 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u043f\u0440\u043e\u0446\u0435\u0441 \u043e\u0441\u0438\u0433\u0443\u0440\u044f\u0432\u0430 \u043a\u043e\u043d\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\ - \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. \u041f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0438\u0442\u0435\u043b\u043d\u043e \u0435 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u0435\u043d \u043f\u044a\u0442. + \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f? \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0434\u0430\u043b\u0438 \u0438\u0437\u0431\u0440\u0430\u043d\u0438\u044f\u0442 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u043f\u0440\u043e\u0446\u0435\u0441 \u043d\u0435 \u0437\u0430\u043c\u044a\u0440\u0441\u044f\u0432\u0430 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u0442\u0430\ + \u0440\u0430\u0431\u043e\u0442\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. \u041f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0438\u0442\u0435\u043b\u043d\u043e \u0435 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u0435\u043d \u043f\u044a\u0442. TopLevelItemDescriptor.NotApplicableIn=\ {0} \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0430\u0442 \u0432 {1} @@ -703,3 +703,30 @@ AbstractProject.PollingVetoed=\ # No Parameters are specified for this parameterized build Hudson.NoParamsSpecified=\ \u041b\u0438\u043f\u0441\u0432\u0430\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u0437\u0430 \u0442\u043e\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. +# Update Center +UpdateCenter.DisplayName=\ + \u0426\u0435\u043d\u0442\u044a\u0440 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 +# The display name, "{0}", is already in use by another view and \ +# could cause confusion and delay. +View.DisplayNameNotUniqueWarning=\ + \u0418\u043c\u0435\u0442\u043e \u201e{0}\u201c \u0432\u0435\u0447\u0435 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433 \u0438\u0437\u0433\u043b\u0435\u0434, \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u0442\u0430 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0430 \u0449\u0435 \u0435 \u043e\u0431\u044a\u0440\u043a\u0432\u0430\u0449\u0430. +# Executor slot already in use +Queue.executor_slot_already_in_use= +# Failed to interrupt and stop {0,choice,1#{0,number,integer} build|1<{0,number,integer} \ +# builds} of {1} +AbstractItem.FailureToStopBuilds=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u0438 \u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430\ + {0,choice,1#{0,number,integer} \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435|1<{0,number,integer} \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f}\ + \u043d\u0430 \u201e{1}\u201c. +# Jenkins Update Notification +UpdateCenter.CoreUpdateMonitor.DisplayName=\ + \u0418\u0437\u0432\u0435\u0441\u0442\u0438\u0435 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 Jenkins +# Build +AbstractItem.TaskNoun=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +# {0} is currently being deleted +AbstractItem.BeingDeleted=\ + \u201e{0}\u201c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0432\u0430 +# {0} has been removed from configuration +Queue.node_has_been_removed_from_configuration=\ + \u201e{0}\u201c \u0435 \u0438\u0437\u0442\u0440\u0438\u0442 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 diff --git a/core/src/main/resources/hudson/model/MyView/newViewDetail_bg.properties b/core/src/main/resources/hudson/model/MyView/newViewDetail_bg.properties new file mode 100644 index 0000000000..5cbef8173a --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/newViewDetail_bg.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0422\u043e\u0437\u0438 \u0438\u0437\u0433\u043b\u0435\u0434 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0432\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f, \u0434\u043e \u043a\u043e\u0438\u0442\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u044f\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\ + \u0438\u043c\u0430 \u0434\u043e\u0441\u0442\u044a\u043f. diff --git a/core/src/main/resources/hudson/model/MyView/noJob_bg.properties b/core/src/main/resources/hudson/model/MyView/noJob_bg.properties new file mode 100644 index 0000000000..5040f89100 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/noJob_bg.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0412 \u0442\u043e\u0437\u0438 \u0438\u0437\u0433\u043b\u0435\u0434 \u043d\u044f\u043c\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u044f. diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/config_bg.properties b/core/src/main/resources/hudson/model/MyViewsProperty/config_bg.properties new file mode 100644 index 0000000000..fdd4de2794 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/config_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434 +# The view selected by default when navigating to the users' private views +description=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f\u0442 \u0438\u0437\u0433\u043b\u0435\u0434, \u043a\u043e\u0439\u0442\u043e \u0441\u0435 \u043f\u043e\u044f\u0432\u044f\u0432\u0430 \u043f\u0440\u0438 \u043f\u0440\u0435\u043c\u0438\u043d\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043b\u0438\u0447\u043d\u0438\u0442\u0435 \u0438\u0437\u0433\u043b\u0435\u0434\u0438 \u043d\u0430\ + \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438\u0442\u0435. diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/newView_bg.properties b/core/src/main/resources/hudson/model/MyViewsProperty/newView_bg.properties new file mode 100644 index 0000000000..07cb7f5572 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/newView_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0418\u043c\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434\u0430 diff --git a/core/src/main/resources/hudson/model/NoFingerprintMatch/index_bg.properties b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_bg.properties new file mode 100644 index 0000000000..b0593f3c6e --- /dev/null +++ b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_bg.properties @@ -0,0 +1,41 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 fingerprint {0} did not match any of the recorded data. +description=\ + \u0426\u0438\u0444\u0440\u043e\u0432\u0438\u044f\u0442 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u043a \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 \u0441 \u043d\u0438\u043a\u043e\u0439 \u043e\u0442 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0438\u0442\u0435. +# \ +# Perhaps the projects are not set up correctly and not recording \ +# fingerprints. Check the project setting. +cause.2=\ + \u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0442\u0435 \u0434\u0430 \u043d\u0435 \u0441\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u0438 \u0434\u0430 \u043d\u0435 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u0442\ + \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u0446\u0438\u0442\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435. +Back\ to\ Dashboard=\ + \u041a\u044a\u043c \u0442\u0430\u0431\u043b\u043e\u0442\u043e \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 +# \ +# Perhaps the file was not created under Jenkins. \ +# Maybe it\u2019s a version that someone built locally on his/her own machine. +cause.1=\ + \u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u0435 \u0444\u0430\u0439\u043b\u044a\u0442 \u0434\u0430 \u043d\u0435 \u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u043d \u043e\u0442 Jenkins, \u0430 \u0434\u0430 \u0435 \u0432\u0435\u0440\u0441\u0438\u044f, \u0438\u0437\u0433\u0440\u0430\u0434\u0435\u043d\u0430 \u043e\u0442\ + \u043d\u044f\u043a\u043e\u0439 \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u0446\u0438\u0442\u0435 \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u0430\u0442\u0430 \u043c\u0443 \u043c\u0430\u0448\u0438\u043d\u0430. +No\ matching\ record\ found=\ + \u041d\u044f\u043c\u0430 \u0442\u0430\u043a\u0438\u0432\u0430 \u0437\u0430\u043f\u0438\u0441\u0438. diff --git a/core/src/main/resources/hudson/model/ParametersAction/index_bg.properties b/core/src/main/resources/hudson/model/ParametersAction/index_bg.properties new file mode 100644 index 0000000000..c423c2cdbd --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersAction/index_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Parameters=\ + \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_bg.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_bg.properties new file mode 100644 index 0000000000..9b3bee5571 --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_bg.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 requires parameters: +description=\ + \u0422\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438: +Build=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +LOADING=\ + \u0417\u0410\u0420\u0415\u0416\u0414\u0410\u041d\u0415 diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_bg.properties b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_bg.properties new file mode 100644 index 0000000000..7e7c8cd6bd --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0435 +Default\ Value=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 +Description=\ + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 diff --git a/core/src/main/resources/hudson/model/ProxyView/configure-entries_bg.properties b/core/src/main/resources/hudson/model/ProxyView/configure-entries_bg.properties new file mode 100644 index 0000000000..75c838566c --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/configure-entries_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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.=\ + \u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0433\u043b\u043e\u0431\u0430\u043b\u043d\u0438\u044f \u0438\u0437\u0433\u043b\u0435\u0434, \u043a\u043e\u0439\u0442\u043e \u0449\u0435 \u0431\u044a\u0434\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d. +View\ name=\ + \u0418\u043c\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 diff --git a/core/src/main/resources/hudson/model/ProxyView/newViewDetail_bg.properties b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_bg.properties new file mode 100644 index 0000000000..68848fe8ab --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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.=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0433\u043b\u043e\u0431\u0430\u043b\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434. diff --git a/core/src/main/resources/hudson/model/RunParameterDefinition/config_bg.properties b/core/src/main/resources/hudson/model/RunParameterDefinition/config_bg.properties new file mode 100644 index 0000000000..4986260823 --- /dev/null +++ b/core/src/main/resources/hudson/model/RunParameterDefinition/config_bg.properties @@ -0,0 +1,38 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0435 +Successful\ Builds\ Only=\ + \u0421\u0430\u043c\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u0438\u0442\u0435 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f +Filter=\ + \u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 +Stable\ Builds\ Only=\ + \u0421\u0430\u043c\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u043d\u0438\u0442\u0435 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f +Description=\ + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 +All\ Builds=\ + \u0412\u0441\u0438\u0447\u043a\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f +Completed\ Builds\ Only=\ + \u0421\u0430\u043c\u043e \u0437\u0430\u0432\u044a\u0440\u0448\u0438\u043b\u0438\u0442\u0435 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f +Project=\ + \u041f\u0440\u043e\u0435\u043a\u0442 diff --git a/core/src/main/resources/hudson/model/Slave/help-launcher_bg.properties b/core/src/main/resources/hudson/model/Slave/help-launcher_bg.properties new file mode 100644 index 0000000000..72d83f2ea1 --- /dev/null +++ b/core/src/main/resources/hudson/model/Slave/help-launcher_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ Jenkins\ starts\ this\ agent.=\ + \u041a\u0430\u043a Jenkins \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0442\u043e\u0437\u0438 \u0430\u0433\u0435\u043d\u0442. diff --git a/core/src/main/resources/hudson/model/StringParameterDefinition/config_bg.properties b/core/src/main/resources/hudson/model/StringParameterDefinition/config_bg.properties new file mode 100644 index 0000000000..6f20bc648a --- /dev/null +++ b/core/src/main/resources/hudson/model/StringParameterDefinition/config_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 +Name=\ + \u0418\u043c\u0435 +Default\ Value=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 diff --git a/core/src/main/resources/hudson/model/TaskAction/log_bg.properties b/core/src/main/resources/hudson/model/TaskAction/log_bg.properties new file mode 100644 index 0000000000..3fff418665 --- /dev/null +++ b/core/src/main/resources/hudson/model/TaskAction/log_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430\u0442\u0430 \u0437\u0430 \u043d\u043e\u0432 \u043e\u043f\u0438\u0442 diff --git a/core/src/main/resources/hudson/model/TextParameterDefinition/config_bg.properties b/core/src/main/resources/hudson/model/TextParameterDefinition/config_bg.properties new file mode 100644 index 0000000000..a961f4e69a --- /dev/null +++ b/core/src/main/resources/hudson/model/TextParameterDefinition/config_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 +Default\ Value=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 +Name=\ + \u0418\u043c\u0435 diff --git a/core/src/main/resources/hudson/model/TreeView/sidepanel2_bg.properties b/core/src/main/resources/hudson/model/TreeView/sidepanel2_bg.properties new file mode 100644 index 0000000000..6c612eb9e6 --- /dev/null +++ b/core/src/main/resources/hudson/model/TreeView/sidepanel2_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041d\u043e\u0432 \u0438\u0437\u0433\u043b\u0435\u0434 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/ConnectionCheckJob/row_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/ConnectionCheckJob/row_bg.properties index adee465bca..8cb1375a9d 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/ConnectionCheckJob/row_bg.properties +++ b/core/src/main/resources/hudson/model/UpdateCenter/ConnectionCheckJob/row_bg.properties @@ -20,4 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Preparation=\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 +Preparation=\ + \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_bg.properties new file mode 100644 index 0000000000..fe4ef9b629 --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_bg.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +UpgradeProgress=\ + \u0415\u0442\u0430\u043f \u043d\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 +Retry=\ + \u041d\u043e\u0432 \u043e\u043f\u0438\u0442 +UpgradeComplete=\ + \u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e +UpgradeFailed=\ + \u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e +NewVersionAvailable=\ + \u0418\u043c\u0430 \u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044f +Or\ Upgrade\ Automatically=\ + \u0418\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 +UpgradeCompleteRestartNotSupported=\ + \u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0437\u0430\u0432\u044a\u0440\u0448\u0438, \u043d\u043e \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Failure/status_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Failure/status_bg.properties new file mode 100644 index 0000000000..6ce533acfd --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Failure/status_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Details=\ + \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 +Failure=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0445 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Installing/status_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Installing/status_bg.properties new file mode 100644 index 0000000000..39ae07a9e7 --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Installing/status_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Pending/status_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Pending/status_bg.properties new file mode 100644 index 0000000000..3288cf4164 --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Pending/status_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041f\u0440\u0435\u0434\u0441\u0442\u043e\u0438 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Skipped/status_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Skipped/status_bg.properties new file mode 100644 index 0000000000..26970e7876 --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Skipped/status_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Skipped=\ + \u041f\u0440\u0435\u0441\u043a\u043e\u0447\u0435\u043d\u043e diff --git a/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Success/status_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Success/status_bg.properties new file mode 100644 index 0000000000..df2d213006 --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/Success/status_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Success=\ + \u0423\u0441\u043f\u0435\u0445 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/EnableJob/row_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/EnableJob/row_bg.properties new file mode 100644 index 0000000000..8cd15938d7 --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/EnableJob/row_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Enabled\ Dependency=\ + \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/NoOpJob/row_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/NoOpJob/row_bg.properties new file mode 100644 index 0000000000..00533baa3d --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/NoOpJob/row_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Already\ Installed=\ + \u0412\u0435\u0447\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u043e diff --git a/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Canceled/status_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Canceled/status_bg.properties new file mode 100644 index 0000000000..04691a952e --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Canceled/status_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Canceled=\ + \u041e\u0442\u043c\u0435\u043d\u0435\u043d\u043e diff --git a/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Failure/status_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Failure/status_bg.properties new file mode 100644 index 0000000000..3e609f7aad --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Failure/status_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Failure=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0445 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Pending/status_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Pending/status_bg.properties new file mode 100644 index 0000000000..3288cf4164 --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Pending/status_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041f\u0440\u0435\u0434\u0441\u0442\u043e\u0438 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Running/status_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Running/status_bg.properties new file mode 100644 index 0000000000..648d63853a --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/Running/status_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430 \u0441\u0435 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/row_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/row_bg.properties new file mode 100644 index 0000000000..3f646f192c --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/RestartJenkinsJob/row_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Restarting\ Jenkins=\ + \u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Jenkins diff --git a/core/src/main/resources/hudson/model/UpdateCenter/body_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/body_bg.properties index 8f9a6ef638..6f33842528 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/body_bg.properties +++ b/core/src/main/resources/hudson/model/UpdateCenter/body_bg.properties @@ -20,6 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Go\ back\ to\ the\ top\ page=\u041e\u0431\u0440\u0430\u0442\u043d\u043e \u043a\u044a\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 -warning=\u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0439\u0442\u0435 Jenkins, \u043a\u043e\u0433\u0430\u0442\u043e \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438 \u0438 \u043d\u044f\u043c\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 -you\ can\ start\ using\ the\ installed\ plugins\ right\ away=\u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0438\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u0435\u0433\u0430 +Go\ back\ to\ the\ top\ page=\ + \u041a\u044a\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 +warning=\ + \u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0439\u0442\u0435 Jenkins, \u043a\u043e\u0433\u0430\u0442\u043e \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438 \u0438 \u043d\u044f\u043c\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 +you\ can\ start\ using\ the\ installed\ plugins\ right\ away=\ + \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0438\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u0435\u0433\u0430 diff --git a/core/src/main/resources/hudson/model/UpdateCenter/sidepanel_bg.properties b/core/src/main/resources/hudson/model/UpdateCenter/sidepanel_bg.properties index 302e18f26a..1505afe969 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/sidepanel_bg.properties +++ b/core/src/main/resources/hudson/model/UpdateCenter/sidepanel_bg.properties @@ -20,6 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=\u041e\u0431\u0440\u0430\u0442\u043d\u043e \u043a\u044a\u043c \u041d\u0430\u0447\u0430\u043b\u0435\u043d \u0435\u043a\u0440\u0430\u043d -Manage\ Jenkins=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 Jenkins -Manage\ Plugins=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043b\u044a\u0433\u0438\u043d\u0438 +Back\ to\ Dashboard=\ + \u041a\u044a\u043c \u0442\u0430\u0431\u043b\u043e\u0442\u043e \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 +Manage\ Jenkins=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 Jenkins +Manage\ Plugins=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 diff --git a/core/src/main/resources/hudson/model/View/configure_bg.properties b/core/src/main/resources/hudson/model/View/configure_bg.properties new file mode 100644 index 0000000000..4467f1c728 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/configure_bg.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 \u0441 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f +Name=\ + \u0418\u043c\u0435 +OK=\ + \u0414\u043e\u0431\u0440\u0435 +Edit\ View=\ + \u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434\u0430 +Filter\ build\ executors=\ + \u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u0449\u0438\u0442\u0435 \u043c\u0430\u0448\u0438\u043d\u0438 +Description=\ + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 +Apply=\ + \u041f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/model/View/delete_bg.properties b/core/src/main/resources/hudson/model/View/delete_bg.properties new file mode 100644 index 0000000000..81f5d0e4a8 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/delete_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 +Are\ you\ sure\ about\ deleting\ the\ view?=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0438\u0437\u0433\u043b\u0435\u0434\u0430? diff --git a/core/src/main/resources/hudson/model/View/index_bg.properties b/core/src/main/resources/hudson/model/View/index_bg.properties new file mode 100644 index 0000000000..5b949939d4 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/index_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0422\u0430\u0431\u043b\u043e \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 diff --git a/core/src/main/resources/hudson/model/View/noJob_bg.properties b/core/src/main/resources/hudson/model/View/noJob_bg.properties new file mode 100644 index 0000000000..4b517fa907 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/noJob_bg.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 can either add some existing jobs to this view or create a new job in this view. +description_2=\ + \u0418\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f, \u0438\u043b\u0438\ + \u0441\u044a\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u0438 \u0432 \u043d\u0435\u0433\u043e. +# This view has no jobs associated with it. +description_1=\ + \u0412 \u0442\u043e\u0437\u0438 \u0438\u0437\u0433\u043b\u0435\u0434 \u043d\u044f\u043c\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u044f. diff --git a/core/src/main/resources/hudson/model/labels/LabelAtom/configure_bg.properties b/core/src/main/resources/hudson/model/labels/LabelAtom/configure_bg.properties new file mode 100644 index 0000000000..43651eccbf --- /dev/null +++ b/core/src/main/resources/hudson/model/labels/LabelAtom/configure_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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} Config +title=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u201e{0}\u201c +Name=\ + \u0418\u043c\u0435 +Description=\ + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 +Save=\ + \u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_bg.properties b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_bg.properties new file mode 100644 index 0000000000..083431c4e6 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0440\u0430\u0433 \u0437\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e diff --git a/core/src/main/resources/hudson/node_monitors/Messages_bg.properties b/core/src/main/resources/hudson/node_monitors/Messages_bg.properties index 6ecaba258b..78615260d9 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_bg.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -44,3 +44,6 @@ AbstractNodeMonitorDescriptor.NoDataYet=\ \u041d\u044f\u043c\u0430 \u0434\u0430\u043d\u043d\u0438 DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=\ \u0414\u0438\u0441\u043a\u043e\u0432\u043e\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u0432\u044a\u0440\u0448\u0432\u0430. \u041d\u0430 {1} \u043e\u0441\u0442\u0430\u0432\u0430\u0442 \u0441\u0430\u043c\u043e {0}\u200aGB. +MonitorMarkedNodeOffline.DisplayName=\ + \u041a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u044a\u0442 \u0435 \u043e\u0442\u0431\u0435\u043b\u044f\u0437\u0430\u043d \u043a\u0430\u0442\u043e \u0438\u0437\u0432\u044a\u043d \u043b\u0438\u043d\u0438\u044f \u0432 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442 \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u0442\u0430 \u043d\u0430\ + \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u043c\u0443. diff --git a/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_bg.properties b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_bg.properties new file mode 100644 index 0000000000..dea163dd1e --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_bg.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041e\u0442\u043a\u0430\u0437\u0432\u0430\u043d\u0435 +# Jenkins took some agents offline because their key health metrics went below a threshold. \ +# If you don\u2019t want Jenkins to do this, \ +# change the setting. +blurb=\ + Jenkins \u0438\u0437\u0432\u0435\u0434\u0435 \u0447\u0430\u0441\u0442 \u043e\u0442 \u043c\u0430\u0448\u0438\u043d\u0438\u0442\u0435 \u0438\u0437\u0432\u044a\u043d \u043b\u0438\u043d\u0438\u044f, \u0437\u0430\u0449\u043e\u0442\u043e\ + \u043a\u043b\u044e\u0447\u043e\u0432\u0438\u0442\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0437\u0430 \u0442\u044f\u0445\u043d\u043e\u0442\u043e \u0437\u0434\u0440\u0430\u0432\u0435 \u0441\u0430 \u043f\u043e\u0434\ + \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u043d\u0438\u044f \u043f\u0440\u0430\u0433. \u0410\u043a\u043e \u043d\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 Jenkins \u0434\u0430 \u043f\u0440\u0430\u0432\u0438 \u0442\u043e\u0432\u0430,\ + \u043f\u0440\u043e\u043c\u0435\u043d\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435. diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_bg.properties b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_bg.properties new file mode 100644 index 0000000000..b285c96c29 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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.=\ + \u0412\u0440\u0435\u043c\u0435\u0442\u043e \u0437\u0430 \u043e\u0442\u0433\u043e\u0432\u043e\u0440 \u043d\u0430 \u043f\u0440\u0430\u0437\u043d\u0430 \u0437\u0430\u044f\u0432\u043a\u0430 \u0435 \u043f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u0434\u044a\u043b\u0433\u043e \u0438\u043b\u0438 \u0442\u0430\u043a\u044a\u0432 \u043d\u0435 \u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d. diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_bg.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_bg.properties new file mode 100644 index 0000000000..44821a6802 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0414\u043e\u0431\u0440\u0435 +Data\ was\ successfully\ migrated\ to\ ZFS.=\ + \u0414\u0430\u043d\u043d\u0438\u0442\u0435 \u0441\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043c\u0438\u0433\u0440\u0438\u0440\u0430\u043d\u0438 \u043a\u044a\u043c ZFS. diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_bg.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_bg.properties new file mode 100644 index 0000000000..bccc36d052 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u043c\u0438\u0433\u0440\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043a\u044a\u043c ZFS diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_bg.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_bg.properties new file mode 100644 index 0000000000..ab99bda24f --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432\u0438\u0436\u0442\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430. +ZFS\ migration\ failed.=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043c\u0438\u0433\u0440\u0438\u0440\u0430\u043d\u0435 \u043a\u044a\u043c ZFS. diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_bg.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_bg.properties new file mode 100644 index 0000000000..1e9a4efd3d --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_bg.properties @@ -0,0 +1,38 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041d\u044f\u043c\u0430 \u043f\u0440\u0430\u0432\u0430 +Password=\ + \u041f\u0430\u0440\u043e\u043b\u0430 +OK=\ + \u0414\u043e\u0431\u0440\u0435 +# 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=\ + \u0422\u0435\u043a\u0443\u0449\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u044f\u043c\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\ + ZFS. \u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435 (\u043d\u0430\u0439-\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u201eroot\u201c) \u0438 \u0441\u044a\u043e\u0442\u0432\u0435\u0442\u043d\u0430\u0442\u0430 \u043f\u0430\u0440\u043e\u043b\u0430,\ + \u043a\u043e\u0438\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044f\u0442 \u0442\u0430\u043a\u0438\u0432\u0430 \u043f\u0440\u0430\u0432\u0430. +Username=\ + \u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435 +See\ errors...=\ + \u041f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0438\u0442\u0435\u2026 diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_bg.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_bg.properties new file mode 100644 index 0000000000..1660b9446e --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_bg.properties @@ -0,0 +1,48 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Start\ migration=\ + \u041d\u0430\u0447\u0430\u043b\u043e \u043d\u0430 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430 +# Jenkins will perform the following steps to migrate your existing data to a ZFS file system. +blurb=\ + Jenkins \u0449\u0435 \u0438\u0437\u0432\u044a\u0440\u0448\u0438 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0437\u0430 \u0434\u0430 \u043c\u0438\u0433\u0440\u0438\u0440\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438 \u043a\u044a\u043c\ + \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 ZFS. +You\ will\ need\ the\ root\ password\ of\ the\ system\ to\ do\ this.=\ + \u0417\u0430 \u0442\u043e\u0432\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0449\u0435 \u0432\u0438 \u0442\u0440\u044f\u0431\u0432\u0430 \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430 \u043d\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. +# Mount a new ZFS file system at {0} +mount=\ + \u041c\u043e\u043d\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 ZFS \u043e\u0442 {0} +# Rename {0} to {0}.backup +rename=\ + \u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u201e{0}\u201c \u043d\u0430 \u201e{0}.backup\u201c +Restart\ itself\ so\ that\ the\ migration\ can\ be\ done\ without\ worrying\ about\ concurrent\ data\ modifications=\ + \u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0432\u044a\u0440\u0448\u0438 \u0431\u0435\u0437 \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442 \u043e\u0442 \u043f\u0440\u043e\u043c\u0435\u043d\u0438 \u043d\u0430\ + \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e \u043c\u044f\u0441\u0442\u043e. +# Delete {0}.backup +delete=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u201e{0}.backup\u201c +# Create a new ZFS file system {0} and copy all the data into it +create=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 ZFS \u0432 {0} \u0438 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438\ + \u0434\u0430\u043d\u043d\u0438 \u0432 \u043d\u0435\u044f. +ZFS\ file\ system\ creation=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 ZFS diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_bg.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_bg.properties new file mode 100644 index 0000000000..6b68462b3e --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0414\u0430 +No,\ thank\ you=\ + \u041d\u0435 +# You are running on Solaris. Would you like Jenkins to create a ZFS file system for you \ +# so that you can get the most out of Solaris? +blurb=\ + \u0420\u0430\u0431\u043e\u0442\u0438\u0442\u0435 \u0441\u044a\u0441 Solaris. \u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 Jenkins \u0434\u0430 \u0441\u044a\u0437\u0434\u0430\u0434\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 ZFS, \u0437\u0430 \u0434\u0430\ + \u0441\u0435 \u0432\u044a\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u043e\u0442 \u0432\u0441\u0438\u0447\u043a\u0438 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430? diff --git a/core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_bg.properties b/core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_bg.properties new file mode 100644 index 0000000000..e3deadebc3 --- /dev/null +++ b/core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\:=\ + \u0415\u0442\u0438\u043a\u0435\u0442\u0438\u0442\u0435 \u0441\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u044f\u0442 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 diff --git a/core/src/main/resources/hudson/search/Search/search-failed_bg.properties b/core/src/main/resources/hudson/search/Search/search-failed_bg.properties new file mode 100644 index 0000000000..f5f1a7c2c9 --- /dev/null +++ b/core/src/main/resources/hudson/search/Search/search-failed_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Search\ for=\ + \u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 +Nothing\ seems\ to\ match.=\ + \u041d\u0438\u0449\u043e \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430. diff --git a/core/src/main/resources/hudson/search/UserSearchProperty/config_bg.properties b/core/src/main/resources/hudson/search/UserSearchProperty/config_bg.properties new file mode 100644 index 0000000000..8087fbf228 --- /dev/null +++ b/core/src/main/resources/hudson/search/UserSearchProperty/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Case-sensitivity=\ + \u0420\u0430\u0437\u043b\u0438\u043a\u0430 \u0433\u043b\u0430\u0432\u043d\u0438/\u043c\u0430\u043b\u043a\u0438 +Insensitive\ search\ tool=\ + \u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u0431\u0435\u0437 \u0441\u044a\u043e\u0431\u0440\u0430\u0437\u044f\u0432\u0430\u043d\u0435 \u0433\u043b\u0430\u0432\u043d\u0438/\u043c\u0430\u043b\u043a\u0438 diff --git a/core/src/main/resources/hudson/security/FederatedLoginService/UnclaimedIdentityException/error_bg.properties b/core/src/main/resources/hudson/security/FederatedLoginService/UnclaimedIdentityException/error_bg.properties new file mode 100644 index 0000000000..886bed9418 --- /dev/null +++ b/core/src/main/resources/hudson/security/FederatedLoginService/UnclaimedIdentityException/error_bg.properties @@ -0,0 +1,39 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 Error: unassociated {0} +loginError=\ + \u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0432\u043b\u0438\u0437\u0430\u043d\u0435: \u201e{0}\u201c \u043d\u0435 \u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0430 Jenkins +# {0} "{1}" is not associated with any of the Jenkins user account. \ +# Note that if you already have a user account and is trying to associate a {0} with your account, \ +# this is a wrong place. To do so,
      1. Login
      2. Click on your name
      3. Click on the "Configure" link, and \ +# then
      4. associate a new {0} from that page
      +blurb=\ + {0} \u201e{1}\u201c \u043d\u0435 \u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d \u0441 \u043d\u0438\u043a\u043e\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0430 Jenkins. \u0410\u043a\u043e \u0432\u0435\u0447\u0435 \u0438\u043c\u0430\u0442\u0435\ + \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0438 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 {0} \u0441 \u043d\u0435\u044f, \u0442\u043e\u0432\u0430 \u043d\u0435 \u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e\u0442\u043e\ + \u043c\u044f\u0441\u0442\u043e. \u0417\u0430 \u0434\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u0435 \u0442\u043e\u0432\u0430:\ +
        \ +
      1. \u0432\u043b\u0435\u0437\u0442\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430;
      2. \ +
      3. \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u043e \u0441\u0438;
      4. \ +
      5. \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0437\u0430 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438;
      6. \ +
      7. \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u043d\u043e\u0432 {0}.
      8. \ +
      \ No newline at end of file diff --git a/core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/config_bg.properties b/core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/config_bg.properties new file mode 100644 index 0000000000..caf3e2bc91 --- /dev/null +++ b/core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Allow\ anonymous\ read\ access=\ + \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0430\u043d\u043e\u043d\u0438\u043c\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435 diff --git a/core/src/main/resources/hudson/security/SecurityRealm/signup_bg.properties b/core/src/main/resources/hudson/security/SecurityRealm/signup_bg.properties new file mode 100644 index 0000000000..cfb28e18f2 --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/signup_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f +This\ is\ not\ supported\ in\ the\ current\ configuration.=\ + \u0422\u043e\u0432\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. +Signup\ not\ supported=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 diff --git a/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/config_bg.properties b/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/config_bg.properties new file mode 100644 index 0000000000..c443d84303 --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ proxy\ compatibility=\ + \u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0442\u0430 \u0441\u044a\u0441 \u0441\u044a\u0440\u0432\u044a\u0440\u0438-\u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u0446\u0438 diff --git a/core/src/main/resources/hudson/slaves/Cloud/index_bg.properties b/core/src/main/resources/hudson/slaves/Cloud/index_bg.properties new file mode 100644 index 0000000000..af23fba2f8 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/Cloud/index_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Cloud=\ + \u041e\u0431\u043b\u0430\u043a diff --git a/core/src/main/resources/hudson/slaves/CommandConnector/config_bg.properties b/core/src/main/resources/hudson/slaves/CommandConnector/config_bg.properties new file mode 100644 index 0000000000..ee97be0e93 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandConnector/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/config_bg.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/config_bg.properties new file mode 100644 index 0000000000..ee97be0e93 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/help_bg.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/help_bg.properties new file mode 100644 index 0000000000..8efdbd543b --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/help_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 an agent by having Jenkins execute a command from the master. \ +# Use this when the master is capable of remotely executing a process on another machine, e.g. via SSH or RSH. +blurb=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442 \u043a\u0430\u0442\u043e Jenkins \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0432\u0430\u0449\u0438\u044f \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440.\ + \u041f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u0442\u043e\u0437\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043a\u043e\u0433\u0430\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0432\u0430\u0449\u0438\u044f\u0442 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0438\ + \u043d\u0430 \u0434\u0440\u0443\u0433\u0438 \u043c\u0430\u0448\u0438\u043d\u0438, \u043d\u0430\u043f\u0440. \u0447\u0440\u0435\u0437 SSH \u0438\u043b\u0438 RSH. diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_bg.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_bg.properties new file mode 100644 index 0000000000..cf7c74ea99 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ agent=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430\u043d\u043e\u0432\u043e +See\ log\ for\ more\ details=\ + \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0442\u0435 +Launch\ agent=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 +# This node is being launched. +launchingDescription=\ + \u0422\u0430\u0437\u0438 \u043c\u0430\u0448\u0438\u043d\u0430 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430. diff --git a/core/src/main/resources/hudson/slaves/DelegatingComputerLauncher/config_bg.properties b/core/src/main/resources/hudson/slaves/DelegatingComputerLauncher/config_bg.properties new file mode 100644 index 0000000000..8e930f459b --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DelegatingComputerLauncher/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Actual\ launch\ method=\ + \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u043c\u0435\u0442\u043e\u0434 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_bg.properties b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_bg.properties new file mode 100644 index 0000000000..6e4cf513f3 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_bg.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041d\u0430\u043b\u0438\u0447\u043d\u043e\u0441\u0442 +Node\ Properties=\ + \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0442\u0430 +\#\ of\ executors=\ + \u0411\u0440\u043e\u0439 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u0449\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0438 +Description=\ + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 +Launch\ method=\ + \u041c\u0435\u0442\u043e\u0434 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 +Labels=\ + \u0415\u0442\u0438\u043a\u0435\u0442\u0438 +Remote\ root\ directory=\ + \u041e\u0441\u043d\u043e\u0432\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_bg.properties b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_bg.properties new file mode 100644 index 0000000000..5178853833 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_bg.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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, permanent agent to Jenkins. This is called "permanent" because Jenkins doesn\u2019t provide \ +# higher level of integration with these agents, such as dynamic provisioning. \ +# Select this type if no other agent types apply — for example such as when you are adding \ +# a physical computer, virtual machines managed outside Jenkins, etc. +detail=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d, \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u0435\u043d \u0430\u0433\u0435\u043d\u0442 \u043a\u044a\u043c Jenkins. \u041d\u0430\u0440\u0438\u0447\u0430 \u0441\u0435 \u201e\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u0435\u043d\u201c,\ + \u0437\u0430\u0449\u043e\u0442\u043e Jenkins \u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430 \u043f\u043e-\u0432\u0438\u0441\u043e\u043a\u0438 \u043d\u0438\u0432\u0430 \u043d\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0442\u043e\u0437\u0438 \u0432\u0438\u0434 \u0430\u0433\u0435\u043d\u0442\u0438,\ + \u043a\u0430\u0442\u043e \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u043e \u0437\u0430\u0434\u0435\u043b\u044f\u043d\u0435. \u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0442\u043e\u0437\u0438 \u0432\u0438\u0434 \u0430\u0433\u0435\u043d\u0442, \u0441\u0430\u043c\u043e \u0430\u043a\u043e \u0434\u0440\u0443\u0433\u0438\u0442\u0435\ + \u0432\u0438\u0434\u043e\u0432\u0435 \u0430\u0433\u0435\u043d\u0442\u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u044f\u0442, \u043d\u0430\u043f\u0440. \u043a\u043e\u0433\u0430\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0438\ + \u043c\u0430\u0448\u0438\u043d\u0438, \u043a\u043e\u0438\u0442\u043e \u0441\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0442 \u0438\u0437\u0432\u044a\u043d Jenkins, \u0438 \u0442.\u043d. diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_bg.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_bg.properties new file mode 100644 index 0000000000..6a8664977a --- /dev/null +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0421\u0442\u043e\u0439\u043d\u043e\u0441\u0442 +Name=\ + \u0418\u043c\u0435 +List\ of\ variables=\ + \u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0438\u0442\u0435 diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_bg.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_bg.properties new file mode 100644 index 0000000000..5fbeb54e51 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0422\u0443\u043d\u0435\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043f\u0440\u0435\u0437 +JVM\ options=\ + \u041e\u043f\u0446\u0438\u0438 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 Java +Enable\ work\ directory=\ + \u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/help_bg.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_bg.properties new file mode 100644 index 0000000000..6e9390b1d1 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_bg.properties @@ -0,0 +1,44 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Allows an agent to be launched using Java Web Start.
      \ +# In this case, a JNLP file must be opened on the agent machine, which will \ +# establish a TCP connection to the Jenkins master.
      \ +# This means that the agent need not be reachable from the master; the agent \ +# just needs to be able to reach the master. If you have enabled security via \ +# the Configure Global Security page, you can customise the port on \ +# which the Jenkins master will listen for incoming JNLP agent connections.
      \ +# By default, the JNLP agent will launch a GUI, but it's also possible to run \ +# a JNLP agent without a GUI, e.g. as a Window service. +blurb=\ + \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d \u0447\u0440\u0435\u0437\ + Java Web Start.
      \ + \u0417\u0430 \u0442\u043e\u0432\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0434\u0430 \u043e\u0442\u0432\u043e\u0440\u0438 \u0444\u0430\u0439\u043b \u0432\u044a\u0432 \u0444\u043e\u0440\u043c\u0430\u0442 JNLP, \u0441\u043b\u0435\u0434 \u0442\u043e\u0432\u0430\ + \u0442\u044f \u0449\u0435 \u043e\u0442\u0432\u043e\u0440\u0438 \u0432\u0440\u044a\u0437\u043a\u0430 \u043f\u043e TCP \u043a\u044a\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0449\u0438\u044f\u0442 \u0441\u044a\u0440\u0432\u044a\u0440 \u043d\u0430 Jenkins.
      \ + \u0422\u043e\u0432\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u043d\u0435 \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0449\u0438\u044f\u0442 \u0441\u044a\u0440\u0432\u044a\u0440 \u0434\u0430 \u0435 \u0432 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u0430\ + \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f, \u043d\u043e \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f\u0442 \u0434\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0442\u0438\u0433\u043d\u0435 \u0434\u043e\ + \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0449\u0438\u044f. \u0410\u043a\u043e \u0441\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 \u043f\u0440\u0435\u0437 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430 \u0437\u0430\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430, \u043c\u043e\u0436\u0435 \u0438 \u0434\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u043f\u043e\u0440\u0442\u0430, \u043d\u0430 \u043a\u043e\u0439\u0442\u043e\ + \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0449\u0438\u044f\u0442 \u0441\u044a\u0440\u0432\u044a\u0440 \u0449\u0435 \u0447\u0430\u043a\u0430 \u0437\u0430 \u0432\u0445\u043e\u0434\u044f\u0449\u0438 \u0432\u0440\u044a\u0437\u043a\u0438 \u0437\u0430 JNLP.
      \ + \u041f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0430\u0433\u0435\u043d\u0442\u0438\u0442\u0435 \u0441 JNLP \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043d\u043e \u043c\u043e\u0436\u0435 \u0434\u0430\ + \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u0431\u0435\u0437 \u0442\u0430\u043a\u044a\u0432 \u2014 \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u043d\u0430 \u0443\u0441\u043b\u0443\u0433\u0430 \u043d\u0430 Windows. diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main_bg.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_bg.properties new file mode 100644 index 0000000000..7e857ee1cb --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main_bg.properties @@ -0,0 +1,39 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Connect\ agent\ to\ Jenkins\ one\ of\ these\ ways\:=\ + \u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442 \u043a\u044a\u043c Jenkins \u043f\u043e \u0435\u0434\u0438\u043d \u043e\u0442 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043d\u0430\u0447\u0438\u043d\u0438: +Or\ if\ the\ agent\ is\ headless\:=\ + \u0410\u043a\u043e \u0430\u0433\u0435\u043d\u0442\u044a\u0442 \u0435 \u0431\u0435\u0437 \u043c\u043e\u043d\u0438\u0442\u043e\u0440: +Run\ from\ agent\ command\ line\:=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 +launch\ agent=\ + \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 +slaveAgentPort.disabled=\ + \u041f\u043e\u0440\u0442\u044a\u0442 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d +Launch\ agent\ from\ browser=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442 \u043e\u0442 \u0431\u0440\u0430\u0443\u0437\u044a\u0440 +Connected\ via\ JNLP\ agent.=\ + \u0412\u0440\u044a\u0437\u043a\u0430 \u0441 \u0430\u0433\u0435\u043d\u0442 \u0447\u0440\u0435\u0437 JNLP. +# Go to security configuration screen and change it +configure.link.text=\ + \u041e\u0442\u0438\u0434\u0435\u0442\u0435 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430 \u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 \u0438 \u0433\u043e \u0441\u043c\u0435\u043d\u0435\u0442\u0435. diff --git a/core/src/main/resources/hudson/slaves/Messages_bg.properties b/core/src/main/resources/hudson/slaves/Messages_bg.properties index 6d537b2277..fccc9dd6a9 100644 --- a/core/src/main/resources/hudson/slaves/Messages_bg.properties +++ b/core/src/main/resources/hudson/slaves/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -72,3 +72,12 @@ SimpleScheduledRetentionStrategy.displayName=\ # Launching agent process aborted. ComputerLauncher.abortedLaunch=\ \u041f\u0440\u043e\u0446\u0435\u0441\u044a\u0442 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e +# Couldn\u2019t figure out the Java version of {0} +ComputerLauncher.UnknownJavaVersion=\ + \u0412\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u043d\u0430 Java \u043d\u0430 {0} \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 +# Name is mandatory +NodeDescriptor.CheckName.Mandatory=\ + \u0418\u043c\u0435\u0442\u043e \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e +# Provision new nodes +Cloud.ProvisionPermission.Description=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043e\u0449\u0435 \u043c\u0430\u0448\u0438\u043d\u0438 diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_bg.properties b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_bg.properties new file mode 100644 index 0000000000..24c58e08d7 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0412\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0430 diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_bg.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_bg.properties new file mode 100644 index 0000000000..8e8626be8a --- /dev/null +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ is\ mandatory\ and\ must\ be\ a\ number.=\ + \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435\u0442\u043e \u043f\u0440\u0438 \u0437\u0430\u0435\u0442\u043e\u0441\u0442 \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440 \u2014 \u0447\u0438\u0441\u043b\u043e. +Idle\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=\ + \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435\u0442\u043e \u043f\u0440\u0438 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440 \u2014 \u0447\u0438\u0441\u043b\u043e. +Idle\ delay=\ + \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043f\u0440\u0438 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 +In\ demand\ delay=\ + \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043f\u0440\u0438 \u0437\u0430\u0435\u0442\u043e\u0441\u0442 diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_bg.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_bg.properties new file mode 100644 index 0000000000..9ef3fbe705 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0420\u0430\u0437\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 +Shutdown\ Schedule=\ + \u0420\u0430\u0437\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430 \u0441\u043f\u0438\u0440\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_bg.properties b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_bg.properties new file mode 100644 index 0000000000..990f58ac3d --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_bg.properties @@ -0,0 +1,35 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0420\u0430\u0437\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 +Keep\ online\ while\ jobs\ are\ running=\ + \u041d\u0430 \u043b\u0438\u043d\u0438\u044f \u0434\u043e\u043a\u0430\u0442\u043e \u0438\u043c\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u0449\u0438 \u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 +Startup\ Schedule=\ + \u0420\u0430\u0437\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e +# \ +# 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=\ + \u041c\u0430\u0448\u0438\u043d\u0430\u0442\u0430 \u0434\u0430 \u0435 \u043e\u043d\u043b\u0430\u0439\u043d \u0442\u043e\u0437\u0438 \u0431\u0440\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u0438. \u0410\u043a\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u044a\u0442 \u0435 \u043f\u043e \u0434\u044a\u043b\u044a\u0433 \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u0442\u043e \u0437\u0430\ + \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435, \u043c\u0430\u0448\u0438\u043d\u0430\u0442\u0430 \u0449\u0435 \u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043d\u0430 \u043b\u0438\u043d\u0438\u044f. +Scheduled\ Uptime\ is\ mandatory\ and\ must\ be\ a\ number.=\ + \u0417\u0430\u043f\u043b\u0430\u043d\u0443\u0432\u0430\u043d\u043e\u0442\u043e \u0432\u0440\u0435\u043c\u0435 \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440 \u2014 \u0447\u0438\u0441\u043b\u043e. \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_bg.properties b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_bg.properties new file mode 100644 index 0000000000..2319e9fdd4 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_bg.properties @@ -0,0 +1,40 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Do not fail build if archiving returns nothing +allowEmptyArchive=\ + \u0414\u043e\u0440\u0438 \u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0434\u0430 \u043d\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435 \u043d\u0438\u0449\u043e, \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u0434\u0430 \u043d\u0435 \u0441\u0435 \u0441\u0447\u0438\u0442\u0430 \u0437\u0430\ + \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e +Files\ to\ archive=\ + \u0424\u0430\u0439\u043b\u043e\u0432\u0435 \u0437\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 +Excludes=\ + \u041e\u0431\u0435\u043a\u0442\u0438 \u0437\u0430 \u043f\u0440\u0435\u0441\u043a\u0430\u0447\u0430\u043d\u0435 +# Treat include and exclude patterns as case sensitive +caseSensitive=\ + \u0428\u0430\u0431\u043b\u043e\u043d\u0438\u0442\u0435 \u0437\u0430 \u043f\u0440\u0435\u0441\u043a\u0430\u0447\u0430\u043d\u0435 \u0438 \u0437\u0430 \u0432\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u0432 \u0430\u0440\u0445\u0438\u0432\u0430 \u0434\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0432\u0430\u0442 \u0433\u043b\u0430\u0432\u043d\u0438/\u043c\u0430\u043b\u043a\u0438 +# Archive artifacts only if build is successful +onlyIfSuccessful=\ + \u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u0441\u0430\u043c\u043e \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Fingerprint\ all\ archived\ artifacts= +# Use default excludes +defaultExcludes=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438 \u043e\u0431\u0435\u043a\u0442\u0438 \u0437\u0430 \u043f\u0440\u0435\u0441\u043a\u0430\u0447\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/tasks/BatchFile/config_bg.properties b/core/src/main/resources/hudson/tasks/BatchFile/config_bg.properties new file mode 100644 index 0000000000..20be8836e8 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/BatchFile/config_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 list of available environment variables +description=\ + \u0412\u0438\u0436\u0442\u0435 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u043d\u0430\u043b\u0438\u0447\u043d\u0438\u0442\u0435 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0438\ + \u043d\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430 +Command=\ + \u041a\u043e\u043c\u0430\u043d\u0434\u0430 +ERRORLEVEL\ to\ set\ build\ unstable=\ + \u0421\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u043d\u0430 ERRORLEVEL \u0437\u0430 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043a\u0430\u0442\u043e \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e diff --git a/core/src/main/resources/hudson/tasks/BuildTrigger/config_bg.properties b/core/src/main/resources/hudson/tasks/BuildTrigger/config_bg.properties new file mode 100644 index 0000000000..2b414b2bb5 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/BuildTrigger/config_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Projects\ to\ build=\ + \u041f\u0440\u043e\u0435\u043a\u0442\u0438 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Trigger\ even\ if\ the\ build\ fails=\ + \u0417\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0430\u043d\u0435 \u0434\u043e\u0440\u0438 \u0438 \u043f\u0440\u0438 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Trigger\ only\ if\ build\ is\ stable=\ + \u0417\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0430\u043d\u0435 \u0441\u0430\u043c\u043e \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Trigger\ even\ if\ the\ build\ is\ unstable=\ + \u0417\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0430\u043d\u0435 \u0434\u043e\u0440\u0438 \u0438 \u043f\u0440\u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/FingerprintAction/index_bg.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/FingerprintAction/index_bg.properties new file mode 100644 index 0000000000..2c90d1f8f0 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/FingerprintAction/index_bg.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ details=\ + \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 +Original\ owner=\ + \u041f\u044a\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u0435\u043d \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u0438\u043a +File=\ + \u0424\u0430\u0439\u043b +this\ build=\ + \u0442\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Age=\ + \u0412\u044a\u0437\u0440\u0430\u0441\u0442 +Recorded\ Fingerprints=\ + \u0418\u0437\u0432\u0435\u0441\u0442\u043d\u0438 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u0446\u0438 +outside\ Jenkins=\ + \u0438\u0437\u0432\u044a\u043d Jenkins diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_bg.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_bg.properties new file mode 100644 index 0000000000..4d1161b123 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ fingerprint=\ + \u0424\u0430\u0439\u043b\u043e\u0432\u0435, \u043d\u0430 \u043a\u043e\u0438\u0442\u043e \u0434\u0430 \u0441\u0435 \u0438\u0437\u0447\u0438\u0441\u043b\u0438 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u043a diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_bg.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_bg.properties new file mode 100644 index 0000000000..0736fc63c2 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0435 diff --git a/core/src/main/resources/hudson/tasks/Maven/config_bg.properties b/core/src/main/resources/hudson/tasks/Maven/config_bg.properties index 11dff5faa9..48ec508096 100644 --- a/core/src/main/resources/hudson/tasks/Maven/config_bg.properties +++ b/core/src/main/resources/hudson/tasks/Maven/config_bg.properties @@ -23,7 +23,7 @@ Default=\ \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438 JVM\ Options=\ - \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 JVM + \u041e\u043f\u0446\u0438\u0438 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 Java Settings\ file=\ \u0424\u0430\u0439\u043b \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Goals=\ diff --git a/core/src/main/resources/hudson/tasks/Maven/help_bg.properties b/core/src/main/resources/hudson/tasks/Maven/help_bg.properties new file mode 100644 index 0000000000..d25d153121 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/help_bg.properties @@ -0,0 +1,45 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Jenkins passes various environment \ +# variables to Maven, which you can access from Maven as "${env.VARIABLENAME}". +para2=\ + Jenkins \u043f\u0440\u0435\u0434\u0430\u0432\u0430 \u043d\u044f\u043a\u043e\u0438 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0438 \u043d\u0430\ + \u0441\u0440\u0435\u0434\u0430\u0442\u0430 \u043a\u044a\u043c Maven. \u0422\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u0434\u043e\u0441\u0442\u044a\u043f\u0435\u043d\u0438 \u043e\u0442 Maven \u0447\u0440\u0435\u0437\ + \u201e${env.VARIABLENAME}\u201c. + +# For projects that use Maven as the build system. This causes Jenkins to invoke \ +# Maven with the given goals and options. A non-zero exit code from Maven makes Jenkins \ +# mark the build as a failure. Some Maven versions have a bug where it doesn't return \ +# the exit code correctly. +para1=\ + \u0417\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0438, \u043a\u043e\u0438\u0442\u043e \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442 Maven. \u041f\u0440\u0438 \u0442\u044f\u0445 Jenkins \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 Maven \u0441\ + \u0434\u0430\u0434\u0435\u043d\u0438\u0442\u0435 \u0446\u0435\u043b\u0438 \u0438 \u043e\u043f\u0446\u0438\u0438. \u0418\u0437\u0445\u043e\u0434\u0435\u043d \u043a\u043e\u0434 \u043e\u0442 Maven \u0440\u0430\u0437\u043b\u0438\u0447\u0435\u043d \u043e\u0442 0 \u043a\u0430\u0440\u0430 Jenkins \u0434\u0430\ + \u043e\u0431\u044f\u0432\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043a\u0430\u0442\u043e \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e. \u041d\u044f\u043a\u043e\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430 Maven \u0438\u043c\u0430\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447e\u043d\ + \u0434\u0435\u0444\u0435\u043a\u0442, \u043f\u0440\u0438 \u043a\u043e\u0439\u0442\u043e \u0438\u0437\u0445\u043e\u0434\u043d\u0438\u044f\u0442 \u043a\u043e\u0434 \u043d\u0435 \u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d. +# The same variables can be used in command-line arguments (as if you are invoking \ +# this from shell). For example, you can specify \ +# -DresultsFile=\${WORKSPACE}/\${BUILD_TAG}.results.txt +para3=\ + \u0421\u044a\u0449\u0438\u0442\u0435 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0438 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u043a\u0430\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0438 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434, \u0432\u0441\u0435\ + \u0435\u0434\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u043e \u043f\u0440\u0435\u0437 \u043e\u0431\u0432\u0438\u0432\u043a\u0430\u0442\u0430. \u041d\u0430\u043f\u0440. \u043c\u043e\u0436\u0435 \u0434\u0430 \u0443\u043a\u0430\u0436\u0435\u0442\u0435:\ + -DresultsFile=\${WORKSPACE}/\${BUILD_TAG}.results.txt diff --git a/core/src/main/resources/hudson/tasks/Messages_bg.properties b/core/src/main/resources/hudson/tasks/Messages_bg.properties index 910a69bd58..2cd51a9c5f 100644 --- a/core/src/main/resources/hudson/tasks/Messages_bg.properties +++ b/core/src/main/resources/hudson/tasks/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -124,4 +124,17 @@ Shell.DisplayName=\ \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 # Ancestor/Context Unknown: the project specified cannot be validated BuildTrigger.ok_ancestor_is_null=\ - \u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b/\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442: \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 + \u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b/\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442: \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438. +# Invalid exit code value: {0}. Check help section +Shell.invalid_exit_code_range=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u0438\u0437\u0445\u043e\u0434\u0435\u043d \u043a\u043e\u0434: {0}. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u043f\u043e\u043c\u043e\u0449\u0442\u0430. +# Exit code zero is ignored and does not make the build unstable +Shell.invalid_exit_code_zero=\ + \u0418\u0437\u0445\u043e\u0434\u0435\u043d \u043a\u043e\u0434 0 \u0441\u0435 \u043f\u0440\u0435\u0441\u043a\u0430\u0447\u0430 \u2014 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0435 \u043e\u0431\u044f\u0432\u0438 \u0437\u0430 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e. +# Invalid errorlevel value: {0}. Check help section +BatchFile.invalid_exit_code_range=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u043a\u043e\u0434 \u0437\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 (ERRORLEVEL): {0}. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u043f\u043e\u043c\u043e\u0449\u0442\u0430. +# ERRORLEVEL zero is ignored and does not make the build unstable +BatchFile.invalid_exit_code_zero=\ + \u041a\u043e\u0434 \u0437\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 (ERRORLEVEL) 0 \u0441\u0435 \u043f\u0440\u0435\u0441\u043a\u0430\u0447\u0430 \u2014 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0435 \u043e\u0431\u044f\u0432\u0438 \u0437\u0430\ + \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e. diff --git a/core/src/main/resources/hudson/tools/AbstractCommandInstaller/config_bg.properties b/core/src/main/resources/hudson/tools/AbstractCommandInstaller/config_bg.properties new file mode 100644 index 0000000000..7592eff17b --- /dev/null +++ b/core/src/main/resources/hudson/tools/AbstractCommandInstaller/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_bg.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_bg.properties new file mode 100644 index 0000000000..78b31bbaf5 --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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/InstallSourceProperty/config_bg.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_bg.properties new file mode 100644 index 0000000000..de2e2f71e6 --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u044f\u043d\u0435 \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0442\u043e\u0440 +Delete\ Installer=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0442\u043e\u0440 diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/DescriptorImpl/credentialOK_bg.properties b/core/src/main/resources/hudson/tools/JDKInstaller/DescriptorImpl/credentialOK_bg.properties new file mode 100644 index 0000000000..c9a4c88d9e --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/DescriptorImpl/credentialOK_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Credential\ is\ saved=\ + \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\u0442\u0430 \u0435 \u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0430 +Close=\ + \u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/DescriptorImpl/enterCredential_bg.properties b/core/src/main/resources/hudson/tools/JDKInstaller/DescriptorImpl/enterCredential_bg.properties new file mode 100644 index 0000000000..fa475cad59 --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/DescriptorImpl/enterCredential_bg.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 access older versions of JDK, you need to have Oracle Account. +description=\ + \u0414\u043e\u0441\u0442\u044a\u043f\u044a\u0442 \u0434\u043e \u043f\u043e-\u0441\u0442\u0430\u0440\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430 JDK \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442\u0435\ + \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043a\u044a\u043c Oracle. +OK=\ + \u0414\u043e\u0431\u0440\u0435 +Enter\ Your\ Oracle\ Account=\ + \u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0437\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0432\u0438 \u043a\u044a\u043c Oracle +Password=\ + \u041f\u0430\u0440\u043e\u043b\u0430 +Username=\ + \u0418\u043c\u0435 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_bg.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_bg.properties new file mode 100644 index 0000000000..a538c952b1 --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041f\u0440\u0438\u0435\u043c\u0430\u043c \u043b\u0438\u0446\u0435\u043d\u0437\u043d\u043e\u0442\u043e \u0441\u043f\u043e\u0440\u0430\u0437\u0443\u043c\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430 \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u0446\u0438 \u043d\u0430 Java SE +Version=\ + \u0412\u0435\u0440\u0441\u0438\u044f diff --git a/core/src/main/resources/hudson/tools/Messages_bg.properties b/core/src/main/resources/hudson/tools/Messages_bg.properties index 299ea8527e..15217e34b4 100644 --- a/core/src/main/resources/hudson/tools/Messages_bg.properties +++ b/core/src/main/resources/hudson/tools/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -60,3 +60,6 @@ JDKInstaller.DescriptorImpl.doCheckAcceptLicense=\ ToolDescriptor.NotADirectory=\ \u201e{0}\u201c \u043d\u0435 \u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u043d\u0430 Jenkins, \u043d\u043e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\ \u043d\u0430 \u043d\u044f\u043a\u043e\u0438 \u043e\u0442 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438 +# Installer "{0}" cannot be used to install "{1}" on the node "{2}" +CannotBeInstalled=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430 \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430 \u201e{1}\u201c \u043d\u0430 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430 \u201e{2}\u201c diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/config_bg.properties b/core/src/main/resources/hudson/tools/ToolInstallation/config_bg.properties new file mode 100644 index 0000000000..8730e2cc4d --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\u0435 +Installation\ directory=\ + \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_bg.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_bg.properties new file mode 100644 index 0000000000..6878d5f791 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_bg.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 {0} +label.add=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u201e{0}\u201c +# {0} installations +title=\ + {0} \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u0438 +# List of {0} installations on this system +description=\ + \u0421\u043f\u0438\u0441\u044a\u043a \u0441 {0}-\u0442\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u0438 \u043d\u0430 \u0442\u0430\u0437\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 +# Delete {0} +label.delete=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u201e{0}\u201c diff --git a/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_bg.properties b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_bg.properties new file mode 100644 index 0000000000..2fd248606d --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0414\u043e\u043c\u0430\u0448\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f +List\ of\ tool\ locations=\ + \u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0442\u0430 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438\u0442\u0435 +Name=\ + \u0418\u043c\u0435 diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_bg.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_bg.properties new file mode 100644 index 0000000000..00d36908b8 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0410\u0434\u0440\u0435\u0441 \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435 \u043d\u0430 \u0434\u0432\u043e\u0438\u0447\u0435\u043d \u0430\u0440\u0445\u0438\u0432 +Subdirectory\ of\ extracted\ archive=\ + \u041f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0440\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u043e\u0442\u043e diff --git a/core/src/main/resources/hudson/triggers/Messages_bg.properties b/core/src/main/resources/hudson/triggers/Messages_bg.properties index cc701ff73d..76aed3bab4 100644 --- a/core/src/main/resources/hudson/triggers/Messages_bg.properties +++ b/core/src/main/resources/hudson/triggers/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # 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,3 +40,23 @@ Trigger.init=\ \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u0442\u043e \u043d\u0430 \u0445\u0440\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0442\u0435 TimerTrigger.no_schedules_so_will_never_run=\ \u041d\u0438\u043a\u043e\u0433\u0430 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u0438, \u0437\u0430\u0449\u043e\u0442\u043e \u043b\u0438\u043f\u0441\u0432\u0430 \u0445\u0440\u043e\u043d\u043e\u043c\u0435\u0442\u044a\u0440. +# Post commit hooks are being ignored and no schedules so will never run due to SCM changes +SCMTrigger.no_schedules_no_hooks=\ + \u0421\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0442\u0430 \u043e\u0442 \u043a\u0443\u043a\u0438\u0442\u0435 \u0437\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434 \u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0435 \u0441\u0435 \u043f\u0440\u0435\u0441\u043a\u0430\u0447\u0430\u0442.\ + \u041d\u044f\u043c\u0430 \u0438 \u0437\u0430\u044f\u0432\u043a\u0438 \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435,\ + \u0437\u0430\u0442\u043e\u0432\u0430 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0438\u043c\u0430 \u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f. +# This schedule will match dates only rarely (e.g. February 29) or \ +# never (e.g. June 31), so this job may be triggered very rarely, if at all. +TimerTrigger.the_specified_cron_tab_is_rare_or_impossible=\ + \u0422\u0435\u0437\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0449\u0435 \u0434\u043e\u0432\u0435\u0434\u0430\u0442 \u0434\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u043d\u043e \u0440\u044f\u0434\u043a\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430\u0442\u0430 (\u0441\u0430\u043c\u043e\ + \u043d\u0430 29 \u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438) \u0438\u043b\u0438 \u0434\u043e\u0440\u0438 \u0434\u043e \u043f\u044a\u043b\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430 (\u043d\u0430\u043f\u0440. 31\ + \u044e\u043d\u0438). +# No schedules so will only run due to SCM changes if triggered by a post-commit hook +SCMTrigger.no_schedules_hooks=\ + \u0417\u0430\u044f\u0432\u043a\u0438\u0442\u0435 \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 \u0441\u0430\ + \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0438, \u0437\u0430\u0442\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442 \u0441\u0430\u043c\u043e \u0447\u0440\u0435\u0437 \u043a\u0443\u043a\u0430 \u0437\u0430\ + \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434 \u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0435. +# Too Many SCM Polling Threads +SCMTrigger.AdministrativeMonitorImpl.DisplayName=\ + \u041f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043d\u0438\u0448\u043a\u0438 \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430\ + \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_bg.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_bg.properties new file mode 100644 index 0000000000..14df1b0337 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0417\u0430\u044f\u0432\u043a\u0438\u0442\u0435 \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0432\u0430\u0442 \u043f\u043e-\u0431\u0430\u0432\u043d\u043e\ + \u043e\u0442\u043a\u043e\u043b\u043a\u043e\u0442\u043e \u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0438\u0433\u0430\u0442 \u0438 \u043d\u0438\u0448\u043a\u0438\u0442\u0435 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0442 \u043d\u0443\u0436\u0434\u0438\u0442\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435\ + \u0434\u0430\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\u0442\u0435 \u043d\u0435 \u0441\u0430 \u0437\u0430\u0431\u0438\u043b\u0438,\ + \u0430 \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u0435\u043d \u0441\u043b\u0443\u0447\u0430\u0439 \u0443\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0431\u0440\u043e\u044f \u043d\u0430 \u043d\u0438\u0448\u043a\u0438\u0442\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u043f\u043e\u043c\u043e\u0433\u043d\u0435. diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_bg.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_bg.properties new file mode 100644 index 0000000000..22d07a35b3 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041f\u0440\u0435\u0433\u043b\u0435\u0434 \u043a\u0430\u0442\u043e \u043e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d \u0442\u0435\u043a\u0441\u0442 +# \ +# This page captures the polling log that triggered this build. +blurb=\ + \u0422\u0430\u0437\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430 \u0437\u0430\u044f\u0432\u043a\u0438\u0442\u0435 \u043a\u044a\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435, \u043a\u043e\u0438\u0442\u043e\ + \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0445\u0430 \u0442\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. +Polling\ Log=\ + \u0416\u0443\u0440\u043d\u0430\u043b \u043d\u0430 \u0437\u0430\u044f\u0432\u043a\u0438\u0442\u0435 diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_bg.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_bg.properties new file mode 100644 index 0000000000..2fe6b16ed0 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_bg.properties @@ -0,0 +1,40 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 +Running\ for=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430 \u0441\u0435 \u043e\u0442 +No\ polling\ activity\ is\ in\ progress.=\ + \u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u044f\u043c\u0430 \u0437\u0430\u044f\u0432\u043a\u0438 \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435. +# 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=\ + \u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0437\u0430\u044f\u0432\u043a\u0438\u0442\u0435 \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0438\u0442\u0435 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 \u043f\u043e\u0441\u0442\u044a\u043f\u0432\u0430\u0442\ + \u043f\u043e-\u0431\u044a\u0440\u0437\u043e \u043e\u0442\u043a\u043e\u043b\u043a\u043e\u0442\u043e \u0441\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0432\u0430\u0442 \u0438 \u0441\u0435 \u043d\u0430\u0442\u0440\u0443\u043f\u0432\u0430\u0442. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0434\u0430\u043b\u0438 \u0441\u0430\u043c\u0430\u0442\u0430\ + \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0435 \u0435 \u0437\u0430\u0431\u0438\u043b\u0430, \u0430 \u0430\u043a\u043e \u0442\u0440\u044f\u0431\u0432\u0430, \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u0442\u0435 \u0431\u0440\u043e\u044f \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0432\u0430\u0449\u0438\u0442\u0435 \u043d\u0438\u0448\u043a\u0438. +The\ following\ polling\ activities\ are\ currently\ in\ progress\:=\ + \u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u0442 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\ + \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435. +Current\ SCM\ Polling\ Activities=\ + \u0422\u0435\u043a\u0443\u0449\u0438 \u0437\u0430\u044f\u0432\u043a\u0438 \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435. diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/config_bg.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/config_bg.properties new file mode 100644 index 0000000000..41e54916b6 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ignore\ post-commit\ hooks=\ + \u041f\u0440\u0435\u0441\u043a\u0430\u0447\u0430\u043d\u0435 \u043d\u0430 \u043a\u0443\u043a\u0438\u0442\u0435 \u0441\u043b\u0435\u0434 \u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0435 +Schedule=\ + \u041d\u0430\u0441\u0440\u043e\u0447\u0432\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/global_bg.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/global_bg.properties new file mode 100644 index 0000000000..bd9243b662 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/global_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u0435\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0438 \u0437\u0430\u044f\u0432\u043a\u0438 +SCM\ Polling=\ + \u0417\u0430\u044f\u0432\u043a\u0438 \u043a\u044a\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/config_bg.properties b/core/src/main/resources/hudson/triggers/TimerTrigger/config_bg.properties new file mode 100644 index 0000000000..3fef1dcbd8 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041d\u0430\u0441\u0440\u043e\u0447\u0432\u0430\u043d\u0435 diff --git a/core/src/main/resources/hudson/util/AWTProblem/index_bg.properties b/core/src/main/resources/hudson/util/AWTProblem/index_bg.properties new file mode 100644 index 0000000000..650a6df3fa --- /dev/null +++ b/core/src/main/resources/hudson/util/AWTProblem/index_bg.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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"? See also: https://jenkins.io/redirect/troubleshooting/java.awt.headless +errorMessage=\ + AWT \u043d\u0435 \u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u043d\u0430 \u0442\u043e\u0437\u0438 \u0441\u044a\u0440\u0432\u044a\u0440. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442\u0435\ + \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441 \u201e-Djava.awt.headless=true\u201c. \u0412\u0438\u0436\u0442\u0435 \u0438:\ + https://jenkins.io/redirect/troubleshooting/java.awt.headless +Error=\ + \u0413\u0440\u0435\u0448\u043a\u0430 diff --git a/core/src/main/resources/hudson/util/AdministrativeError/message_bg.properties b/core/src/main/resources/hudson/util/AdministrativeError/message_bg.properties new file mode 100644 index 0000000000..de19e68a62 --- /dev/null +++ b/core/src/main/resources/hudson/util/AdministrativeError/message_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430. diff --git a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_bg.properties b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_bg.properties new file mode 100644 index 0000000000..0d206fb8df --- /dev/null +++ b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_bg.properties @@ -0,0 +1,40 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Ignore this problem and keep using Jenkins anyway +label=\ + \u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 Jenkins \u043a\u0430\u043a\u0442\u043e \u0432\u0438\u043d\u0430\u0433\u0438 +Other\ Jenkins=\ + \u0414\u0440\u0443\u0433\u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u0438 \u043d\u0430 Jenkins +This\ Jenkins=\ + \u0422\u0430\u0437\u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f \u043d\u0430 Jenkins +# \ +# Jenkins detected that you appear to be running more than one \ +# instance of Jenkins that share the same home directory ''{0}\u2019. \ +# This greatly confuses Jenkins and you will likely experience \ +# strange behaviors, so please correct the situation. +message=\ + Jenkins \u0437\u0430\u0441\u0435\u0447\u0435, \u0447\u0435 \u0441\u0442\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043b\u0438 \u043f\u043e\u0432\u0435\u0447\u0435 \u043e\u0442 \u0435\u0434\u0438\u043d Jenkins \u043e\u0442 \u0435\u0434\u043d\u0430 \u0438 \u0441\u044a\u0449\u0430\ + \u0434\u043e\u043c\u0430\u0448\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u201e{0}\u201c. \u0422\u043e\u0432\u0430 \u0441\u0438\u043b\u043d\u043e \u043e\u0431\u044a\u0440\u043a\u0432\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430 \u0438 \u0449\u0435 \u0434\u043e\u0432\u0435\u0434\u0435 \u0434\u043e\ + \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u0437\u0430\u0442\u043e\u0432\u0430 \u043a\u043e\u0440\u0438\u0433\u0438\u0440\u0430\u0439\u0442\u0435 \u0442\u043e\u0437\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. +Error=\ + \u0413\u0440\u0435\u0448\u043a\u0430 diff --git a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_bg.properties b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_bg.properties new file mode 100644 index 0000000000..19062c4b9f --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0413\u0440\u0435\u0448\u043a\u0430 diff --git a/core/src/main/resources/hudson/util/HudsonIsLoading/index_bg.properties b/core/src/main/resources/hudson/util/HudsonIsLoading/index_bg.properties new file mode 100644 index 0000000000..690f556b2e --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsLoading/index_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ Jenkins\ is\ ready.=\ + \u0411\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0432\u0438 \u0449\u0435 \u0441\u0435 \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0434\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e, \u043a\u043e\u0433\u0430\u0442\u043e Jenkins \u0435 \u0433\u043e\u0442\u043e\u0432. +Please\ wait\ while\ Jenkins\ is\ getting\ ready\ to\ work=\ + \u0418\u0437\u0447\u0430\u043a\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0430\u0442\u043e Jenkins \u0441\u0442\u0430\u043d\u0435 \u0433\u043e\u0442\u043e\u0432 \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_bg.properties b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_bg.properties new file mode 100644 index 0000000000..5fec94d06c --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ Jenkins\ is\ restarting=\ + \u0418\u0437\u0447\u0430\u043a\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0430\u0442\u043e Jenkins \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 +Your\ browser\ will\ reload\ automatically\ when\ Jenkins\ is\ ready.=\ + \u0411\u0440\u0430\u0443\u0437\u044a\u0440 \u0432\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0449\u0435 \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0434\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430, \u043a\u043e\u0433\u0430\u0442\u043e Jenkins \u0435 \u0433\u043e\u0442\u043e\u0432. diff --git a/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_bg.properties b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_bg.properties new file mode 100644 index 0000000000..d030ed8413 --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_bg.properties @@ -0,0 +1,38 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 your servlet container is loading an older version of Ant by itself, \ +# thereby preventing Jenkins from loading its own newer copy. \ +# (Ant classes are loaded from {0})
      \ +# Perhaps can you override Ant in your container by copying one from Jenkins\u2019s WEB-INF/lib, \ +# or can you set up the classloader delegation to child-first so that Jenkins sees its own copy first? +errorMessage=\ + \u0418\u0437\u0433\u043b\u0435\u0436\u0434\u0430, \u0447\u0435 \u0432\u0430\u0448\u0438\u044f\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438 \u0437\u0430 \u0441\u044a\u0440\u0432\u043b\u0435\u0442\u0438 \u0437\u0430\u0440\u0435\u0436\u0434\u0430 \u0441\u0442\u0430\u0440\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 Ant, \u0430 \u0442\u043e\u0432\u0430\ + \u043f\u0440\u0435\u0447\u0438 \u043d\u0430 Jenkins \u0434\u0430 \u0437\u0430\u0440\u0435\u0434\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u0430\u0442\u0430 \u0441\u0438 \u0432\u0435\u0440\u0441\u0438\u044f. (\u041a\u043b\u0430\u0441\u043e\u0432\u0435\u0442\u0435 \u043d\u0430 Ant \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\ + \u0441\u0430 \u0437\u0430\u0440\u0435\u0434\u0435\u043d\u0438 \u043e\u0442 \u201e{0}\u201c)
      \ + \u0415\u0434\u0438\u043d \u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0438\u0442\u0435 \u0435 \u0434\u0430 \u043f\u0440\u0438\u043f\u043e\u043a\u0440\u0438\u0435\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u043d\u0430 Ant \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043a\u0430\u0442\u043e\ + \u043a\u043e\u043f\u0438\u0440\u0430\u0442\u0435 \u0442\u0430\u0437\u0438 \u043d\u0430 Jenkins \u043e\u0442WEB-INF/lib. \u0414\u0440\u0443\u0433\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u0435 \u0434\u0430\ + \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u0438\u043b\u0438 \u043f\u0440\u0435\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0438\u0440\u0430\u0442\u0435 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043a\u043b\u0430\u0441\u043e\u0432\u0435, \u0442\u0430\u043a\u0430 \u0447\u0435 \u0441 \u043f\u0440\u0435\u0434\u0438\u043c\u0441\u0442\u0432\u043e \u0434\u0430\ + \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u043a\u043e\u043f\u0438\u0435\u0442\u043e \u043d\u0430 Jenkins. +Error=\ + \u0413\u0440\u0435\u0448\u043a\u0430 diff --git a/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_bg.properties b/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_bg.properties new file mode 100644 index 0000000000..c2256e58f8 --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u0413\u0440\u0435\u0448\u043a\u0430 +# \ +# We detected that your servlet container does not support Servlet 2.4 \ +# (servlet API is loaded from {0}) +errorMessage=\ + \u0418\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044a\u0442 \u0437\u0430 \u0441\u044a\u0440\u0432\u043b\u0435\u0442\u0438, \u043a\u043e\u0439\u0442\u043e \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435, \u043d\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 2.4 \u043d\u0430\ + \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 \u0441\u044a\u0440\u0432\u043b\u0435\u0442\u0438. (API-\u0442\u043e \u0435 \u0437\u0430\u0440\u0435\u0434\u0435\u043d\u043e \u043e\u0442 \u201e{0}\u201c). diff --git a/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_bg.properties b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_bg.properties new file mode 100644 index 0000000000..870a017c5d --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_bg.properties @@ -0,0 +1,44 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Vendor=\ + \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b +Error=\ + \u0413\u0440\u0435\u0448\u043a\u0430 +VM\ Name=\ + \u0418\u043c\u0435 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 +Detected\ JVM=\ + \u041e\u0442\u043a\u0440\u0438\u0442\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 Java +OS\ Name=\ + \u0418\u043c\u0435 \u043d\u0430 \u041e\u0421 +# \ +# We detected that your JVM is not supported by Jenkins. \ +# This is due to the limitation is one of the libraries that Jenkins uses, namely XStream. \ +# See this FAQ for more details. +errorMessage=\ + \u0412\u0430\u0448\u0430\u0442\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0437\u0430 Java \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u043e\u0442 Jenkins. \u0422\u043e\u0432\u0430 \u0435\ + \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0432 \u0435\u0434\u043d\u0430 \u043e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u0442\u0435, \u043a\u043e\u0438\u0442\u043e Jenkins \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u2014 XStream. \u0417\u0430\ + \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435\ + \u043e\u0442\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u043d\u0430 \u0447\u0435\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u043d\u0438\u0442\u0435\ + \u0432\u044a\u043f\u0440\u043e\u0441\u0438 \u0437\u0430 XStream. +Version=\ + \u0412\u0435\u0440\u0441\u0438\u044f diff --git a/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_bg.properties b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_bg.properties new file mode 100644 index 0000000000..8a316a5158 --- /dev/null +++ b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_bg.properties @@ -0,0 +1,45 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 how to turn off security manager in your container, refer to \ +# \ +# Container-specific documentations of Jenkins. +errorMessage.2=\ + \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043a\u0430\u043a \u0434\u0430 \u0441\u043f\u0440\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 (security manager) \u043d\u0430\ + \u0432\u0430\u0448\u0438\u044f \u0443\u0435\u0431 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0438\u043c\u0430 \u0432\ + \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430\ + \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0430 \u0437\u0430 \u043e\u0442\u0434\u0435\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438 \u0437\u0430 \u0441\u044a\u0440\u0432\u043b\u0435\u0442\u0438. +# \ +# We detected that Jenkins 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 Jenkins 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=\ + Jenkins \u0437\u0430\u0441\u0435\u0447\u0435, \u0447\u0435 \u043d\u044f\u043c\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u043f\u0440\u0430\u0432\u0430, \u0437\u0430 \u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0438 \u2014 \u043f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435 \u0441\u0442\u0435\u043a\u0430\ + \u043e\u0442\u0434\u043e\u043b\u0443. \u041d\u0430\u0439-\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u0430\u0442\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430, \u0435 \u0447\u0435 \u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430.\ + \u0410\u043a\u043e \u0442\u043e\u0432\u0430 \u0435 \u043d\u0430\u0440\u043e\u0447\u043d\u043e, \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043c\u0443 \u0434\u0430\u0434\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u043f\u0440\u0430\u0432\u0430. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u0435\u043d \u0441\u043b\u0443\u0447\u0430\u0439\ + \u0438\u043b\u0438 \u0430\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u0438\u0435\u0442\u043e \u201esecurity manager\u201c \u043d\u0435 \u0432\u0438 \u0433\u043e\u0432\u043e\u0440\u0438 \u043d\u0438\u0449\u043e, \u043d\u0430\u0439-\u043b\u0435\u0441\u043d\u043e\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0435\ + \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430. +Error=\ + \u0413\u0440\u0435\u0448\u043a\u0430 diff --git a/core/src/main/resources/hudson/util/JNADoublyLoaded/index_bg.properties b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_bg.properties new file mode 100644 index 0000000000..23ca3bf353 --- /dev/null +++ b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + JNA \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0437\u0430\u0440\u0435\u0434\u0438 +# Another instance of JNA is already loaded in another classloader, thereby making it impossible for Jenkins \ +# to load its own copy. See Wiki for more details. +blurb=\ + JNA \u0432\u0435\u0447\u0435 \u0435 \u0437\u0430\u0440\u0435\u0434\u0435\u043d \u043e\u0442 \u0434\u0440\u0443\u0433 \u043a\u043b\u0430\u0441 \u0437\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u0430\u0441\u043e\u0432\u0435 \u0438 Jenkins \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430\ + \u0437\u0430\u0440\u0435\u0434\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u0430\u0442\u0430 \u0441\u0438 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 JNA. \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \ + \u043f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435 \u0443\u0438\u043a\u0438\u0442\u043e. \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/NoHomeDir/index_bg.properties b/core/src/main/resources/hudson/util/NoHomeDir/index_bg.properties new file mode 100644 index 0000000000..290dcb28c6 --- /dev/null +++ b/core/src/main/resources/hudson/util/NoHomeDir/index_bg.properties @@ -0,0 +1,40 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 \u2018{0}\u2019. This is most likely a permission problem. +errorMessage.1=\ + \u0414\u043e\u043c\u0430\u0448\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u043d\u0430. \u041d\u0430\u0439-\u0447\u0435\u0441\u0442\u0430\u0442\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0441\u0430\ + \u043f\u0440\u0430\u0432\u0430\u0442\u0430 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435. +# \ +# To change the home directory, use JENKINS_HOME environment variable or set the \ +# JENKINS_HOME system property. \ +# See Container-specific documentation \ +# for more details of how to do this. +errorMessage.2=\ + \u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u043c\u0435\u043d\u0438\u0442\u0435 \u0434\u043e\u043c\u0430\u0448\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0447\u0440\u0435\u0437 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0430\u0442\u0430 \u043d\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430\ + JENKINS_HOME \u0438\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0441\u044a\u0441 \u0441\u044a\u0449\u043e\u0442\u043e \u0438\u043c\u0435.\ + \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043a\u0430\u043a \u0441\u0435 \u043f\u0440\u0430\u0432\u0438 \u0442\u043e\u0432\u0430, \u043f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435\ + \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430\ + \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0430 \u0437\u0430 \u043e\u0442\u0434\u0435\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438 \u0437\u0430 \u0441\u044a\u0440\u0432\u043b\u0435\u0442\u0438. +Error=\ + \u0413\u0440\u0435\u0448\u043a\u0430 diff --git a/core/src/main/resources/hudson/util/NoTempDir/index_bg.properties b/core/src/main/resources/hudson/util/NoTempDir/index_bg.properties new file mode 100644 index 0000000000..72cad82298 --- /dev/null +++ b/core/src/main/resources/hudson/util/NoTempDir/index_bg.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 a temporary file. This is most likely caused by \ +# a mis-configuration of the container. The JVM seems to be told to use \ +# "{0}" as the temporary directory. Does this directory exist and is it writable? +description=\ + \u041d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435. \u041d\u0430\u0439-\u0447\u0435\u0441\u0442\u0430\u0442\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0437\u0430 \u0442\u043e\u0432\u0430 \u0435\ + \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0437\u0430 \u0441\u044a\u0440\u0432\u043b\u0435\u0442\u0438. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 Java \u0435\ + \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u201e{0}\u201c \u043a\u0430\u0442\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435\ + \u0434\u0430\u043b\u0438 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0438 \u0434\u0430\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044a\u0442 \u0438\u043c\u0430 \u043f\u0440\u0430\u0432\u0430 \u0434\u0430 \u043f\u0438\u0448\u0435 \u0432 \u043d\u0435\u044f. +Error=\ + \u0413\u0440\u0435\u0448\u043a\u0430 diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_bg.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_bg.properties new file mode 100644 index 0000000000..70955dd6c8 --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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} scheduled +Task_scheduled=\ + \u0417\u0430\u043f\u043b\u0430\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u201e{0}\u201c +# Schedule a {1} with parameters for {0} +Schedule_a_task_with_parameters=\ + \u0417\u0430\u043f\u043b\u0430\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u201e{1}\u201c \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u0437\u0430 {0} +# Schedule a {1} for {0} +Schedule_a_task=\ + \u0417\u0430\u043f\u043b\u0430\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u201e{1}\u201c \u0437\u0430 {0} diff --git a/core/src/main/resources/hudson/views/Messages_bg.properties b/core/src/main/resources/hudson/views/Messages_bg.properties index 69a1733513..a16086b9cc 100644 --- a/core/src/main/resources/hudson/views/Messages_bg.properties +++ b/core/src/main/resources/hudson/views/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # 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,3 +40,6 @@ DefaultViewsTabsBar.DisplayName=\ \u041b\u0435\u043d\u0442\u0430 \u0437\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u0442\u0435 \u0438\u0437\u0433\u043b\u0435\u0434\u0438 DefaultMyViewsTabsBar.DisplayName=\ \u041b\u0435\u043d\u0442\u0430 \u0437\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0438 \u0438\u0437\u0433\u043b\u0435\u0434\u0438 +# The specified view does not exist: {0} +GlobalDefaultViewConfiguration.ViewDoesNotExist=\ + \u0423\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0442 \u0438\u0437\u0433\u043b\u0435\u0434 \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430: {0} diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_bg.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_bg.properties index 2eec4596f7..b109304037 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_bg.properties +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # 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/views/WeatherColumn/columnHeader_bg.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_bg.properties index e956271eda..08c776faa8 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_bg.properties +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # 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/widgets/HistoryWidget/entry_bg.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/entry_bg.properties index 210cd27a86..590e356ec8 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/entry_bg.properties +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/entry_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # 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,6 @@ Console\ Output=\ \u041a\u043e\u043d\u0437\u043e\u043b\u0435\u043d \u0438\u0437\u0445\u043e\u0434 +# Are you sure you want to abort {0}? +confirm=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 {0}? diff --git a/core/src/main/resources/jenkins/CLI/WarnWhenEnabled/message_bg.properties b/core/src/main/resources/jenkins/CLI/WarnWhenEnabled/message_bg.properties new file mode 100644 index 0000000000..076efa540f --- /dev/null +++ b/core/src/main/resources/jenkins/CLI/WarnWhenEnabled/message_bg.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \ +# Allowing Jenkins CLI to work in -remoting mode is considered dangerous and usually unnecessary. \ +# You are advised to disable this mode. \ +# Please refer to the CLI documentation for details. +blurb=\ + \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043e\u043f\u0446\u0438\u044f\u0442\u0430 -remoting \u0437\u0430 \u043d\u0435\u0437\u0430\u0449\u0438\u0442\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0437\ + \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 \u0441\u0435 \u0441\u0447\u0438\u0442\u0430 \u0437\u0430 \u043e\u043f\u0430\u0441\u043d\u043e \u0438 \u043e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u043e \u0435 \u043d\u0435\u043d\u0443\u0436\u043d\u043e. \u0421\u044a\u0432\u0435\u0442\u0432\u0430\u043c\u0435 \u0432\u0438 \u0434\u0430\ + \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0442\u043e\u0437\u0438 \u0440\u0435\u0436\u0438\u043c. \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432\u0438\u0436\u0442\u0435\ + \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430\ + \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434. +Dismiss=\ + \u0411\u0435\u0437 \u0438\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 +Disable\ CLI\ over\ Remoting=\ + \u0418\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0437\u0430\u0449\u0438\u0442\u0435\u043d\u043e\u0442\u043e \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 diff --git a/core/src/main/resources/jenkins/CLI/config_bg.properties b/core/src/main/resources/jenkins/CLI/config_bg.properties new file mode 100644 index 0000000000..a5022de96b --- /dev/null +++ b/core/src/main/resources/jenkins/CLI/config_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041a\u043e\u043c\u0430\u043d\u0434\u0435\u043d \u0440\u0435\u0434 +Enable\ CLI\ over\ Remoting=\ + \u041d\u0435\u0437\u0430\u0449\u0438\u0442\u0435\u043d\u043e \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 diff --git a/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index_bg.properties b/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index_bg.properties new file mode 100644 index 0000000000..53f10d048f --- /dev/null +++ b/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index_bg.properties @@ -0,0 +1,44 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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} ago +ago=\ + \u041f\u0440\u0435\u0434\u0438 {0} +# The following JVM crash reports are found for this Jenkins instance. \ +# If you think this is a problem in Jenkins, please report it. \ +# Jenkins relies on some heuristics to find these files. For more reliable discovery, please consider adding \ +# -XX:ErrorFile=/path/to/hs_err_pid%p.log as your JVM argument. +blurb=\ + \u041d\u0430 \u0442\u0430\u0437\u0438 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 Jenkins \u0438\u043c\u0430 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u0438 \u0437\u0430 \u0437\u0430\u0431\u0438\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430\ + \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 Java. \u0410\u043a\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u0435, \u0447\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044a\u0442 \u0435 \u0432 Jenkins, \u043c\u043e\u043b\u0438\u043c \u043f\u043e\u0434\u0430\u0439\u0442\u0435\ + \u0434\u043e\u043a\u043b\u0430\u0434 \u0437\u0430 \u0433\u0440\u0435\u0448\u043a\u0430.\ + \u0417\u0430 \u043e\u0442\u043a\u0440\u0438\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u0430\u043a\u0438\u0432\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043c\u0430\u043b\u043a\u043e \u0435\u0432\u0440\u0438\u0441\u0442\u0438\u043a\u0430. \u0417\u0430 \u043f\u043e-\u043d\u0430\u0434\u0435\u0436\u0434\u043d\u043e\ + \u043e\u0442\u043a\u0440\u0438\u0432\u0430\u043d\u0435, \u0434\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u201e-XX:ErrorFile=/path/to/hs_err_pid%p.log\u201c \u043a\u0430\u0442\u043e\ + \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0437\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 Java. +Name=\ + \u0418\u043c\u0435 +Date=\ + \u0414\u0430\u0442\u0430 +Java\ VM\ Crash\ Reports=\ + \u0414\u043e\u043a\u043b\u0430\u0434\u0438 \u0437\u0430 \u0437\u0430\u0431\u0438\u0432\u0430\u043d\u0438\u044f\u0442\u0430 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 Java +Delete=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 diff --git a/core/src/main/resources/jenkins/diagnosis/HsErrPidList/message_bg.properties b/core/src/main/resources/jenkins/diagnosis/HsErrPidList/message_bg.properties new file mode 100644 index 0000000000..2b98427425 --- /dev/null +++ b/core/src/main/resources/jenkins/diagnosis/HsErrPidList/message_bg.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 Jenkins appears to have crashed. Please check the logs. +blurb=\ + \u0418\u0437\u0433\u043b\u0435\u0436\u0434\u0430, \u0447\u0435 \u0442\u043e\u0437\u0438 Jenkins \u0435 \u0437\u0430\u0431\u0438\u043b. \u041f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0442\u0435. diff --git a/core/src/main/resources/jenkins/diagnostics/CompletedInitializationMonitor/message_bg.properties b/core/src/main/resources/jenkins/diagnostics/CompletedInitializationMonitor/message_bg.properties new file mode 100644 index 0000000000..b43ada8efc --- /dev/null +++ b/core/src/main/resources/jenkins/diagnostics/CompletedInitializationMonitor/message_bg.properties @@ -0,0 +1,46 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Jenkins initialization has not reached the COMPLETED initialization milestone after the configuration reload. \ +# Current state is: \"{0}\". \ +# Such invalid state may cause undefined incorrect behavior of Jenkins plugins. \ +# It is likely an issue with the jenkins initialization or reloading task graph. +blurb=\ + \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 Jenkins \u043d\u0435 \u0441\u0442\u0438\u0433\u043d\u0430 \u0435\u0442\u0430\u043f\u0430 \u201eCOMPLETED\u201c (\u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0430) \u0441\u043b\u0435\u0434\ + \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435. \u0422\u0435\u043a\u0443\u0449\u043e\u0442\u043e \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0435 \u201e{0}\u201c. \u0422\u043e\u0432\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\ + \u043c\u043e\u0436\u0435 \u0434\u0430 \u0434\u043e\u0432\u0435\u0434\u0435 \u0434\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u0438\u043b\u0438 \u043d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438\u0442\u0435.\ + \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0442\u043e\u0432\u0430 \u0435 \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 Jenkin \u0438\u043b\u0438\ + \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0433\u0440\u0430\u0444\u0430 \u0441\u044a\u0441 \u0437\u0430\u0434\u0430\u0447\u0438\u0442\u0435. +Warning!=\ + \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435! +See\ documentation=\ + \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f +report\ a\ bug=\ + \u0414\u043e\u043a\u043b\u0430\u0434 \u0437\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 +in\ a\ plugin=\ + \u0432 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 +Example\:\ usage\ of=\ + \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e: \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0430 \u043d\u0430 +in\ the\ Jenkins\ bugtracker=\ + \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u0433\u0440\u0435\u0448\u043a\u0438 \u043d\u0430 Jenkins +Please=\ + \u041c\u043e\u043b\u0438\u043c diff --git a/core/src/main/resources/jenkins/diagnostics/Messages_bg.properties b/core/src/main/resources/jenkins/diagnostics/Messages_bg.properties new file mode 100644 index 0000000000..068b63402d --- /dev/null +++ b/core/src/main/resources/jenkins/diagnostics/Messages_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 URI Encoding +URICheckEncodingMonitor.DisplayName=\ + \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0438\u0442\u0435 +# Disabled Security +SecurityIsOffMonitor.DisplayName=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 \u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0430 +# Jenkins Initialization Monitor +CompletedInitializationMonitor.DisplayName=\ + \u041c\u043e\u043d\u0438\u0442\u043e\u0440 \u043d\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 Jenkins diff --git a/core/src/main/resources/jenkins/diagnostics/SecurityIsOffMonitor/message_bg.properties b/core/src/main/resources/jenkins/diagnostics/SecurityIsOffMonitor/message_bg.properties new file mode 100644 index 0000000000..cd8e0e03ac --- /dev/null +++ b/core/src/main/resources/jenkins/diagnostics/SecurityIsOffMonitor/message_bg.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041e\u0442\u043a\u0430\u0437 +Setup\ Security=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 +# Unsecured Jenkins allows anyone on the network to launch processes on your behalf. \ +# Consider at least enabling authentication to discourage misuse. +blurb=\ + Jenkins, \u043a\u043e\u0439\u0442\u043e \u0435 \u0431\u0435\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043d\u0430 \u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0440\u0435\u0436\u0430\u0442\u0430 \u0434\u0430\ + \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0438 \u043e\u0442 \u0432\u0430\u0448\u0435 \u0438\u043c\u0435. \u041d\u0430\u043f\u0440\u0430\u0432\u0435\u0442\u0435 \u043f\u043e\u043d\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u0430, \u0437\u0430\ + \u0434\u0430 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0438\u0442\u0435 \u0442\u043e\u0432\u0430. diff --git a/core/src/main/resources/jenkins/install/SetupWizard/authenticate-security-token_bg.properties b/core/src/main/resources/jenkins/install/SetupWizard/authenticate-security-token_bg.properties new file mode 100644 index 0000000000..23f4e20b9a --- /dev/null +++ b/core/src/main/resources/jenkins/install/SetupWizard/authenticate-security-token_bg.properties @@ -0,0 +1,51 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 password +authenticate-security-token.password.administrator=\ + \u041f\u0430\u0440\u043e\u043b\u0430 \u043d\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 +# Continue +authenticate-security-token.continue=\ + \u041d\u0430\u0442\u0430\u0442\u044a\u043a +# ERROR: +authenticate-security-token.error=\ + \u0413\u0420\u0415\u0428\u041a\u0410: +# The password entered is incorrect, please check the file for the correct password +authenticate-security-token.password.incorrect=\ + \u0412\u044a\u0432\u0435\u0434\u0435\u043d\u0430\u0442\u0430 \u043f\u0430\u0440\u043e\u043b\u0430 \u0435 \u0433\u0440\u0435\u0448\u043d\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0437\u0430 \u0432\u044f\u0440\u043d\u0430\u0442\u0430 \u0432\u044a\u0432 \u0444\u0430\u0439\u043b\u0430. +# Unlock Jenkins +authenticate-security-token.unlock.jenkins=\ + \u041e\u0442\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 Jenkins +# To ensure Jenkins is securely set up by the administrator, \ +# a password has been written to the log (not sure where to find it?) and this file on the server:

      {0}

      +jenkins.install.findSecurityTokenMessage=\ + \u0417\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d Jenkins \u043e\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440, \u0431\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0430\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430, \u043a\u043e\u044f\u0442\u043e \u0435\ + \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 (\u0430\u043a\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u044a\u0434\u0435 \u0435 \u0442\u043e\u0439: \u0432\u0438\u0436\u0442\u0435\ + \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430), \u043a\u0430\u043a\u0442\u043e \u0438 \u0432 \u0442\u043e\u0437\u0438 \u0444\u0430\u0439\u043b \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440\u0430:\ + \u201e

      {0}

      \u201c +# Getting Started +authenticate-security-token.getting.started=\ + \u041d\u0430\u0447\u0430\u043b\u043e +# Please copy the password from either location and paste it below. +authenticate-security-token.copy.password=\ + \u041a\u043e\u043f\u0438\u0440\u0430\u0439\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430 \u043e\u0442 \u043d\u044f\u043a\u043e\u0439 \u043e\u0442 \u043f\u043e\u0441\u043e\u0447\u0435\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0438 \u044f \u043d\u0430\u043f\u0438\u0448\u0435\u0442\u0435 \u043e\u0442\u0434\u043e\u043b\u0443. diff --git a/core/src/main/resources/jenkins/install/SetupWizard/proxy-configuration_bg.properties b/core/src/main/resources/jenkins/install/SetupWizard/proxy-configuration_bg.properties new file mode 100644 index 0000000000..f2171f0ec3 --- /dev/null +++ b/core/src/main/resources/jenkins/install/SetupWizard/proxy-configuration_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +HTTP\ Proxy\ Configuration=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440-\u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a \u0437\u0430 HTTP diff --git a/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_bg.properties b/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_bg.properties new file mode 100644 index 0000000000..86e2c8162e --- /dev/null +++ b/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_bg.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 +Create\ First\ Admin\ User=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u044a\u0440\u0432\u0438\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 diff --git a/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_bg.properties b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_bg.properties new file mode 100644 index 0000000000..fb0da55906 --- /dev/null +++ b/core/src/main/resources/jenkins/install/UpgradeWizard/client-scripts_bg.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \u0020to get the new features +msg.after=\ + , \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0441\u0434\u043e\u0431\u0438\u0435\u0442\u0435 \u0441 \u043d\u043e\u0432\u0438\u0442\u0435 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 +# Upgrade now +msg.link=\ + \u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 +# Welcome to Jenkins 2!\u0020 +msg.before=\ + \u0414\u043e\u0431\u0440\u0435 \u0434\u043e\u0448\u043b\u0438 \u0432 Jenkins 2!\u0020 diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_bg.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_bg.properties new file mode 100644 index 0000000000..2b8a1cd9cb --- /dev/null +++ b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_bg.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 {0} active administrative monitors. +tooltip=\ + \u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0438\u043c\u0430 {0} \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f. +Manage\ Jenkins=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 Jenkins diff --git a/core/src/main/resources/jenkins/management/Messages_bg.properties b/core/src/main/resources/jenkins/management/Messages_bg.properties index b605e22c46..22a399bbfd 100644 --- a/core/src/main/resources/jenkins/management/Messages_bg.properties +++ b/core/src/main/resources/jenkins/management/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -83,3 +83,6 @@ ConfigureTools.Description=\ # Global Tool Configuration ConfigureTools.DisplayName=\ \u041e\u0431\u0449\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438\u0442\u0435 +# Administrative Monitors Notifier +AdministrativeMonitorsDecorator.DisplayName=\ + \u0418\u0437\u0432\u0435\u0441\u0442\u0438\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f diff --git a/core/src/main/resources/jenkins/management/PluginsLink/info_bg.properties b/core/src/main/resources/jenkins/management/PluginsLink/info_bg.properties new file mode 100644 index 0000000000..2f4386fad5 --- /dev/null +++ b/core/src/main/resources/jenkins/management/PluginsLink/info_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ available=\ + \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u0441\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f diff --git a/core/src/main/resources/jenkins/model/BuildDiscarderProperty/config-details_bg.properties b/core/src/main/resources/jenkins/model/BuildDiscarderProperty/config-details_bg.properties new file mode 100644 index 0000000000..7a53d880a7 --- /dev/null +++ b/core/src/main/resources/jenkins/model/BuildDiscarderProperty/config-details_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Strategy=\ + \u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f diff --git a/core/src/main/resources/jenkins/model/DownloadSettings/Warning/message_bg.properties b/core/src/main/resources/jenkins/model/DownloadSettings/Warning/message_bg.properties new file mode 100644 index 0000000000..9ad0da03e4 --- /dev/null +++ b/core/src/main/resources/jenkins/model/DownloadSettings/Warning/message_bg.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 currently are using browser-based download to retrieve metadata for Jenkins plugins and tools. \ +# This has reliability issues and is not considered fully secure. \ +# Consider switching to server-based download. +blurb=\ + \u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0438\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435 \u043d\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0437\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438\u0442\u0435 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438\u0442\u0435 \u043d\u0430\ + Jenkins \u043f\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u0430. \u0422\u043e\u0432\u0430 \u043d\u0435 \u0435 \u0441\u044a\u0432\u0441\u0435\u043c \u043d\u0430\u0434\u0435\u0436\u0434\u043d\u043e, \u0430 \u0438 \u043d\u0435 \u0435 \u0441\u044a\u0432\u0441\u0435\u043c \u0441\u0438\u0433\u0443\u0440\u043d\u043e.\ + \u041f\u043e\u043c\u0438\u0441\u043b\u0435\u0442\u0435 \u0437\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043d\u0430 \u0438\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0438\u044f \u043f\u0440\u0435\u0437\ + \u0441\u044a\u0440\u0432\u044a\u0440\u0430. +Dismiss=\ + \u041e\u0442\u043a\u0430\u0437 diff --git a/core/src/main/resources/jenkins/model/Jenkins/EnforceSlaveAgentPortAdministrativeMonitor/message_bg.properties b/core/src/main/resources/jenkins/model/Jenkins/EnforceSlaveAgentPortAdministrativeMonitor/message_bg.properties new file mode 100644 index 0000000000..9a2eee5fff --- /dev/null +++ b/core/src/main/resources/jenkins/model/Jenkins/EnforceSlaveAgentPortAdministrativeMonitor/message_bg.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# JNLP Agent Port has been changed but was specified through system property {0} on startup. Its value will be reset to {1,number,#} on restart. +description=\ + \u041f\u043e\u0440\u0442\u044a\u0442 \u0437\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u043f\u043e JNLP \u0435 \u043f\u0440\u043e\u043c\u0435\u043d\u0435\u043d \u0447\u0440\u0435\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u201e{0}\u201c \u043f\u0440\u0438\ + \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435. \u0421\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0442\u0430 \u0449\u0435 \u0431\u044a\u0434\u0435 \u0432\u044a\u0440\u043d\u0430\u0442\u0430 \u043d\u0430 {1,number,#} \u043f\u0440\u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435. +# Reset to {0,number,#} +reset=\ + \u0412\u0440\u044a\u0449\u0430\u043d\u0435 \u043d\u0430 {0,number,#} diff --git a/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure_bg.properties b/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure_bg.properties new file mode 100644 index 0000000000..2b04ba83b1 --- /dev/null +++ b/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure_bg.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ Properties=\ + \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0442\u0430 +\#\ of\ executors=\ + \u0411\u0440\u043e\u0439 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u0449\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0438 +Description=\ + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 +Save=\ + \u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 +Labels=\ + \u0415\u0442\u0438\u043a\u0435\u0442\u0438 diff --git a/core/src/main/resources/jenkins/model/Messages_bg.properties b/core/src/main/resources/jenkins/model/Messages_bg.properties index 3079bce9c2..264a216106 100644 --- a/core/src/main/resources/jenkins/model/Messages_bg.properties +++ b/core/src/main/resources/jenkins/model/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -111,3 +111,9 @@ CLI.disable-job.shortDescription=\ \u0418\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. CLI.enable-job.shortDescription=\ \u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. +# Browser-based metadata download +DownloadSettings.Warning.DisplayName=\ + \u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0430 \u043d\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0447\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u044a\u0440 +# Enforce JNLP Slave Agent Port +EnforceSlaveAgentPortAdministrativeMonitor.displayName=\ + \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u0435\u043d \u043f\u043e\u0440\u0442 \u0437\u0430 JNLP \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 diff --git a/core/src/main/resources/jenkins/model/RunIdMigrator/UnmigrationInstruction/index_bg.properties b/core/src/main/resources/jenkins/model/RunIdMigrator/UnmigrationInstruction/index_bg.properties new file mode 100644 index 0000000000..ac1e83ceae --- /dev/null +++ b/core/src/main/resources/jenkins/model/RunIdMigrator/UnmigrationInstruction/index_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copied=\ + \u041a\u043e\u043f\u0438\u0440\u0430\u043d\u043e diff --git a/core/src/main/resources/jenkins/model/identity/IdentityRootAction/index_bg.properties b/core/src/main/resources/jenkins/model/identity/IdentityRootAction/index_bg.properties new file mode 100644 index 0000000000..0dce3bcc38 --- /dev/null +++ b/core/src/main/resources/jenkins/model/identity/IdentityRootAction/index_bg.properties @@ -0,0 +1,37 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Every Jenkins instance has a pair of public and private keys used to uniquely identify that Jenkins instance. \ +# The public key is published in the X-Instance-Identity header for web requests against the Jenkins UI. \ +# You can also find the key and the fingerprint of the key on this page. +blurb=\ + \u0412\u0441\u044f\u043a\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f \u043d\u0430 Jenkins \u0438\u043c\u0430 \u0434\u0432\u043e\u0439\u043a\u0430 \u043f\u0443\u0431\u043b\u0438\u0447\u0435\u043d \u0438 \u0447\u0430\u0441\u0442\u0435\u043d \u043a\u043b\u044e\u0447, \u043a\u043e\u0438\u0442\u043e \u0441\u0430\ + \u0443\u043d\u0438\u043a\u0430\u043b\u043d\u0438 \u0438 \u0441\u043b\u0443\u0436\u0430\u0442 \u0437\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u0438\u044f\u0442 \u043a\u043b\u044e\u0447 \u0441\u0435 \u0438\u0437\u0432\u0435\u0436\u0434\u0430 \u0432 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u0430\u0442\u0430\ + \u0447\u0430\u0441\u0442 X-Instance-Identity \u043d\u0430 \u043e\u0442\u0433\u043e\u0432\u043e\u0440\u0430 \u043a\u044a\u043c \u0432\u0441\u044f\u043a\u0430 \u0437\u0430\u044f\u0432\u043a\u0430 \u043a\u044a\u043c \u0443\u0435\u0431\ + \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 Jenkins. \u041a\u043b\u044e\u0447\u044a\u0442 \u0438 \u043d\u0435\u0433\u043e\u0432\u0438\u044f\u0442 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u043a \u0441\u0430 \u0434\u0430\u0434\u0435\u043d\u0438 \u0438 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u0442\u0430 \u0443\u0435\u0431\ + \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430. +Public\ Key=\ + \u041f\u0443\u0431\u043b\u0438\u0447\u0435\u043d \u043a\u043b\u044e\u0447 +Fingerprint=\ + \u041e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u043a +Instance\ Identity=\ + \u0418\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442 \u043d\u0430 Jenkins diff --git a/core/src/main/resources/jenkins/model/item_category/Messages_bg.properties b/core/src/main/resources/jenkins/model/item_category/Messages_bg.properties new file mode 100644 index 0000000000..15af22fd70 --- /dev/null +++ b/core/src/main/resources/jenkins/model/item_category/Messages_bg.properties @@ -0,0 +1,42 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 projects with a self-contained configuration and history. These projects can be at the top-level or grouped within folders. +StandaloneProjects.Description=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u043e\u0442\u0434\u0435\u043b\u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. \u0422\u0435\u0437\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442\ + \u043d\u0430 \u043d\u0430\u0439-\u0433\u043e\u0440\u043d\u043e \u043d\u0438\u0432\u043e \u0438\u043b\u0438 \u0434\u0430 \u0441\u0430 \u0433\u0440\u0443\u043f\u0438\u0440\u0430\u043d\u0438 \u043f\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. +# Uncategorized +Uncategorized.DisplayName=\ + \u0411\u0435\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f +# Standalone Projects +StandaloneProjects.DisplayName=\ + \u0421\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u043d\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438 +# Nested Projects +NestedProjects.DisplayName=\ + \u041f\u043e\u0434\u043f\u0440\u043e\u0435\u043a\u0442\u0438 +# Item types that have not yet been categorized by their plugin maintainer. +Uncategorized.Description=\ + \u041f\u0440\u043e\u0435\u043a\u0442\u0438, \u043a\u043e\u0438\u0442\u043e \u043d\u0435 \u0441\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0437\u0438\u0440\u0430\u043d\u0438 \u043e\u0442 \u0441\u044a\u0437\u0434\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\u0442\u0430 \u0438\u043c. +# Create project categories or project hierarchies with folders. Folders can be created manually or automatically based on repositories. +NestedProjects.Description=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438\u043b\u0438 \u0439\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043e\u0442 \u043f\u0430\u043f\u043a\u0438. \u041f\u0430\u043f\u043a\u0438\u0442\u0435 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u0442 \u0440\u044a\u0447\u043d\u043e \u0438\u043b\u0438\ + \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0441\u043f\u043e\u0440\u0435\u0434 \u043f\u043e\u0434\u0440\u0435\u0434\u0431\u0430\u0442\u0430 \u043d\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u0442\u0430 \u0437\u0430 \u043a\u043e\u0434. diff --git a/core/src/main/resources/jenkins/security/Messages_bg.properties b/core/src/main/resources/jenkins/security/Messages_bg.properties index 01bff534b4..d81b33152d 100644 --- a/core/src/main/resources/jenkins/security/Messages_bg.properties +++ b/core/src/main/resources/jenkins/security/Messages_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,3 +31,6 @@ ApiTokenProperty.ChangeToken.SuccessHidden=\ \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f RekeySecretAdminMonitor.DisplayName=\ \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432 \u043a\u043b\u044e\u0447 +# Update Site Warnings +UpdateSiteWarningsMonitor.DisplayName=\ + \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u0442 \u0441\u0430\u0439\u0442\u043e\u0432\u0435\u0442\u0435 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f diff --git a/core/src/main/resources/jenkins/security/s2m/AdminCallableMonitor/message_bg.properties b/core/src/main/resources/jenkins/security/s2m/AdminCallableMonitor/message_bg.properties new file mode 100644 index 0000000000..190c24f328 --- /dev/null +++ b/core/src/main/resources/jenkins/security/s2m/AdminCallableMonitor/message_bg.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041e\u0442\u043a\u0430\u0437 +# Jenkins has rejected some commands from agents, because we are unsure if it is open for agents to execute, \ +# but this rejection has probably broken some builds. You should examine the situation to see if they should be whitelisted. +blurb=\ + Jenkins \u043e\u0442\u0445\u0432\u044a\u0440\u043b\u0438 \u0447\u0430\u0441\u0442 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0438\u0442\u0435 \u043e\u0442 \u0430\u0433\u0435\u043d\u0442\u0438\u0442\u0435, \u0437\u0430\u0449\u043e\u0442\u043e \u043d\u0435 \u0435 \u044f\u0441\u043d\u043e \u0434\u0430\u043b\u0438 \u043c\u043e\u0436\u0435 \u0434\u0430\ + \u0433\u0438 \u043f\u0440\u0438\u0435\u043c\u0430. \u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u0435 \u0442\u043e\u0432\u0430 \u0434\u0430 \u0435 \u0441\u0447\u0443\u043f\u0438\u043b\u043e \u0447\u0430\u0441\u0442 \u043e\u0442 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430. \u041f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435 \u0433\u0438,\ + \u0437\u0430 \u0434\u0430 \u0440\u0435\u0448\u0438\u0442\u0435 \u0434\u0430\u043b\u0438 \u0438\u0437\u0440\u0438\u0447\u043d\u043e \u0434\u0430 \u043d\u0435 \u0433\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u0435. +Examine=\ + \u041f\u0440\u0435\u0433\u043b\u0435\u0434 diff --git a/core/src/main/resources/jenkins/security/s2m/AdminWhitelistRule/index_bg.properties b/core/src/main/resources/jenkins/security/s2m/AdminWhitelistRule/index_bg.properties new file mode 100644 index 0000000000..79e58cf1d1 --- /dev/null +++ b/core/src/main/resources/jenkins/security/s2m/AdminWhitelistRule/index_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Whitelist=\ + \u041e\u0434\u043e\u0431\u0440\u0435\u043d \u0441\u043f\u0438\u0441\u044a\u043a +Update=\ + \u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 +Agent\ &\#8594;\ Master\ Access\ Control=\ + \u0410\u0433\u0435\u043d\u0442 \u2192 \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u0430 diff --git a/core/src/main/resources/jenkins/security/s2m/MasterKillSwitchWarning/message_bg.properties b/core/src/main/resources/jenkins/security/s2m/MasterKillSwitchWarning/message_bg.properties new file mode 100644 index 0000000000..906a8329f9 --- /dev/null +++ b/core/src/main/resources/jenkins/security/s2m/MasterKillSwitchWarning/message_bg.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u041e\u0442\u043a\u0430\u0437 +Examine=\ + \u041f\u0440\u0435\u0433\u043b\u0435\u0434 +# Agent to master security subsystem is currently off. \ +# Please read the documentation and consider turning it on. +blurb=\ + \u0410\u0433\u0435\u043d\u0442\u044a\u0442 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u0442\u0430 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 \u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430.\ + \u041f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435\ + \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u0438 \u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u0442\u0435. diff --git a/core/src/main/resources/jenkins/security/s2m/Messages_bg.properties b/core/src/main/resources/jenkins/security/s2m/Messages_bg.properties new file mode 100644 index 0000000000..a4f7b0455e --- /dev/null +++ b/core/src/main/resources/jenkins/security/s2m/Messages_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Rejected Agent \u2192 Master Access Attempt +AdminCallableMonitor.DisplayName=\ + \u041e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u2014 \u043e\u043f\u0438\u0442 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 +# Disabled Agent \u2192 Master Access Control +MasterKillSwitchWarning.DisplayName=\ + \u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u2014 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u0430 \u0434\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 diff --git a/core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message_bg.properties b/core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message_bg.properties new file mode 100644 index 0000000000..9674b5a02d --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message_bg.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 Jenkins instance uses deprecated protocols: {0}. \ +# It may impact stability of the instance. \ +# If newer protocol versions are supported by all system components (agents, CLI and other clients), \ +# it is highly recommended to disable the deprecated protocols. +blurb=\ + \u0422\u0430\u0437\u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f \u043d\u0430 Jenkins \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043e\u0441\u0442\u0430\u0440\u0435\u043b\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0438: {0}. \u0422\u043e\u0432\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435\ + \u043e\u0442\u0440\u0430\u0437\u0438 \u043d\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e\u0441\u0442\u0442\u0430 \u045d. \u0410\u043a\u043e \u0432\u0441\u0438\u0447\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0438, \u043a\u0430\u0442\u043e \u0430\u0433\u0435\u043d\u0442\u0438\u0442\u0435,\ + \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 \u0438 \u0434\u0440\u0443\u0433\u0438\u0442\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0438 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430\u0442 \u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0438, \u0441\u0438\u043b\u043d\u043e \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430\u043c\u0435\ + \u0434\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u043e\u0441\u0442\u0430\u0440\u0435\u043b\u0438\u0442\u0435. +# It may impact stability of the instance. \ +# If newer protocol versions are supported by all system components (agents, CLI and other clients), \ +# it is highly recommended to disable the deprecated protocols. +Protocol\ Configuration=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0438\u0442\u0435 diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause_bg.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause_bg.properties new file mode 100644 index 0000000000..2f66522f0e --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/deprecationCause_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 protocol is an obsolete protocol, which has been replaced by JNLP2-connect. \ +# It is also not encrypted. +message=\ + \u0422\u043e\u0437\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0435 \u043e\u0441\u0442\u0430\u0440\u044f\u043b \u0438 \u0435 \u0431\u0435\u0437 \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435. \u0417\u0430\u043c\u0435\u043d\u0435\u043d \u0435 \u043e\u0442 JNLP2-connect. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/description_bg.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/description_bg.properties new file mode 100644 index 0000000000..c19dc4a111 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol/description_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Accepts\ connections\ from\ remote\ clients\ so\ that\ they\ can\ be\ used\ as\ additional\ build\ agents=\ + \u041f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0438 \u043e\u0442 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0438, \u0442\u0430\u043a\u0430 \u0447\u0435 \u0442\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u043a\u0430\u0442\u043e\ + \u0434\u043e\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u0438 \u043c\u0430\u0448\u0438\u043d\u0438 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. +# Accepts connections from remote clients so that they can be used as additional build agents. \ +# This protocol is unencrypted. +summary=\ + \u041f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0438 \u043e\u0442 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0438, \u0442\u0430\u043a\u0430 \u0447\u0435 \u0442\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u043a\u0430\u0442\u043e\ + \u0434\u043e\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u0438 \u043c\u0430\u0448\u0438\u043d\u0438 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044a\u0442 \u043d\u0435 \u0435 \u0437\u0430\u0449\u0438\u0442\u0435\u043d \u0441 \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause_bg.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause_bg.properties new file mode 100644 index 0000000000..35fdea705a --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/deprecationCause_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +JNLP2\ Protocol\ Errata=\ + \u0413\u0440\u0435\u0448\u043a\u0438 \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 JNLP2 +# This protocol has known stability issues, and it is replaced by JNLP4. \ +# It is also not encrypted. \ +# See more information in the protocol Errata. +message=\ + \u0422\u043e\u0437\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043d\u0435 \u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u0435\u043d \u0438 \u0435 \u0437\u0430\u043c\u0435\u043d\u0435\u043d \u043e\u0442 JNLP4. \u0412 JNLP2 \u043b\u0438\u043f\u0441\u0432\u0430 \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435.\ + \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432\u0438\u0436\u0442\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 \u0433\u0440\u0435\u0448\u043a\u0438\u0442\u0435 \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/description_bg.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/description_bg.properties new file mode 100644 index 0000000000..e49efb0715 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol2/description_bg.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Extends\ the\ version\ 1\ protocol\ by\ adding\ a\ per-client\ cookie,\ so\ that\ we\ can\ detect\ a\ reconnection\ from\ the\ agent\ and\ take\ appropriate\ action=\ + \u0420\u0430\u0437\u0448\u0438\u0440\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 1 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043a\u0430\u0442\u043e \u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u044f \u0431\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0430 \u0437\u0430 \u0432\u0441\u0435\u043a\u0438\ + \u043a\u043b\u0438\u0435\u043d\u0442. \u0422\u043e\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043e\u0442\u043a\u0440\u0438\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0438\u0442\u0435 \u043e\u0442\ + \u0430\u0433\u0435\u043d\u0442\u0438\u0442\u0435 \u0438 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u043e\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. +# Extends the version 1 protocol by adding a per-client cookie, \ +# so that we can detect a reconnection from the agent and take appropriate action. \ +# This protocol is unencrypted. +summary=\ + \u0420\u0430\u0437\u0448\u0438\u0440\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 1 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043a\u0430\u0442\u043e \u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u044f \u0431\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0430 \u0437\u0430 \u0432\u0441\u0435\u043a\u0438\ + \u043a\u043b\u0438\u0435\u043d\u0442. \u0422\u043e\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043e\u0442\u043a\u0440\u0438\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0438\u0442\u0435 \u043e\u0442\ + \u0430\u0433\u0435\u043d\u0442\u0438\u0442\u0435 \u0438 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u043e\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u0422\u043e\u0437\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0435 \u043d\u0435\u0437\u0430\u0449\u0438\u0442\u0435\u043d. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause_bg.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause_bg.properties new file mode 100644 index 0000000000..c0ffc66602 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/deprecationCause_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +JNLP3\ Protocol\ Errata=\ + \u0413\u0440\u0435\u0448\u043a\u0438 \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 JNLP3 +This\ protocol\ is\ unstable.\ See\ the\ protocol\ documentation\ for\ more\ info.=\ + \u0422\u043e\u0437\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0435 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u0435\u043d. \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432\u0438\u0436\u0442\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u043c\u0443. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description_bg.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description_bg.properties new file mode 100644 index 0000000000..2a41070810 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol3/description_bg.properties @@ -0,0 +1,35 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017 Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Extends\ the\ version\ 2\ protocol\ by\ adding\ basic\ encryption\ but\ requires\ a\ thread\ per\ client=\ + \u0420\u0430\u0437\u0448\u0438\u0440\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 2 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043a\u0430\u0442\u043e \u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u044f \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435, \u043d\u043e \u0442\u043e\u0432\u0430\ + \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043f\u043e \u0435\u0434\u043d\u0430 \u043d\u0438\u0448\u043a\u0430 \u0437\u0430 \u0432\u0441\u0435\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 +# Extends the version 2 protocol by adding basic encryption but requires a thread per client. \ +# This protocol falls back to Java Web Start Agent Protocol/2 (unencrypted) when it can't create a secure connection. \ +# This protocol is not recommended. \ +# Use Java Web Start Agent Protocol/4 instead. +summary=\ + \u0420\u0430\u0437\u0448\u0438\u0440\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 2 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043a\u0430\u0442\u043e \u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u044f \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435, \u043d\u043e \u0442\u043e\u0432\u0430\ + \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043f\u043e \u0435\u0434\u043d\u0430 \u043d\u0438\u0448\u043a\u0430 \u0437\u0430 \u0432\u0441\u0435\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442. \u041a\u043e\u0433\u0430\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435 \u0437\u0430\u0449\u0438\u0442\u0435\u043d\u0430\ + \u0432\u0440\u044a\u0437\u043a\u0430, \u0442\u043e\u0437\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u0440\u0438\u0431\u044f\u0433\u0432\u0430 \u0434\u043e Java Web Start Agent Protocol/2, \u043a\u043e\u0439\u0442\u043e \u043d\u0435 \u0435\ + \u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d. \u0422\u043e\u0432\u0430 \u043d\u0435 \u0435 \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0438\u0442\u0435\u043b\u043d\u043e \u2014 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442e Java Web Start Agent\ + Protocol/4 \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0432\u0430. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties new file mode 100644 index 0000000000..350451e3d3 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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 TLS secured connection between the master and the agent performed by TLS upgrade of the socket. +summary=\ + \u0417\u0430\u0449\u0438\u0442\u0435\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0449\u0438\u044f \u0438 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u0447\u0440\u0435\u0437 \u043f\u0440\u0435\u043c\u0438\u043d\u0430\u0432\u0430\u043d\u0435 \u043a\u044a\u043c\ + TLS \u043f\u043e \u0433\u043d\u0435\u0437\u0434\u043e\u0442\u043e. diff --git a/core/src/main/resources/jenkins/slaves/Messages_bg.properties b/core/src/main/resources/jenkins/slaves/Messages_bg.properties new file mode 100644 index 0000000000..be906db5a6 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/Messages_bg.properties @@ -0,0 +1,37 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Java Web Start Agent Protocol/3 +JnlpSlaveAgentProtocol3.displayName=\ + \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u0437\u0430 Java \u043f\u0440\u0435\u0437 \u0443e\u0431, \u0432\u0435\u0440\u0441\u0438\u044f 3 +# Java Web Start Agent Protocol/1 +JnlpSlaveAgentProtocol.displayName=\ + \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u0437\u0430 Java \u043f\u0440\u0435\u0437 \u0443e\u0431, \u0432\u0435\u0440\u0441\u0438\u044f 1 +# Java Web Start Agent Protocol/2 +JnlpSlaveAgentProtocol2.displayName=\ + \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u0437\u0430 Java \u043f\u0440\u0435\u0437 \u0443e\u0431, \u0432\u0435\u0440\u0441\u0438\u044f 2 +# Java Web Start Agent Protocol/4 (TLS encryption) +JnlpSlaveAgentProtocol4.displayName=\ + \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u0437\u0430 Java \u043f\u0440\u0435\u0437 \u0443e\u0431, \u0432\u0435\u0440\u0441\u0438\u044f 4 (\u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435 \u0441 TLS) +# Deprecated Agent Protocol Monitor +DeprecatedAgentProtocolMonitor.displayName=\ + \u0414\u0430\u0442\u0447\u0438\u043a \u0437\u0430 \u043e\u0441\u0442\u0430\u0440\u0435\u043b\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0438 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u0437\u0430 Java \u043f\u0440\u0435\u0437 \u0443e\u0431 diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/config_bg.properties b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/config_bg.properties new file mode 100644 index 0000000000..ea519d6f69 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/config_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2017, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ WorkDir=\ + \u0418\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f +Fail\ if\ workspace\ is\ missing=\ + \u0421\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u044a\u0441\u0442\u0432\u0438\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u0433\u0440\u0435\u0448\u043a\u0430 +Internal\ data\ directory=\ + \u0412\u044a\u0442\u0440\u0435\u0448\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0434\u0430\u043d\u043d\u0438 +Custom\ WorkDir\ path=\ + \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f diff --git a/core/src/main/resources/jenkins/triggers/ReverseBuildTrigger/config_bg.properties b/core/src/main/resources/jenkins/triggers/ReverseBuildTrigger/config_bg.properties new file mode 100644 index 0000000000..434c506bfe --- /dev/null +++ b/core/src/main/resources/jenkins/triggers/ReverseBuildTrigger/config_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Trigger\ even\ if\ the\ build\ is\ unstable=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u0434\u043e\u0440\u0438 \u0438 \u043f\u0440\u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u0435\u043d \u043f\u0440\u043e\u0435\u043a\u0442 +Projects\ to\ watch=\ + \u041f\u0440\u043e\u0435\u043a\u0442\u0438 \u0437\u0430 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 +Trigger\ only\ if\ build\ is\ stable=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u0441\u0430\u043c\u043e \u043f\u0440\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u0435\u043d \u043f\u0440\u043e\u0435\u043a\u0442 +Trigger\ even\ if\ the\ build\ fails=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u0438 \u043f\u0440\u0438 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0434\u0435\u043d \u043f\u0440\u043e\u0435\u043a\u0442 diff --git a/core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items_bg.properties b/core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items_bg.properties new file mode 100644 index 0000000000..962329a96b --- /dev/null +++ b/core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items_bg.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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=\ + \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438 +cancel\ this\ build=\ + \u043e\u0442\u043c\u044f\u043d\u0430 \u043d\u0430 \u0442\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Expected\ build\ number=\ + \u041e\u0447\u0430\u043a\u0432\u0430\u043d \u043d\u043e\u043c\u0435\u0440 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 diff --git a/core/src/main/resources/lib/hudson/buildCaption_bg.properties b/core/src/main/resources/lib/hudson/buildCaption_bg.properties index b0581b5f9b..47274fcd4a 100644 --- a/core/src/main/resources/lib/hudson/buildCaption_bg.properties +++ b/core/src/main/resources/lib/hudson/buildCaption_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # 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,3 +24,6 @@ Progress=\ \u041d\u0430\u043f\u0440\u0435\u0434\u044a\u043a cancel=\ \u041e\u0442\u043c\u044f\u043d\u0430 +# Are you sure you want to abort {0}? +confirm=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 {0}? diff --git a/core/src/main/resources/lib/hudson/executors_bg.properties b/core/src/main/resources/lib/hudson/executors_bg.properties index d55c9f8e4c..07ed67592b 100644 --- a/core/src/main/resources/lib/hudson/executors_bg.properties +++ b/core/src/main/resources/lib/hudson/executors_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -41,3 +41,6 @@ Offline=\ # master{0,choice,0#|1# + {0,number} computer ({1} of {2} executors)|1< + {0,number} computers ({1} of {2} executors)} Computers=\ \u043e\u0441\u043d\u043e\u0432\u0435\u043d{0,choice,0#|1# + {0,number} \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 ({1} \u043e\u0442 {2} \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438)|1< + {0,number} \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438 ({1} \u043e\u0442 {2} \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438)} +# Are you sure you want to abort {0}? +confirm=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 {0}? diff --git a/core/src/main/resources/lib/hudson/project/upstream-downstream_bg.properties b/core/src/main/resources/lib/hudson/project/upstream-downstream_bg.properties index fb46cd90ef..2151947350 100644 --- a/core/src/main/resources/lib/hudson/project/upstream-downstream_bg.properties +++ b/core/src/main/resources/lib/hudson/project/upstream-downstream_bg.properties @@ -20,5 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Downstream\ Projects=\u041f\u043e\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438 -Upstream\ Projects=\u041f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0430\u0449\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438 +Downstream\ Projects=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438 +Upstream\ Projects=\ + \u041f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0430\u0449\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438 diff --git a/core/src/main/resources/lib/hudson/queue_bg.properties b/core/src/main/resources/lib/hudson/queue_bg.properties index 7aab265248..4bb629b69f 100644 --- a/core/src/main/resources/lib/hudson/queue_bg.properties +++ b/core/src/main/resources/lib/hudson/queue_bg.properties @@ -1,6 +1,6 @@ # The MIT License # -# Bulgarian translation: Copyright (c) 2015, 2016, Alexander Shopov +# Bulgarian translation: Copyright (c) 2015, 2016, 2017, Alexander Shopov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +34,6 @@ WaitingFor=\ \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 {0} Filtered\ Build\ Queue=\ \u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f {0,choice,0#|0< ({0,number})} +# Are you sure you want to cancel the queued run of {0}? +confirm=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u0435 \u0437\u0430\u043f\u043b\u0430\u043d\u0443\u0432\u0430\u043d\u043e\u0442\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 {0}? -- GitLab From 252564aa69eb53ab0541ff9b58ef5ddc63587506 Mon Sep 17 00:00:00 2001 From: Alexander Shopov Date: Tue, 23 Aug 2016 15:24:08 +0300 Subject: [PATCH 0142/1763] Bulgarian translation of HTML files --- .../ProxyConfiguration/help-name_bg.html | 13 ++ .../help-noProxyHost_bg.html | 4 + .../ProxyConfiguration/help-port_bg.html | 3 + .../ProxyConfiguration/help-userName_bg.html | 9 + .../AbstractItem/help-slaveAffinity_bg.html | 2 +- .../help-concurrentBuild_bg.html | 27 +-- .../model/AbstractProject/help-label_bg.html | 6 +- .../model/Node/help-labelString_bg.html | 22 +++ .../hudson/model/Node/help-name_bg.html | 10 ++ .../model/Node/help-numExecutors_bg.html | 18 ++ .../ParametersDefinitionProperty/help_bg.html | 36 ++++ .../hudson/model/Slave/help-remoteFS_bg.html | 34 ++++ .../help-usageStatisticsCollected_bg.html | 22 +++ .../help-freeSpaceThreshold_bg.html | 7 + .../ArchitectureMonitor/help_bg.html | 4 + .../node_monitors/ClockMonitor/help_bg.html | 9 + .../DiskSpaceMonitor/help_bg.html | 9 + .../ResponseTimeMonitor/help_bg.html | 10 ++ .../TemporarySpaceMonitor/help_bg.html | 16 ++ .../Unsecured/help_bg.html | 9 + .../help-allowAnonymousRead_bg.html | 4 + .../help_bg.html | 11 ++ .../help-agentProtocol_bg.html | 4 + .../help-disableRememberMe_bg.html | 4 + .../help-slaveAgentPort_bg.html | 8 + .../help-useSecurity_bg.html | 14 ++ .../LegacyAuthorizationStrategy/help_bg.html | 5 + .../help-excludeClientIPFromCrumb_bg.html | 7 + .../help-csrf_bg.html | 24 +++ .../help-instanceCapStr_bg.html | 13 ++ .../CommandLauncher/help-command_bg.html | 36 ++++ .../slaves/JNLPLauncher/help-vmargs_bg.html | 6 + .../help-allowEmptyArchive_bg.html | 6 + .../ArtifactArchiver/help-artifacts_bg.html | 8 + .../help-caseSensitive_bg.html | 8 + .../ArtifactArchiver/help-excludes_bg.html | 6 + .../tasks/ArtifactArchiver/help_bg.html | 15 ++ .../BatchFile/help-unstableReturn_bg.html | 10 ++ .../tasks/Fingerprinter/help-targets_bg.html | 7 + .../hudson/tasks/Fingerprinter/help_bg.html | 34 ++++ .../Maven/help-injectBuildVariables_bg.html | 6 + .../tasks/Maven/help-properties_bg.html | 9 + .../hudson/tasks/Maven/help-settings_bg.html | 20 +++ .../hudson/tasks/Shell/help-shell_bg.html | 5 + .../tasks/Shell/help-unstableReturn_bg.html | 8 + .../resources/hudson/tasks/Shell/help_bg.html | 19 ++ .../help-command_bg.html | 5 + .../help-toolHome_bg.html | 3 + .../AbstractCommandInstaller/help_bg.html | 23 +++ .../tools/InstallSourceProperty/help_bg.html | 13 ++ .../help-subdir_bg.html | 4 + .../ZipExtractionInstaller/help-url_bg.html | 7 + .../tools/ZipExtractionInstaller/help_bg.html | 6 + .../help-ignorePostCommitHooks_bg.html | 13 ++ .../help-pollingThreadCount_bg.html | 10 ++ .../hudson/triggers/SCMTrigger/help_bg.html | 10 ++ .../triggers/TimerTrigger/help-spec_bg.html | 86 +++++++++ .../hudson/triggers/TimerTrigger/help_bg.html | 22 +++ .../jenkins/CLI/help-enabled_bg.html | 8 + .../model/BuildDiscarderProperty/help_bg.html | 53 ++++++ .../DownloadSettings/help-useBrowser_bg.html | 12 ++ .../help-quietPeriod_bg.html | 22 +++ .../Jenkins/help-markupFormatter_bg.html | 4 +- .../model/Jenkins/help-rawBuildsDir_bg.html | 4 +- .../Jenkins/help-rawWorkspaceDir_bg.html | 2 +- .../help-adminAddress_bg.html | 5 + .../help-url_bg.html | 10 ++ .../help-description_bg.html | 4 + .../help_bg.html | 4 + .../mvn/DefaultSettingsProvider/help_bg.html | 4 + .../config_bg.properties | 24 +++ .../help-path_bg.html | 4 + .../help_bg.html | 5 + .../config_bg.properties | 24 +++ .../help-path_bg.html | 4 + .../mvn/FilePathSettingsProvider/help_bg.html | 5 + .../ApiTokenProperty/help-apiToken_bg.html | 6 + .../help_bg.html | 15 ++ .../help-masterToSlaveAccessControl_bg.html | 4 + .../help-disabled_bg.html | 4 + .../help-failIfWorkDirIsMissing_bg.html | 4 + .../help-internalDir_bg.html | 4 + .../help-workDirPath_bg.html | 4 + .../triggers/ReverseBuildTrigger/help_bg.html | 12 ++ .../webapp/help/LogRecorder/logger_bg.html | 15 ++ .../main/webapp/help/LogRecorder/name_bg.html | 5 + .../help/parameter/boolean-default_bg.html | 3 + .../webapp/help/parameter/boolean_bg.html | 5 + .../help/parameter/choice-choices_bg.html | 4 + .../main/webapp/help/parameter/choice_bg.html | 5 + .../webapp/help/parameter/description_bg.html | 3 + .../webapp/help/parameter/file-name_bg.html | 4 + .../main/webapp/help/parameter/file_bg.html | 28 +++ .../main/webapp/help/parameter/name_bg.html | 6 + .../webapp/help/parameter/run-filter_bg.html | 9 + .../webapp/help/parameter/run-project_bg.html | 12 ++ .../main/webapp/help/parameter/run_bg.html | 7 + .../help/parameter/string-default_bg.html | 4 + .../main/webapp/help/parameter/string_bg.html | 5 + .../webapp/help/project-config/batch_bg.html | 13 ++ .../block-downstream-building_bg.html | 5 + .../block-upstream-building_bg.html | 4 + .../project-config/custom-workspace_bg.html | 26 +++ .../help/project-config/defaultView_bg.html | 6 + .../help/project-config/description_bg.html | 4 + .../help/project-config/disable_bg.html | 12 ++ .../help/project-config/downstream_bg.html | 23 +++ .../scmCheckoutRetryCount_bg.html | 20 +++ .../project-config/triggerRemotely_bg.html | 11 ++ .../help/run-config/description_bg.html | 4 + .../help/run-config/displayName_bg.html | 4 + .../webapp/help/scm-browsers/list_bg.html | 6 + .../defaultJobNamingStrategy_bg.html | 4 + .../globalEnvironmentVariables_bg.html | 5 + .../help/system-config/homeDirectory_bg.html | 32 ++++ .../master-slave/availability_bg.html | 54 ++++++ .../system-config/master-slave/clock_bg.html | 5 + .../master-slave/demand/idleDelay_bg.html | 3 + .../master-slave/demand/inDemandDelay_bg.html | 4 + .../demand/keepUpWhenActive_bg.html | 4 + .../master-slave/description_bg.html | 6 + .../master-slave/jnlp-tunnel_bg.html | 24 +++ .../master-slave/jnlpSecurity_bg.html | 54 ++++++ .../master-slave/numExecutors_bg.html | 16 ++ .../system-config/master-slave/usage_bg.html | 37 ++++ .../nodeEnvironmentVariables_bg.html | 29 +++ .../patternJobNamingStrategy_bg.html | 11 ++ .../help/system-config/quietPeriod_bg.html | 6 + .../help/system-config/systemMessage_bg.html | 7 + .../fingerprint/keepDependencies_bg.html | 18 ++ .../main/webapp/help/tools/help-label_bg.html | 6 + .../tools/tool-location-node-property_bg.html | 5 + .../main/webapp/help/user/description_bg.html | 5 + .../main/webapp/help/user/fullName_bg.html | 4 + .../help/view-config/description_bg.html | 7 + .../help/view-config/filter-executors_bg.html | 4 + .../help/view-config/filter-queue_bg.html | 4 + .../help/view-config/includeregex_bg.html | 8 + .../help/view-config/statusFilter_bg.html | 3 + .../config/freestyle-config-scrollspy_bg.html | 169 ++++++++++++++++++ .../config/freestyle-config-tabbed_bg.html | 163 +++++++++++++++++ 141 files changed, 1948 insertions(+), 22 deletions(-) create mode 100644 core/src/main/resources/hudson/ProxyConfiguration/help-name_bg.html create mode 100644 core/src/main/resources/hudson/ProxyConfiguration/help-noProxyHost_bg.html create mode 100644 core/src/main/resources/hudson/ProxyConfiguration/help-port_bg.html create mode 100644 core/src/main/resources/hudson/ProxyConfiguration/help-userName_bg.html create mode 100644 core/src/main/resources/hudson/model/Node/help-labelString_bg.html create mode 100644 core/src/main/resources/hudson/model/Node/help-name_bg.html create mode 100644 core/src/main/resources/hudson/model/Node/help-numExecutors_bg.html create mode 100644 core/src/main/resources/hudson/model/ParametersDefinitionProperty/help_bg.html create mode 100644 core/src/main/resources/hudson/model/Slave/help-remoteFS_bg.html create mode 100644 core/src/main/resources/hudson/model/UsageStatistics/help-usageStatisticsCollected_bg.html create mode 100644 core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_bg.html create mode 100644 core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help_bg.html create mode 100644 core/src/main/resources/hudson/node_monitors/ClockMonitor/help_bg.html create mode 100644 core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help_bg.html create mode 100644 core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help_bg.html create mode 100644 core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help_bg.html create mode 100644 core/src/main/resources/hudson/security/AuthorizationStrategy/Unsecured/help_bg.html create mode 100644 core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/help-allowAnonymousRead_bg.html create mode 100644 core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/help_bg.html create mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html create mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-disableRememberMe_bg.html create mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-slaveAgentPort_bg.html create mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-useSecurity_bg.html create mode 100644 core/src/main/resources/hudson/security/LegacyAuthorizationStrategy/help_bg.html create mode 100644 core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/help-excludeClientIPFromCrumb_bg.html create mode 100644 core/src/main/resources/hudson/security/csrf/GlobalCrumbIssuerConfiguration/help-csrf_bg.html create mode 100644 core/src/main/resources/hudson/slaves/AbstractCloudImpl/help-instanceCapStr_bg.html create mode 100644 core/src/main/resources/hudson/slaves/CommandLauncher/help-command_bg.html create mode 100644 core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_bg.html create mode 100644 core/src/main/resources/hudson/tasks/ArtifactArchiver/help-allowEmptyArchive_bg.html create mode 100644 core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_bg.html create mode 100644 core/src/main/resources/hudson/tasks/ArtifactArchiver/help-caseSensitive_bg.html create mode 100644 core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_bg.html create mode 100644 core/src/main/resources/hudson/tasks/ArtifactArchiver/help_bg.html create mode 100644 core/src/main/resources/hudson/tasks/BatchFile/help-unstableReturn_bg.html create mode 100644 core/src/main/resources/hudson/tasks/Fingerprinter/help-targets_bg.html create mode 100644 core/src/main/resources/hudson/tasks/Fingerprinter/help_bg.html create mode 100644 core/src/main/resources/hudson/tasks/Maven/help-injectBuildVariables_bg.html create mode 100644 core/src/main/resources/hudson/tasks/Maven/help-properties_bg.html create mode 100644 core/src/main/resources/hudson/tasks/Maven/help-settings_bg.html create mode 100644 core/src/main/resources/hudson/tasks/Shell/help-shell_bg.html create mode 100644 core/src/main/resources/hudson/tasks/Shell/help-unstableReturn_bg.html create mode 100644 core/src/main/resources/hudson/tasks/Shell/help_bg.html create mode 100644 core/src/main/resources/hudson/tools/AbstractCommandInstaller/help-command_bg.html create mode 100644 core/src/main/resources/hudson/tools/AbstractCommandInstaller/help-toolHome_bg.html create mode 100644 core/src/main/resources/hudson/tools/AbstractCommandInstaller/help_bg.html create mode 100644 core/src/main/resources/hudson/tools/InstallSourceProperty/help_bg.html create mode 100644 core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_bg.html create mode 100644 core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_bg.html create mode 100644 core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_bg.html create mode 100644 core/src/main/resources/hudson/triggers/SCMTrigger/help-ignorePostCommitHooks_bg.html create mode 100644 core/src/main/resources/hudson/triggers/SCMTrigger/help-pollingThreadCount_bg.html create mode 100644 core/src/main/resources/hudson/triggers/SCMTrigger/help_bg.html create mode 100644 core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_bg.html create mode 100644 core/src/main/resources/hudson/triggers/TimerTrigger/help_bg.html create mode 100644 core/src/main/resources/jenkins/CLI/help-enabled_bg.html create mode 100644 core/src/main/resources/jenkins/model/BuildDiscarderProperty/help_bg.html create mode 100644 core/src/main/resources/jenkins/model/DownloadSettings/help-useBrowser_bg.html create mode 100644 core/src/main/resources/jenkins/model/GlobalQuietPeriodConfiguration/help-quietPeriod_bg.html create mode 100644 core/src/main/resources/jenkins/model/JenkinsLocationConfiguration/help-adminAddress_bg.html create mode 100644 core/src/main/resources/jenkins/model/JenkinsLocationConfiguration/help-url_bg.html create mode 100644 core/src/main/resources/jenkins/model/ProjectNamingStrategy/PatternProjectNamingStrategy/help-description_bg.html create mode 100644 core/src/main/resources/jenkins/mvn/DefaultGlobalSettingsProvider/help_bg.html create mode 100644 core/src/main/resources/jenkins/mvn/DefaultSettingsProvider/help_bg.html create mode 100644 core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/config_bg.properties create mode 100644 core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/help-path_bg.html create mode 100644 core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/help_bg.html create mode 100644 core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/config_bg.properties create mode 100644 core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/help-path_bg.html create mode 100644 core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/help_bg.html create mode 100644 core/src/main/resources/jenkins/security/ApiTokenProperty/help-apiToken_bg.html create mode 100644 core/src/main/resources/jenkins/security/UpdateSiteWarningsConfiguration/help_bg.html create mode 100644 core/src/main/resources/jenkins/security/s2m/MasterKillSwitchConfiguration/help-masterToSlaveAccessControl_bg.html create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-disabled_bg.html create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-failIfWorkDirIsMissing_bg.html create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-internalDir_bg.html create mode 100644 core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-workDirPath_bg.html create mode 100644 core/src/main/resources/jenkins/triggers/ReverseBuildTrigger/help_bg.html create mode 100644 war/src/main/webapp/help/LogRecorder/logger_bg.html create mode 100644 war/src/main/webapp/help/LogRecorder/name_bg.html create mode 100644 war/src/main/webapp/help/parameter/boolean-default_bg.html create mode 100644 war/src/main/webapp/help/parameter/boolean_bg.html create mode 100644 war/src/main/webapp/help/parameter/choice-choices_bg.html create mode 100644 war/src/main/webapp/help/parameter/choice_bg.html create mode 100644 war/src/main/webapp/help/parameter/description_bg.html create mode 100644 war/src/main/webapp/help/parameter/file-name_bg.html create mode 100644 war/src/main/webapp/help/parameter/file_bg.html create mode 100644 war/src/main/webapp/help/parameter/name_bg.html create mode 100644 war/src/main/webapp/help/parameter/run-filter_bg.html create mode 100644 war/src/main/webapp/help/parameter/run-project_bg.html create mode 100644 war/src/main/webapp/help/parameter/run_bg.html create mode 100644 war/src/main/webapp/help/parameter/string-default_bg.html create mode 100644 war/src/main/webapp/help/parameter/string_bg.html create mode 100644 war/src/main/webapp/help/project-config/batch_bg.html create mode 100644 war/src/main/webapp/help/project-config/block-downstream-building_bg.html create mode 100644 war/src/main/webapp/help/project-config/block-upstream-building_bg.html create mode 100644 war/src/main/webapp/help/project-config/custom-workspace_bg.html create mode 100644 war/src/main/webapp/help/project-config/defaultView_bg.html create mode 100644 war/src/main/webapp/help/project-config/description_bg.html create mode 100644 war/src/main/webapp/help/project-config/disable_bg.html create mode 100644 war/src/main/webapp/help/project-config/downstream_bg.html create mode 100644 war/src/main/webapp/help/project-config/scmCheckoutRetryCount_bg.html create mode 100644 war/src/main/webapp/help/project-config/triggerRemotely_bg.html create mode 100644 war/src/main/webapp/help/run-config/description_bg.html create mode 100644 war/src/main/webapp/help/run-config/displayName_bg.html create mode 100644 war/src/main/webapp/help/scm-browsers/list_bg.html create mode 100644 war/src/main/webapp/help/system-config/defaultJobNamingStrategy_bg.html create mode 100644 war/src/main/webapp/help/system-config/globalEnvironmentVariables_bg.html create mode 100644 war/src/main/webapp/help/system-config/homeDirectory_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/availability_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/clock_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/demand/idleDelay_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/demand/inDemandDelay_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/demand/keepUpWhenActive_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/description_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/jnlp-tunnel_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/jnlpSecurity_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/numExecutors_bg.html create mode 100644 war/src/main/webapp/help/system-config/master-slave/usage_bg.html create mode 100644 war/src/main/webapp/help/system-config/nodeEnvironmentVariables_bg.html create mode 100644 war/src/main/webapp/help/system-config/patternJobNamingStrategy_bg.html create mode 100644 war/src/main/webapp/help/system-config/quietPeriod_bg.html create mode 100644 war/src/main/webapp/help/system-config/systemMessage_bg.html create mode 100644 war/src/main/webapp/help/tasks/fingerprint/keepDependencies_bg.html create mode 100644 war/src/main/webapp/help/tools/help-label_bg.html create mode 100644 war/src/main/webapp/help/tools/tool-location-node-property_bg.html create mode 100644 war/src/main/webapp/help/user/description_bg.html create mode 100644 war/src/main/webapp/help/user/fullName_bg.html create mode 100644 war/src/main/webapp/help/view-config/description_bg.html create mode 100644 war/src/main/webapp/help/view-config/filter-executors_bg.html create mode 100644 war/src/main/webapp/help/view-config/filter-queue_bg.html create mode 100644 war/src/main/webapp/help/view-config/includeregex_bg.html create mode 100644 war/src/main/webapp/help/view-config/statusFilter_bg.html create mode 100644 war/src/test/js/widgets/config/freestyle-config-scrollspy_bg.html create mode 100644 war/src/test/js/widgets/config/freestyle-config-tabbed_bg.html diff --git a/core/src/main/resources/hudson/ProxyConfiguration/help-name_bg.html b/core/src/main/resources/hudson/ProxyConfiguration/help-name_bg.html new file mode 100644 index 0000000000..8cc660d9cb --- /dev/null +++ b/core/src/main/resources/hudson/ProxyConfiguration/help-name_bg.html @@ -0,0 +1,13 @@ +
      + Ðко вашиÑÑ‚ Jenkins е зад защитна Ñтена и нÑма прÑка връзка към Интернет, а JVM на Ñървъра не е + наÑтроена правилно, за да Ñе позволи връзка Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚, може да укажете име на Ñървър-поÑредник + за HTTP, за да позволите на Jenkins ÑамоÑтоÑтелно да инÑталира приÑтавки. (за повече детайли: + Networking Properties) + Jenkins използва HTTPS, за да Ñе Ñвърже ÑÑŠÑ Ñървъра за обновÑване и изтегли приÑтавките. + +

      + Ðко полето е празно, Jenkins ще Ñе Ñвързва директно Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚. + +

      + Ðко не Ñте Ñигурни, вижте какви Ñа наÑтройките на браузъра ви. +

      diff --git a/core/src/main/resources/hudson/ProxyConfiguration/help-noProxyHost_bg.html b/core/src/main/resources/hudson/ProxyConfiguration/help-noProxyHost_bg.html new file mode 100644 index 0000000000..03eeaa12cb --- /dev/null +++ b/core/src/main/resources/hudson/ProxyConfiguration/help-noProxyHost_bg.html @@ -0,0 +1,4 @@ +
      + Шаблони за имената на Ñървърите, към които да Ñе Ñвързва директно, а не през Ñървъра-поÑредник. + По един шаблон на ред. „*“ напаÑва вÑички имена (напр. „*.cloudbees.com“ или „w*.jenkins.io“) +
      diff --git a/core/src/main/resources/hudson/ProxyConfiguration/help-port_bg.html b/core/src/main/resources/hudson/ProxyConfiguration/help-port_bg.html new file mode 100644 index 0000000000..d24f470bda --- /dev/null +++ b/core/src/main/resources/hudson/ProxyConfiguration/help-port_bg.html @@ -0,0 +1,3 @@ +
      + Това поле Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð¿Ð¾Ñ€Ñ‚Ð° за Ñървъра-поÑредник по HTTP. +
      diff --git a/core/src/main/resources/hudson/ProxyConfiguration/help-userName_bg.html b/core/src/main/resources/hudson/ProxyConfiguration/help-userName_bg.html new file mode 100644 index 0000000000..d253066618 --- /dev/null +++ b/core/src/main/resources/hudson/ProxyConfiguration/help-userName_bg.html @@ -0,0 +1,9 @@ +
      + Това поле Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð¸Ð¼ÐµÑ‚Ð¾ за Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€ÐµÐ´ Ñървъра-поÑредник . + +

      + Ðко този Ñървър-поÑредник ползва Ñхемата да Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð½Ð° + Microsoft: NTLM, + то името за домейна Ñе Ð´Ð¾Ð±Ð°Ð²Ñ Ð¿Ñ€ÐµÐ´ потребителÑкото име Ñ + разделител „\“. Ðапример: „ACME\John Doo“". +

      diff --git a/core/src/main/resources/hudson/model/AbstractItem/help-slaveAffinity_bg.html b/core/src/main/resources/hudson/model/AbstractItem/help-slaveAffinity_bg.html index 277eda8099..1faffbac16 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/help-slaveAffinity_bg.html +++ b/core/src/main/resources/hudson/model/AbstractItem/help-slaveAffinity_bg.html @@ -7,7 +7,7 @@

      Ðапример, ако проектът Ñ‚Ñ€Ñбва да Ñе изгражда Ñамо на определени операционни ÑиÑтеми или на компютри, на които Ñа инÑталирани Ñпецифични - интÑтрументи, можете да укажете на проекта да Ñе изгражда Ñамо на машини, + инÑтрументи, можете да укажете на проекта да Ñе изгражда Ñамо на машини, коитоy отговарÑÑ‚ на интереÑуващите ви критерии.

      ПомощниÑÑ‚ текÑÑ‚ за полето Израз Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚Ð¸, което Ñе показва, когато diff --git a/core/src/main/resources/hudson/model/AbstractProject/help-concurrentBuild_bg.html b/core/src/main/resources/hudson/model/AbstractProject/help-concurrentBuild_bg.html index 1960aa25cb..e524cb4550 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/help-concurrentBuild_bg.html +++ b/core/src/main/resources/hudson/model/AbstractProject/help-concurrentBuild_bg.html @@ -16,7 +16,7 @@ определен момент нÑма доÑтатъчно Ñвободни машини, то заÑвките за изграждане ще изчакват в опашка както обикновено.

      - Включването на паралелните изграждание е полезно при проекти Ñ Ð´ÑŠÐ»Ð³Ð¸ теÑтове, + Включването на паралелните изграждане е полезно при проекти Ñ Ð´ÑŠÐ»Ð³Ð¸ теÑтове, защото това позволÑва отделното изграждане да Ñъдържа Ñравнително малък на брой промени, без това да увеличава прекомерно много времето за работа, защото вÑÑко ново изграждане нÑма нужда да изчаква завършването на вÑички предишни @@ -25,18 +25,19 @@ може да Ñа напълно незавиÑими едно от друго — при определени ÑтойноÑти на параметрите.

      - Ð’ÑÑко Each concurrently executed build occurs in its own build workspace, isolated - from any other builds. By default, Jenkins appends "@<num>" to - the workspace directory name, e.g. "@2".
      - The separator "@" can be changed by setting the - hudson.slaves.WorkspaceList Java system property when starting - Jenkins. For example, "hudson.slaves.WorkspaceList=-" would change - the separator to a hyphen.
      - For more information on setting system properties, see the @<номер>“ към името на + работната директориÑ, например „@2“.
      + РазделителÑÑ‚ „@“ може да Ñе Ñмени Ñ Ð¿Ñ€Ð¾Ð¼Ñната на ÑиÑтемното ÑвойÑтво + на Java — „hudson.slaves.WorkspaceList“ при Ñтартирането на Jenkins. + Ðапример чрез „hudson.slaves.WorkspaceList=-“ ще Ñмените Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ñ + Ñ Ñ‚Ð¸Ñ€ÐµÑ‚Ð¾ от ASCII.
      + За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð³Ð»ÐµÐ´Ð½ÐµÑ‚Ðµ
      wiki page. + target="_blank">документациÑта в уикито.

      - However, if you enable the Use custom workspace option, all builds will - be executed in the same workspace. Therefore caution is required, as multiple - builds may end up altering the same directory at the same time. + Ðко наÑтройката Специално работно проÑтранÑтво е включена, вÑички + Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð½Ð° проекта ще Ñе правÑÑ‚ в едно и Ñъщо работно проÑтранÑтво, + поради което Ñ‚Ñ€Ñбва да внимавате, защото множеÑтво Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ðµ едновременно + да променÑÑ‚ работната директориÑ. diff --git a/core/src/main/resources/hudson/model/AbstractProject/help-label_bg.html b/core/src/main/resources/hudson/model/AbstractProject/help-label_bg.html index a47aa93409..194bd86cb9 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/help-label_bg.html +++ b/core/src/main/resources/hudson/model/AbstractProject/help-label_bg.html @@ -2,7 +2,7 @@ ЛогичеÑки израз, който Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ ÐºÐ¾Ð¸ агенти могат да изграждат този проект. Изразът ще Ñе изчиÑли Ñ Ð²Ñеки етикет и име на вÑеки наличен агент и резултатът ще е или иÑтина, или лъжа. Само когато изразът Ñе изчиÑли като - иÑтина, агенът ще може да изгражда този проект. + иÑтина, агентът ще може да изгражда този проект.

      Ðко проектът Ñ‚Ñ€Ñбва задължително да Ñе изгражда на определен подчинен компютър или на оÑновниÑ, въведете Ñъответно името на компютъра или @@ -86,7 +86,7 @@ изразите.

    • - ÐапаÑване на етикетите или имената на компютрите Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ или регуларни + ÐапаÑване на етикетите или имената на компютрите Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ или регулÑрни изрази не Ñе поддържа.
    • @@ -118,7 +118,7 @@
      postgres && !vm && (linux || freebsd)
      ИзгражданиÑта на този проект може да Ñа на вÑеки агент под Linux или - FreeBSD, Ñтига да не Ñа във във виртуала машина, и да е инÑталирана + FreeBSD, Ñтига да не Ñа във виртуална машина, и да е инÑталирана базата PostgreSQL (като приемаме, че на вÑÑка машина Ñа поÑтавени Ñъответните етикети, напр. вÑÑка виртуална машина е Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚ vm, иначе примерът нÑма да Ñработи). diff --git a/core/src/main/resources/hudson/model/Node/help-labelString_bg.html b/core/src/main/resources/hudson/model/Node/help-labelString_bg.html new file mode 100644 index 0000000000..92be73dc9f --- /dev/null +++ b/core/src/main/resources/hudson/model/Node/help-labelString_bg.html @@ -0,0 +1,22 @@ +
      + Етикетите Ñе използват за групирането на множеÑтво машини в една логичеÑка + група. +

      + Ðапример, ако имате множеÑтво компютри Ñ Windows и задача за изграждане, коÑто + може да Ñе изпълни Ñамо под Windows, можете да маркирате машините Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚ + windows и да обвържете задачата Ñ Ñ‚Ð¾Ð·Ð¸ етикет. +
      + Така конкретното изграждане ще Ñе изпълни Ñамо на машина Ñ Ñ‚Ð°ÐºÑŠÐ² етикет. +

      + Ðе е задължително етикетите да отговарÑÑ‚ на операционната ÑиÑтема. Те могат + да ÑъответÑтват на произволен атрибут като архитектурата на процеÑора, + наличието на определена програма на машината и др. +

      + МножеÑтво етикети Ñе въвеждат разделени Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð²Ð°Ð». Ðапример: + windows docker означава, че машината има два етикета — windows + и docker. +

      + Етикетите могат да Ñъдържат произволни знаци, но Ñ‚Ñ€Ñбва да избÑгвате Ñпециални + знаци като: !&|<>(), защото Jenkins позволÑва дефинирането на + изрази Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚Ð¸, в които тези знаци може да Ñе използват. +

      diff --git a/core/src/main/resources/hudson/model/Node/help-name_bg.html b/core/src/main/resources/hudson/model/Node/help-name_bg.html new file mode 100644 index 0000000000..edf4a8f841 --- /dev/null +++ b/core/src/main/resources/hudson/model/Node/help-name_bg.html @@ -0,0 +1,10 @@ +
      + Името Ñ‚Ñ€Ñбва да е уникално в рамките на тази инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° Jenkins. +

      + ÐÑма нужда да е Ñъщото като името на хоÑта, но чеÑто е удобно да Ñа + еднакви. +

      + Името не Ñ‚Ñ€Ñбва да Ñъдържа никой от Ñледните знаци: + ?*/\%!@#$^&|<>[]:; + +

      diff --git a/core/src/main/resources/hudson/model/Node/help-numExecutors_bg.html b/core/src/main/resources/hudson/model/Node/help-numExecutors_bg.html new file mode 100644 index 0000000000..072890e7e7 --- /dev/null +++ b/core/src/main/resources/hudson/model/Node/help-numExecutors_bg.html @@ -0,0 +1,18 @@ +
      + МакÑималниÑÑ‚ брой едновременни задачи, които Jenkins може да изгражда на + тази машина. +

      + Добра първоначална ÑтойноÑÑ‚ е броÑÑ‚ процеÑори на вÑÑка машина. Задаването + на по-виÑока ÑтойноÑÑ‚ ще забави вÑÑко от изгражданиÑта, но може да увеличи + Ð¾Ð±Ñ‰Ð¸Ñ Ð±Ñ€Ð¾Ð¹ изгражданиÑ. Във вÑеки отделен момент е възможно едно изграждане + да Ñе нуждае от процеÑорно време, докато друго може да изчаква за + входно/изходни операции. Така двете Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ðµ да Ñе изпълнÑват + едновременно. +

      + Ðгентите Ñ‚Ñ€Ñбва да могат да изпълнÑват минимум едно изграждане. Ðко иÑкате + временно да Ñпрете вÑички Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð½Ð° машината, използвайте бутона + Временно извън Ð»Ð¸Ð½Ð¸Ñ Ð¾Ñ‚ Ñтраницата на агента. +

      + Това не Ñе отнаÑÑ Ð´Ð¾ управлÑÐ²Ð°Ñ‰Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€ на Jenkins. Ðко зададете Ð±Ñ€Ð¾Ñ + Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð´Ð° е 0, на него нÑма да Ñе изграждат никакви заданиÑ. +

      diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/help_bg.html b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/help_bg.html new file mode 100644 index 0000000000..1d8d29194d --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/help_bg.html @@ -0,0 +1,36 @@ +
      + Параметрите позволÑват на потребителите да въведат данни, които да Ñе + използват по време на изграждането. Ðапример, проект за теÑтове за + производителноÑÑ‚ при заÑвка, който позволÑва на потребителите да + качват изпълними файлове, които да Ñе теÑтват. Това може да Ñе Ñлучи + Ñ Ð´Ð¾Ð±Ð°Ð²Ñнето на Параметър: файл. +
      + Друга възможноÑÑ‚ е проект, който Ð¸Ð·Ð³Ð¾Ñ‚Ð²Ñ ÐºÑ€Ð°Ð¹Ð½Ð¸Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚ на програма + и иÑкате да позволите на потребителите до прикачат към Ð½ÐµÑ Ð±ÐµÐ»ÐµÐ¶ÐºÐ¸ по + верÑиÑта. Може да поÑтигнете това като добавите Параметър: многоредов + низ. +

      + Ð’Ñеки параметър има име и ÑтойноÑÑ‚, коÑто завиÑи от вида на + параметъра. Тези двойки име-ÑтойноÑÑ‚ Ñе изнаÑÑÑ‚ като променливи на Ñредата + при Ñтартиране на изграждането, което позволÑва на поÑледващите Ñтъпки от + него да доÑтъпват ÑтойноÑтите чрез ÑинтакÑиÑа ${ИМЕ_ÐÐ_ПÐРÐМЕТЪР} + (под Windows e %ИМЕ_ÐÐ_ПÐРÐМЕТЪР%). +
      + Това е и причината името на вÑеки параметър да е уникално. +

      + При параметризирането на проект, Ñтандартната връзка Изграждане + Ñе замеÑтва Ñ Ð²Ñ€ÑŠÐ·ÐºÐ° Изграждане Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸. Чрез Ð½ÐµÑ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ð¸Ñ‚Ðµ + могат да указват ÑтойноÑти за вÑеки от дефинираните параметри. Ðко не въведат + нищо, Ñе използва отделна Ñтандартна ÑтойноÑÑ‚ за вÑеки от параметрите. +

      + Ðко изграждането е Ñтартирано автоматично, например от промÑна в ÑиÑтемата за + контрол на верÑиите, за вÑеки от параметрите ще Ñе ползва Ñтандартната му + ÑтойноÑÑ‚. +

      + Когато има поне едно параметризирано изграждане в опашката, опит за Ñтартирането + на друго ще е уÑпешно, ако поне един от параметрите е различен, оÑвен ако не е + зададена опциÑта Едновременно изграждане при необходимоÑÑ‚. +

      + За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ Ñтраницата за параметризираните Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð² уикито. +

      diff --git a/core/src/main/resources/hudson/model/Slave/help-remoteFS_bg.html b/core/src/main/resources/hudson/model/Slave/help-remoteFS_bg.html new file mode 100644 index 0000000000..e5cf4dfb31 --- /dev/null +++ b/core/src/main/resources/hudson/model/Slave/help-remoteFS_bg.html @@ -0,0 +1,34 @@ +
      +

      + Компютърът за Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ñ‚Ñ€Ñбва да има директориÑ, коÑто да Ñе ползва + Ñамо от Jenkins. Укажете Ð¿ÑŠÑ‚Ñ Ð´Ð¾ директориÑта. Ðай-добре ползвайте + абÑолютен път като /var/jenkins или c:\jenkins. + Това е локален път — както Ñе вижда на машината за изгражданиÑ. ÐÑма + нужда пътÑÑ‚ да Ñе вижда от командната машина. +

      + Изграждащите машини не Ñъдържат важни данни — вÑички наÑтройки по задачите, + журналите от изгражданиÑта както и артефактите Ñе държат на ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€, + затова е напълно допуÑтимо да Ñе ползва временна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ÐºÐ°Ñ‚Ð¾ оÑновна на + подчинените машини. +
      + Има полза директориÑта да не е временна, защото Ñлед реÑтартиране на машината + Ñ‚Ñ Ð¾Ñтава и може да държи кеширани инÑталациите на инÑтрументи, или меÑтата + за изгражданиÑ. Това минимизира повтарÑщите Ñе изтеглÑÐ½Ð¸Ñ Ð½Ð° инÑтрументи + или реÑурÑи от ÑиÑтемите за контрол на верÑии при Ñтартирането на ново + изграждане Ñлед реÑтартиране. +

      + Ðко използвате отноÑителен път като ./jenkins-agent, пътÑÑ‚ Ñе Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ + ÑпрÑмо работната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð° в Ðачина за Ñтартиране. +

        +
      • При ÑтартираниÑта, при които Jenkins управлÑва пуÑкането на агента, + като например SSH, текущата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð°Ð¹-чеÑто е една и Ñъща, примерно + домашната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° потребителÑ.
      • +
      • При ÑтартираниÑта, при които Jenkins не ги управлÑва, като JNLP през + ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´ или връзка за уеб браузъра, текущата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¼Ð¾Ð¶Ðµ да Ñе + Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð¿Ñ€Ð¸ вÑÑко Ñтартиране. Ð’ този Ñлучай ползването на отноÑителен път + може да доведе до проблеми. +
        + Ðай-чеÑто това Ñа оÑтарели работни меÑта, инÑталации на инÑтрументи, което + води до Ñвършване на Ñвободното диÑково проÑтранÑтво.
      • +
      +
      diff --git a/core/src/main/resources/hudson/model/UsageStatistics/help-usageStatisticsCollected_bg.html b/core/src/main/resources/hudson/model/UsageStatistics/help-usageStatisticsCollected_bg.html new file mode 100644 index 0000000000..20aacefce3 --- /dev/null +++ b/core/src/main/resources/hudson/model/UsageStatistics/help-usageStatisticsCollected_bg.html @@ -0,0 +1,22 @@ +
      + От голÑма помощ е да знаем как Jenkins Ñе ползва. Това може да определи + поÑоката на разработка, което иначе е трудно, защото нÑма как да Ñе проÑледÑват + потребителите на проект Ñ Ð¾Ñ‚Ð²Ð¾Ñ€ÐµÐ½ код. Като изберете тази Ð¾Ð¿Ñ†Ð¸Ñ Jenkins + периодично ще изпраща анонимни данни за използването. + +

      + Това е пълното опиÑание на включената информациÑ: + +

        +
      • верÑиÑта на jenkins; +
      • операционната ÑиÑтема и Ð±Ñ€Ð¾Ñ Ð¸Ð·Ð¿ÑŠÐ»Ð½Ñвани Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‚ оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ð¸ подчинените компютри; +
      • ÑпиÑък Ñ Ð¸Ð½Ñталираните приÑтавки и верÑиите им; +
      • броÑÑ‚ задачи за вÑеки вид задача в инÑталациÑта на Jenkins +
      + +

      + ИнформациÑта не Ñъдържа нищо, които да ви идентифицира или да позволÑва да Ñе Ñвържем + Ñ Ð²Ð°Ñ (Ñ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ на информациÑта указана поради еÑтеÑтвото на HTTP, като IP адреÑи). + Тези данни ще бъдат Ñподелени Ñ Ð¾Ð±Ñ‰Ð½Ð¾Ñтта в табличен вид. + +

      diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_bg.html b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_bg.html new file mode 100644 index 0000000000..990f142db1 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_bg.html @@ -0,0 +1,7 @@ +
      + Тази Ð¾Ð¿Ñ†Ð¸Ñ ÑƒÐºÐ°Ð·Ð²Ð° минималното необходимо Ñвободно проÑтранÑтво на диÑка, за + да Ñе оÑигури правилна работа на Jenkins на машината. Примерни ÑтойноÑти Ñа: + „1.5GB“, „100KB“ и Ñ‚.н. + Ðко Ñвободното мÑÑто на машината падне под тази ÑтойноÑÑ‚, Ñ‚Ñ Ñ‰Ðµ бъде + маркирана извън линиÑ. +
      diff --git a/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help_bg.html b/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help_bg.html new file mode 100644 index 0000000000..a48bff0cc4 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help_bg.html @@ -0,0 +1,4 @@ +
      + Този датчик проÑто извежда архитектурата на агента. Той никога не указва + агентът да е извън линиÑ. +
      \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/ClockMonitor/help_bg.html b/core/src/main/resources/hudson/node_monitors/ClockMonitor/help_bg.html new file mode 100644 index 0000000000..8e9f95e880 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ClockMonitor/help_bg.html @@ -0,0 +1,9 @@ +
      + Този датчик указва разликата в чаÑовниците между водача и Ñледващите машини. + Въпреки че Jenkins не е чувÑтвителен към разликите в чаÑовниците, ÑиÑтемите + за контрол на верÑиите, както и отдалечените файлови ÑиÑтеми (като NFS и + ÑподелÑнето на файлове в Windows) чеÑто имат проблеми в такива Ñитуации. + +

      + За да Ñинхронизирате чаÑовниците, ползвайте примерно NTP. +

      diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help_bg.html b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help_bg.html new file mode 100644 index 0000000000..77788a4b36 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help_bg.html @@ -0,0 +1,9 @@ +
      + Този датчик указва Ñвободното диÑково проÑтранÑтво на файловата ÑиÑтема, в + коÑто е разположена директориÑта $JENKINS_HOME. Ðко то падне под + определена ÑтойноÑÑ‚, машината ще бъде указана като извън линиÑ. + +

      + Ð’ тази Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ñе извършват вÑички изгражданиÑ. Когато Ñе напълни, + изгражданиÑта Ñа неуÑпешни. +

      diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help_bg.html b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help_bg.html new file mode 100644 index 0000000000..7d4deeb108 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help_bg.html @@ -0,0 +1,10 @@ +
      + Този датчик наблюдава времето за отговор на заÑвка по мрежата от + водещата машина към Ñледваща. Ðко мине определен праг, агентът Ñе извежда + като извън линиÑ. + +

      + Това е полезно, за да Ñе откриват агенти, които не отговарÑÑ‚ на заÑвки или + мрежови проблеми, като задръÑтване на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð». Лидерът праща + празна заÑвка към машините и замерва времето за отговор. +

      \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help_bg.html b/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help_bg.html new file mode 100644 index 0000000000..861a5d3e98 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help_bg.html @@ -0,0 +1,16 @@ +
      + Този датчик указва Ñвободното диÑково проÑтранÑтво в директориÑта за + временни файлове. Когато то падне под определен праг, машината Ñе указва + като извън линиÑ. + +

      + ИнÑтрументите на Java както и теÑтовете и изгражданиÑта чеÑто Ñъздават + временни файлове в Ð½ÐµÑ Ð¸ може да не работÑÑ‚ правилно, когато нÑма Ñвободно + проÑтранÑтво. + +

      + По-Ñпециално, проверката Ñе извършва на файловата ÑиÑтема, коÑто Ñъдържа + директориÑта указвана от ÑиÑтемното ÑвойÑтво „java.io.tmpdir“. + За да проверите къде Ñ‚Ñ Ñе намира на определена машина, прегледайте файла + „${rootURL}/computer/SLAVENAME/systemInfo“. +

      diff --git a/core/src/main/resources/hudson/security/AuthorizationStrategy/Unsecured/help_bg.html b/core/src/main/resources/hudson/security/AuthorizationStrategy/Unsecured/help_bg.html new file mode 100644 index 0000000000..6c99ea3e59 --- /dev/null +++ b/core/src/main/resources/hudson/security/AuthorizationStrategy/Unsecured/help_bg.html @@ -0,0 +1,9 @@ +
      + Ð’Ñички придобиват пълни права надJenkins, включително анонимните потребители. + +

      + Този режим е удобен в доверени Ñреди, напр. интранета на компаниÑ, и Ñе + нуждаете от Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñамо за перÑонализирането на Jenkins. Ð’ такъв + Ñлучай, ако нÑкой Ñ‚Ñ€Ñбва да направи нÑкаква промÑна, нÑма да има нужда да Ñе + идентифицира и влезе в Jenkins. +

      \ No newline at end of file diff --git a/core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/help-allowAnonymousRead_bg.html b/core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/help-allowAnonymousRead_bg.html new file mode 100644 index 0000000000..28672f3fd6 --- /dev/null +++ b/core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/help-allowAnonymousRead_bg.html @@ -0,0 +1,4 @@ +
      + Когато това е избрано, потребителите, които не Ñе идентифицирали, ще могат да + доÑтъпват Jenkins в режим Ñамо за четене. +
      diff --git a/core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/help_bg.html b/core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/help_bg.html new file mode 100644 index 0000000000..b077010e86 --- /dev/null +++ b/core/src/main/resources/hudson/security/FullControlOnceLoggedInAuthorizationStrategy/help_bg.html @@ -0,0 +1,11 @@ +
      + Ð’ този режим вÑеки потребител на Jenkins получава пълен контрол Ñлед влизане в + ÑиÑтемата. Ðнонимните потребители имат доÑтъп Ñамо за четене и не могат да + управлÑват Jenkins. + +

      + Този режим кара потребителите да влÑзат в ÑиÑтемата, преди да могат да + извършат промÑна. Така може да Ñе Ñледи кой какви промени прави. Режимът е + удобен и при публично доÑтъпни инÑталации на Jenkins, при които Ñамо на + определени потребители може да Ñе има доверие и да имат региÑтрации. +

      diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html new file mode 100644 index 0000000000..d4b9034831 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html @@ -0,0 +1,4 @@ +
      + Jenkins използва порт па TCP, за да комуникира Ñ Ð¿Ð¾Ð´Ñ‡Ð¸Ð½ÐµÐ½Ð¸Ñ‚Ðµ компютри. + Тази Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð°Ð´Ð°Ð²Ð° кои протоколи за връзка Ñа включени. +
      diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-disableRememberMe_bg.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-disableRememberMe_bg.html new file mode 100644 index 0000000000..6e25c42168 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-disableRememberMe_bg.html @@ -0,0 +1,4 @@ +
      + Изберете тази опциÑ, за да премахнете полето „ЗапомнÑне на този компютър“ от + екрана за вход. +
      \ No newline at end of file diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-slaveAgentPort_bg.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-slaveAgentPort_bg.html new file mode 100644 index 0000000000..82a37de400 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-slaveAgentPort_bg.html @@ -0,0 +1,8 @@ +
      + Jenkins използва порт на TCP, за да Ñе Ñвърже Ñ Ð°Ð³ÐµÐ½Ñ‚Ð¸, които Ñа Ñтартирани + през JNLP. Обикновено този порт е Ñлучаен, за да Ñе избÑгва припокриване Ñ + други ÑиÑтеми, но това прави поддържането на ÑигурноÑтта по-трудна. Ðко не + ползвате агенти Ñ JNLP, по-добре е да изключите този порт на TCP. ДругиÑÑ‚ + вариант и да въведете поÑтоÑнен порт, което улеÑнÑва наÑтройването на + защитната Ñтена. +
      \ No newline at end of file diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-useSecurity_bg.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-useSecurity_bg.html new file mode 100644 index 0000000000..c65978000f --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-useSecurity_bg.html @@ -0,0 +1,14 @@ +
      +

      + Включването на ÑигурноÑтта оÑигурÑва идентификациÑта (кои Ñа) и упълномощаването (какви права имат) на потребителите. +

      + +

      + Има доÑта вградени варианти. Даването на прекомерни права на анонимни потребители или даването на прекомерни права + на вÑеки, който може да влезе, при уÑловие, че може Ñвободно да Ñе региÑтрира, не е начин да Ñе увеличи ÑигурноÑтта. +

      + +

      + За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° ÑигурноÑтта и Jenkins вижте + документациÑта в уикито. +

      diff --git a/core/src/main/resources/hudson/security/LegacyAuthorizationStrategy/help_bg.html b/core/src/main/resources/hudson/security/LegacyAuthorizationStrategy/help_bg.html new file mode 100644 index 0000000000..7da733ecae --- /dev/null +++ b/core/src/main/resources/hudson/security/LegacyAuthorizationStrategy/help_bg.html @@ -0,0 +1,5 @@ +
      + Поведение като верÑиите на Jenkins преди 1.164. Ðко притежавате ролÑта + „admin“ ще имате пълен контрол върху ÑиÑтемата, в противен Ñлучай, + включително, ако не Ñте влезли, имате права Ñамо за четене. +
      diff --git a/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/help-excludeClientIPFromCrumb_bg.html b/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/help-excludeClientIPFromCrumb_bg.html new file mode 100644 index 0000000000..e43be4d96f --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/help-excludeClientIPFromCrumb_bg.html @@ -0,0 +1,7 @@ +
      + ÐÑкои Ñървъри-поÑредници за HTTP филтрират информациÑта, коÑто Ñтандартно Ñе + използва за изчиÑлÑване на еднократно използваните ÑтойноÑти. Ðко между + браузъра и Jenkins Ñтои Ñървър-поÑредник и получавате код за грешка 403, + когато подавате формулÑÑ€, пробвайте да зададете тази наÑтройка. ÐедоÑтатъкът + е, че така еднократните ÑтойноÑти Ñе фалшифицират по-леÑно. +
      diff --git a/core/src/main/resources/hudson/security/csrf/GlobalCrumbIssuerConfiguration/help-csrf_bg.html b/core/src/main/resources/hudson/security/csrf/GlobalCrumbIssuerConfiguration/help-csrf_bg.html new file mode 100644 index 0000000000..98f0e00ec5 --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/GlobalCrumbIssuerConfiguration/help-csrf_bg.html @@ -0,0 +1,24 @@ +
      + ЗаÑвките Ñ Ñ„Ð°Ð»ÑˆÐ¸Ð² произход (CSRF/XSRF) Ñа начин, който позволÑва на трета + Ñтрана да извършва дейÑÑ‚Ð²Ð¸Ñ Ð½Ð° Ñайта от ваше име, без да има право на това. Ð’ + ÑÐ»ÑƒÑ‡Ð°Ñ Ð½Ð° Jenkins това би позволило на неупълномощени лица да изтриват заданиÑ, + Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ да променÑÑ‚ наÑтройките на Jenkins. +

      + Когато това е включено, Jenkins ще проверÑва за Ñпециална еднократна ÑтойноÑÑ‚ + при вÑÑка заÑвка, коÑто Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð½ÐµÑ‰Ð¾ на Ñървъра. Това включва подаването на + вÑеки формулÑÑ€ и заÑвките към отдалеченото API. +

      + Включването на тази Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶Ðµ да доведе и до нÑкои проблеми, например: +

        +
      • нÑкои възможноÑти на Jenkins, като отдалеченото API Ñтават по-трудни за + употреба
      • +
      • нÑкои възможноÑти в приÑтавките, оÑобено тези, които не Ñа теÑтвани + доÑтатъчно, може ÑъвÑем да не работÑÑ‚;
      • +
      • ако доÑтъпвате Jenkins през наÑрещен Ñървър-поÑредник, той може да + филтрира заглавните чаÑти на HTTP за CSRF, което ще направи нÑкои + защитени дейÑÑ‚Ð²Ð¸Ñ Ð½ÐµÐ²ÑŠÐ·Ð¼Ð¾Ð¶Ð½Ð¸.
      • +
      +

      + Повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° заÑвките Ñ Ñ„Ð°Ð»ÑˆÐ¸Ð² произход (CSRF) има + тук. +

      diff --git a/core/src/main/resources/hudson/slaves/AbstractCloudImpl/help-instanceCapStr_bg.html b/core/src/main/resources/hudson/slaves/AbstractCloudImpl/help-instanceCapStr_bg.html new file mode 100644 index 0000000000..990f02b4d2 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/AbstractCloudImpl/help-instanceCapStr_bg.html @@ -0,0 +1,13 @@ +
      + Може да зададете макÑималниÑÑ‚ брой агенти, които Jenkins може да Ñтартира в + облака. Така ще избегнете неприÑтни изненади, когато приÑтигне Ñметката + за ползваните реÑурÑи. + +

      + Ðко въведете 3, Jenkins ще Ñтартира нови агенти Ñамо докато общиÑÑ‚ им брой не + надхвърли това чиÑло. Дори и в най-Ð»Ð¾ÑˆÐ¸Ñ Ñлучай да забравите да ги Ñпрете, + има граница, коÑто нÑма де Ñе надхвърли. + +

      + Ðко полето е празно, нÑма никакви Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð·Ð° използваните реÑурÑи в този облак. +

      diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/help-command_bg.html b/core/src/main/resources/hudson/slaves/CommandLauncher/help-command_bg.html new file mode 100644 index 0000000000..262d5a6dee --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/help-command_bg.html @@ -0,0 +1,36 @@ +
      + Команда за Ñтартирането на агента, който управлÑва компютъра и комуникира + Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÑÐ²Ð°Ñ‰Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€. Jenkins приема, че изпълнената програма ще + Ñтартира slave.jar на правилната машина. + +

      + Може да изтеглите slave.jar + оттук. + +

      + Ð’ най-проÑÑ‚Ð¸Ñ Ñлучай, това може да е команда като тази: + „ssh hostname java -jar ~/bin/slave.jar“. + + ЧеÑто е по-добре да напишете малък Ñкрипт подобен на този отдолу, за да може да + наÑтройвате меÑтоположението на Java и/или slave.jar, както и да променÑте + променливите на Ñредата на машината, например „PATH“: + +

      +#!/bin/sh
      +exec java -jar ~/bin/slave.jar
      +
      + +

      + Може да използвате произволна команда за Ñтартирането на процеÑа на управлÑваната + машина, Ñтига Ñ‚Ñ Ð´Ð° е в ÑÑŠÑтоÑние да изпълни „java -jar ~/bin/slave.jar“ като + оÑтане Ñвързана ÑÑŠÑ Ñтандартните вход и изход на този процеÑ. + +

      + При по-големи инÑталации може да зареждате slave.jar от Ñподелен монтиран + реÑурÑ, например NFS, така че да не Ñе налага ръчно да обновÑвате файла при вÑÑко + обновÑване на Jenkins. + +

      + Ðко имате проблеми ÑÑŠÑ ÑвързаноÑтта, може да ги изчиÑтите по-леÑно като зададете + командата да е „ssh -v hostname“. +

      diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_bg.html b/core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_bg.html new file mode 100644 index 0000000000..26e7fed59c --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_bg.html @@ -0,0 +1,6 @@ +
      + При необходимоÑÑ‚ тук попълнете допълнителните аргументи за Ñтартирането на + виртуалната машина на Java на подчинените компютри като „-Xmx256m“. + Погледнете документациÑта за + Ð¿ÑŠÐ»Ð½Ð¸Ñ ÑпиÑък. +
      diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-allowEmptyArchive_bg.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-allowEmptyArchive_bg.html new file mode 100644 index 0000000000..b909b753f7 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-allowEmptyArchive_bg.html @@ -0,0 +1,6 @@ +
      + Обичайно изграждане, при което отÑÑŠÑтват обектите за архивиране, Ñе + обÑвÑва за неуÑпешно. Ðко изберете тази опциÑ, отÑÑŠÑтвието на + обекти за архивиране ще доведе Ñамо до предупреждение, изграждането + ще Ñе третира като уÑпешно. +
      diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_bg.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_bg.html new file mode 100644 index 0000000000..c199f270db --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_bg.html @@ -0,0 +1,8 @@ +
      + Можете да използвате шаблонни знаци като „module/dist/**/*.zip“. + За Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ погледнете + документациÑта + на атрибута „includes“ за наборите от файлове на Ant. Базовата + Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ðµ работното проÑтранÑтво. Можете да + архивирате Ñамо файлове, които Ñе Ñъдържат в него. +
      diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-caseSensitive_bg.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-caseSensitive_bg.html new file mode 100644 index 0000000000..0df67079cc --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-caseSensitive_bg.html @@ -0,0 +1,8 @@ +
      + Ðрхивирането на артефакти използва org.apache.tools.ant.DirectoryScanner + на Ant. Стандартно този инÑтрумент различава главни и малки букви — ако задачата + Ñъздава файлове Ñ Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ðµ „.hpi“, шаблонът „**/*.HPI“ ще ги преÑкочи.

      + Различаването на региÑтъра на буквите може да Ñе изключи Ñ Ñ‚Ð°Ð·Ð¸ опциÑ. Когато Ñ‚Ñ + не е избрана, шаблонът „**/*.HPI“ ще напаÑва и файлове Ñ Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ðµ „*.hpi“, а + шаблонът „**/cAsEsEnSiTiVe.jar“ ще напаÑне и Ñ Ñ„Ð°Ð¹Ð»Ð° „caseSensitive.jar“. +
      diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_bg.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_bg.html new file mode 100644 index 0000000000..e7a44b3902 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_bg.html @@ -0,0 +1,6 @@ +
      + Допълнително може да укажете + изключващ шаблон „excludes“, + като „foo/bar/**/*“. Файл, който Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð½Ð° такъв шаблон, нÑма да бъде архивиран, дори + и да напаÑва шаблона указан във файловете за архивиране. +
      diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help_bg.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help_bg.html new file mode 100644 index 0000000000..ffdf118007 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help_bg.html @@ -0,0 +1,15 @@ +
      + Ðрхивиране на изградените артефакти (напр. разпроÑтранÑваните или публикувани + файлове), така че да могат да бъдат изтеглени по-къÑно. Те ще Ñа доÑтъпни от + Ñтраницата на Jenkins. +
      + Обичайно Jenkins пази изградените обекти докато Ñе пазÑÑ‚ журналните запиÑи за + Ñамото изграждане. Ðко Ñтарите артефакти не ви Ñ‚Ñ€Ñбват и предпочитате да имате + повече диÑково проÑтранÑтво, може да укажете това. +
      +
      +
      +Забележете, че при задача Ñ Maven, Ñъздадените артефакти Ñе архивират автоматично. +Обектите, които наÑтроите тук, Ñе добавÑÑ‚ към горните. Ðвтоматичното архивиране +на Maven може да Ñе изключи от допълнителните наÑтройки на Maven. +
      diff --git a/core/src/main/resources/hudson/tasks/BatchFile/help-unstableReturn_bg.html b/core/src/main/resources/hudson/tasks/BatchFile/help-unstableReturn_bg.html new file mode 100644 index 0000000000..61e39ef72b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/BatchFile/help-unstableReturn_bg.html @@ -0,0 +1,10 @@ +
      + Когато е зададена ÑтойноÑÑ‚, Ñ‚Ñ Ñ‰Ðµ Ñе интерпретира като Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´, който указва неÑтабилно + изграждане. Ðко изходниÑÑ‚ код за грешка Ñъвпада Ñ Ñ‚Ð°Ð·Ð¸ ÑтойноÑÑ‚, изграждането Ñе приема за + неÑтабилно, но Ñе продължава ÑÑŠÑ Ñледващите Ñтъпки. Поддържа Ñе най-ÑˆÐ¸Ñ€Ð¾ÐºÐ¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ от + ÑтойноÑти за фамилиÑта Windows. При Windows NT4 и Ñледващи ERRORLEVEL е четирибайтово цÑло + чиÑло ÑÑŠÑ Ð·Ð½Ð°Ðº и интервалът е от -2147483648 до 2147483647. По-Ñтарите верÑии на Windows + поддържат двубайтови цели чиÑла — от 0 до 65535. При DOS това е еднобайтова целочиÑлена ÑтойноÑÑ‚ + от 0 до 255. СтойноÑÑ‚ 0 Ñе преÑкача и не води до обÑвÑването на изграждането на неÑтабилно, + защото това е конвенциÑта. +
      diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/help-targets_bg.html b/core/src/main/resources/hudson/tasks/Fingerprinter/help-targets_bg.html new file mode 100644 index 0000000000..5db7e7bed1 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/help-targets_bg.html @@ -0,0 +1,7 @@ +
      + Можете да използвате шаблонни знаци като module/dist/**/*.zip + (за Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ погледнете ÑекциÑта за + @includes от + ръководÑтвото на Ant). + ОÑновната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ðµ работното проÑтранÑтвото. +
      diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/help_bg.html b/core/src/main/resources/hudson/tasks/Fingerprinter/help_bg.html new file mode 100644 index 0000000000..c4a834bad6 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/help_bg.html @@ -0,0 +1,34 @@ +
      + Jenkins може да запиÑва отпечатъка на файловете (най-чеÑто това Ñа файлове jar) за + проÑледÑване кога и къде тези файлове Ñа Ñъздадени и използване. Това ви помага + да получите отговори на въпроÑи като Ñледните, когато имате множеÑтво проекти, + завиÑими един от друг: + +
        +
      • + Ðа диÑка ми има файл foo.jar, но от кое точно изграждане идва? +
      • +
      • + Ðко проектът BAR завиÑи от файла foo.jar, който е от проекта FOO: +
      • +
        • +
        • + От кое изграждане идва верÑиÑта на foo.jar, коÑто Ñе ползва в + изграждане на â„–51 на BAR? +
        • +
        • + Кое изграждане на BAR ще ползва поправката на грешката, коÑто е включена + в изграждане â„–32 на foo.jar? +
        • +
      • +
      + +

      + За да Ñе възползвате от това, Ñ‚Ñ€Ñбва вÑички учаÑтващи проекти да използват отпечатъци + на файлове — не Ñамо проектите, от които файловете произхождат, но и тези, в които Ñе + ползват. + +

      + За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ + документациÑта. +

      diff --git a/core/src/main/resources/hudson/tasks/Maven/help-injectBuildVariables_bg.html b/core/src/main/resources/hudson/tasks/Maven/help-injectBuildVariables_bg.html new file mode 100644 index 0000000000..6852f46ae4 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/help-injectBuildVariables_bg.html @@ -0,0 +1,6 @@ +
      + Подаване на вÑички променливи от изграждането към процеÑа на maven като ÑвойÑтва на Java. + РÑдко има нужда от това, защото променливите така или иначе Ñа изнеÑени към Ñредата. + ПредпочитаниÑÑ‚ начин за доÑтъп до Ñ‚ÑÑ… е изрично подаване на отделните променливи от + изграждането като ÑвойÑтва на Java в раздела СвойÑтва (MY_VAR=${MY_VAR}). +
      diff --git a/core/src/main/resources/hudson/tasks/Maven/help-properties_bg.html b/core/src/main/resources/hudson/tasks/Maven/help-properties_bg.html new file mode 100644 index 0000000000..9087244e82 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/help-properties_bg.html @@ -0,0 +1,9 @@ +
      + Тук Ñе задават ÑвойÑтвата, които Ñе използват от изграждането на Maven, + в Ñтандартен формат „.properties“: +
      # коментар
      +име1=ÑтойноÑÑ‚1
      +име2=ÑтойноÑÑ‚2
      +
      + Те Ñе подават към Maven като „-Dиме1=ÑтойноÑÑ‚1 -Dиме2=ÑтойноÑÑ‚2“ +
      diff --git a/core/src/main/resources/hudson/tasks/Maven/help-settings_bg.html b/core/src/main/resources/hudson/tasks/Maven/help-settings_bg.html new file mode 100644 index 0000000000..d7068029ea --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/help-settings_bg.html @@ -0,0 +1,20 @@ +
      + Елементът за наÑтройки във файла settings.xml Ñъдържа ÑтойноÑти, които + влиÑÑÑ‚ на изпълнението на Maven по различни начини, подобно на файла pom.xml, + но не принадлежат на никой проект поотделно и не Ñледва да Ñе разпроÑтранÑват Ñ Ñ‚ÑÑ…. + Това включва меÑтоположението на локалното хранилище, допълнителни отдалечени хранилища за + код и обекти и Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° идентификациÑ. +
      + Стандартно файлътsettings.xml Ñе чете от Ñледните меÑта: + +
        +
      • ÑиÑтемната инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° Maven — Ñтандартно е $M2_HOME/conf/settings.xml
      • +
      • потребителÑката инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° Maven — Ñтандартно е ${user.home}/.m2/settings.xml
      • +
      + + Първото е мÑÑтото на глобалните наÑтройки, а второто Ñа наÑтройките за отделен потребител. Ðко и двата + файла ÑъщеÑтвуват, те Ñе четат и Ñливат, като потребителÑките наÑтройки Ñа Ñ Ð¿Ñ€Ð¸Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚. +

      + За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ settings.xml + документациÑта. +

      diff --git a/core/src/main/resources/hudson/tasks/Shell/help-shell_bg.html b/core/src/main/resources/hudson/tasks/Shell/help-shell_bg.html new file mode 100644 index 0000000000..db9993009d --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Shell/help-shell_bg.html @@ -0,0 +1,5 @@ +
      + Обикновено това поле Ñ‚Ñ€Ñбва да е празно, а Jenkins Ñам ще подбере Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð¿Ñ€ÐµÑ‚Ð°Ñ‚Ð¾Ñ€. + Ðко обаче sh (под Windows) или /bin/sh е извън Ð¿ÑŠÑ‚Ñ Ñочен от PATH, + тук ще Ñ‚Ñ€Ñбва да зададете Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð» на интерпретатора. +
      diff --git a/core/src/main/resources/hudson/tasks/Shell/help-unstableReturn_bg.html b/core/src/main/resources/hudson/tasks/Shell/help-unstableReturn_bg.html new file mode 100644 index 0000000000..15d9c0fd79 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Shell/help-unstableReturn_bg.html @@ -0,0 +1,8 @@ +
      + Когато е зададена ÑтойноÑÑ‚, Ñ‚Ñ Ñ‰Ðµ Ñе интерпретира като Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´, който указва неÑтабилно + изграждане. Ðко изходниÑÑ‚ код за грешка Ñъвпада Ñ Ñ‚Ð°Ð·Ð¸ ÑтойноÑÑ‚, изграждането Ñе приема за + неÑтабилно, но Ñе продължава ÑÑŠÑ Ñледващите Ñтъпки. Поддържа Ñе най-ÑˆÐ¸Ñ€Ð¾ÐºÐ¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ от + ÑтойноÑти за фамилиÑта Windows. При Unix това е еднобайтова целочиÑлена ÑтойноÑÑ‚ + от 0 до 255. СтойноÑÑ‚ 0 Ñе преÑкача и не води до обÑвÑването на изграждането на неÑтабилно, + защото това е конвенциÑта. +
      diff --git a/core/src/main/resources/hudson/tasks/Shell/help_bg.html b/core/src/main/resources/hudson/tasks/Shell/help_bg.html new file mode 100644 index 0000000000..11ef4eb735 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Shell/help_bg.html @@ -0,0 +1,19 @@ +
      + Изпълнение на Ñкрипт чрез интерпретатор за изграждането на проект (Ñтандартно е sh, + но може да Ñе наÑтрои). Текущата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° изпълнението на Ñкрипта е директориÑта на + работното проÑтранÑтво. Попълнете тук Ñъдържанието на Ñкрипта. Ðко в началото му + липÑва заглавен ред от вида: #!/bin/sh, ще Ñе използва ÑиÑтемниÑÑ‚ интерпретатор. + Ðко в началото на Ñкрипта има ред от вида: #!/bin/perl, ще можете да използвате + произволен интерпретатор и ще можете изрично да задавате Ñ ÐºÐ°ÐºÐ²Ð¸ опции ще Ñе Ñтартира. + +

      + Стандартно интерпретаторът Ñе извиква Ñ Ð¾Ð¿Ñ†Ð¸Ñта -ex. Така вÑички команди Ñе + отпечатват преди изпълнение, а изграждането Ñе Ñчита за неуÑпешно, ако нÑÐºÐ¾Ñ Ð¾Ñ‚ + командите завърши Ñ ÐºÐ¾Ð´, различен от 0. Може да промените това поведение, + като зададете начален ред за указване на интерпретатора като #!/bin/…. + +

      + Добра практика е да не задавате голÑм Ñкрипт тук. По-добре е да го Ñложите в ÑиÑтемата + за контрол на верÑиите, а тук проÑто да го извикате чрез bash -ex myscript.sh + или нещо подобно. Така ще може да Ñледите промените в Ñкрипта. +

      diff --git a/core/src/main/resources/hudson/tools/AbstractCommandInstaller/help-command_bg.html b/core/src/main/resources/hudson/tools/AbstractCommandInstaller/help-command_bg.html new file mode 100644 index 0000000000..7550b70ec1 --- /dev/null +++ b/core/src/main/resources/hudson/tools/AbstractCommandInstaller/help-command_bg.html @@ -0,0 +1,5 @@ +
      + Команда, коÑто да Ñе Ñтартира вÑеки път на машината за инÑталиране на този + инÑтрумент. Затова, когато инÑтрументът е вече инÑталиран, Ñ‚Ñ Ñ‚Ñ€Ñбва да Ñе + изпълнÑва доÑта бързо и да не прави нищо. +
      diff --git a/core/src/main/resources/hudson/tools/AbstractCommandInstaller/help-toolHome_bg.html b/core/src/main/resources/hudson/tools/AbstractCommandInstaller/help-toolHome_bg.html new file mode 100644 index 0000000000..6ce1b7d20f --- /dev/null +++ b/core/src/main/resources/hudson/tools/AbstractCommandInstaller/help-toolHome_bg.html @@ -0,0 +1,3 @@ +
      + Домашната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° програмата. (ПътÑÑ‚ може да е отноÑителен.) +
      diff --git a/core/src/main/resources/hudson/tools/AbstractCommandInstaller/help_bg.html b/core/src/main/resources/hudson/tools/AbstractCommandInstaller/help_bg.html new file mode 100644 index 0000000000..b9a0d59f2b --- /dev/null +++ b/core/src/main/resources/hudson/tools/AbstractCommandInstaller/help_bg.html @@ -0,0 +1,23 @@ +

      + Изпълнение на произволна поÑледователноÑÑ‚ от команди на обвивката, които + позволÑват да инÑталирате програмата. Пример Ñ Ubuntu — + предполагаме, че потребителÑÑ‚ за Jenkins има права в /etc/sudoers: +

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

      + (Ð’ този Ñлучай задайте примерно /usr/lib/jvm/java-6-openjdk-i386 като + домашна директориÑ.) +

      +

      + Друг пример Ñ Ð¸Ð½Ñталиране на Ñтара верÑÐ¸Ñ Ð½Ð° Sun JDK 6 за 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/InstallSourceProperty/help_bg.html b/core/src/main/resources/hudson/tools/InstallSourceProperty/help_bg.html new file mode 100644 index 0000000000..645ddc9255 --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/help_bg.html @@ -0,0 +1,13 @@ +
      + Избирането на тази Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñва на Jenkins да инÑталира инÑтрумента при + нужда. + +

      + След като Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ ще бъдете подканени да наÑтроите ÑÐµÑ€Ð¸Ñ Ð¾Ñ‚ „инÑталатори“, + които позволÑват на Jenkins да инÑталира инÑтрумента. + +

      + Ðко инÑтрументът е платформено незавиÑим, като Ant, нÑма голÑма полза. Ð’ + Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¸Ñ Ñлучай това ви позволÑва да инÑталирате платформено завиÑим + инÑтрумент по различен начин — Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ð¸ Ñкриптове, на различните Ñреди. +

      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_bg.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_bg.html new file mode 100644 index 0000000000..e95ffbedb8 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_bg.html @@ -0,0 +1,4 @@ +
      + Ðезадължителна Ð¿Ð¾Ð´Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¾Ñ‚ Ð¸Ð·Ñ‚ÐµÐ³Ð»ÐµÐ½Ð¸Ñ Ð¸ разпакетиран архив, коÑто да Ñе ползва + като оÑновна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° програмата. +
      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_bg.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_bg.html new file mode 100644 index 0000000000..5bf99bd535 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_bg.html @@ -0,0 +1,7 @@ +
      + ÐдреÑ, от който да Ñе изтегли програмата в компилиран вид. ТрÑбва да е + архив във формат zip или tar.gz. Ðко вече е изтеглена предишна верÑиÑ, + Ñе ÑравнÑват времената им, за да може по-леÑно да Ñе публикуват обновлениÑ. + ÐдреÑÑŠÑ‚ Ñ‚Ñ€Ñбва да е доÑтижим от ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€ на Jenkins, нÑма нужда да + Ñе вижда от подчинените машини. +
      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_bg.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_bg.html new file mode 100644 index 0000000000..7e10b81bca --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_bg.html @@ -0,0 +1,6 @@ +-
      + ИзтеглÑне на архив Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° и инÑталирането Ñ Ð² работната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Jenkins. + Примерно: 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/triggers/SCMTrigger/help-ignorePostCommitHooks_bg.html b/core/src/main/resources/hudson/triggers/SCMTrigger/help-ignorePostCommitHooks_bg.html new file mode 100644 index 0000000000..7d88134b2d --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/help-ignorePostCommitHooks_bg.html @@ -0,0 +1,13 @@ +
      + Игнориране на извеÑтиÑта за промÑна от Ñтрана на ÑиÑтемата за контрол на + верÑиите. +

      + Това е полезно да предотвратите поÑтоÑнното Ñтартиране на продължителни + задачи, като извлечениÑ, обработка на данни и др. при вÑÑка отделна + промÑна в ÑиÑтемата за контрол на верÑиите, но вÑе пак иÑкате да ги Ñтартирате + от време на време, ако промени има. +

      + За да Ñработи тази опциÑ, Ñ‚Ñ Ñ‚Ñ€Ñбва да Ñе поддържа и от приÑтавката за ÑиÑтемата + за контрол на верÑиите. Ð’ ÑÐ»ÑƒÑ‡Ð°Ñ Ð½Ð° Subversion, приÑтавката Ñ‚Ñ€Ñбва да е поне + верÑÐ¸Ñ 1.44. +

      diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/help-pollingThreadCount_bg.html b/core/src/main/resources/hudson/triggers/SCMTrigger/help-pollingThreadCount_bg.html new file mode 100644 index 0000000000..d3a0eb9407 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/help-pollingThreadCount_bg.html @@ -0,0 +1,10 @@ +
      + Ðко много проекти Ñе изграждат Ñлед Ñлушане за промени в ÑиÑтемата за контрол + на верÑиите, може да иÑкате да ограничите Ð¾Ð±Ñ‰Ð¸Ñ Ð±Ñ€Ð¾Ð¹ едновременни заÑвки към + Ñървъра за верÑиите, за да не бъде претоварен. + +

      + Попълването на положително цÑло чиÑло ограничава Ð±Ñ€Ð¾Ñ Ð½Ð° едновременните заÑвки + за проверка. Ðко оÑтавите полето празно, нÑма да има никакви Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð² + Ð±Ñ€Ð¾Ñ Ð½Ð° едновременните заÑвки. +

      diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/help_bg.html b/core/src/main/resources/hudson/triggers/SCMTrigger/help_bg.html new file mode 100644 index 0000000000..785ad9f9f9 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/help_bg.html @@ -0,0 +1,10 @@ +
      + ÐаÑтройване на Jenkins за пита ÑиÑтемата за контрол на верÑиите за промени. + +

      + При ползване на CVS това е ужаÑно Ñкъпа операциÑ, защото кара Jenkins да + обходи цÑлото работно проÑтранÑтво и да го Ñинхронизира ÑÑŠÑ Ñървъра. + По-добре е Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰Ñ‚Ð° на автоматично дейÑтвие от Ñтрана на CVS да извеÑÑ‚Ñвате + Jenkins за промени. За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð³Ð»ÐµÐ´Ð½ÐµÑ‚Ðµ + документациÑта. +

      diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_bg.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_bg.html new file mode 100644 index 0000000000..7cea08ce5a --- /dev/null +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_bg.html @@ -0,0 +1,86 @@ +
      + Полето Ñледва ÑинтакÑиÑа на cron (Ñ Ð¼Ð°Ð»ÐºÐ¸ различиÑ). + Ð’Ñеки ред Ñе ÑÑŠÑтои от 5 полета Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ» интервал или табулациÑ: +
      МИÐУТРЧÐС ДЕÐ_ОТ_МЕСЕЦРМЕСЕЦ ДЕÐ_ОТ_СЕДМИЦÐТÐ
      + + + + + + + + + + + + + + + + + + + + + +
      МИÐУТÐМинута в чаÑа (0–59)
      ЧÐÐ¡Ð§Ð°Ñ Ð¾Ñ‚ Ð´ÐµÐ½Ñ (0–23)
      ДЕÐ_ОТ_МЕСЕЦÐДен от меÑеца (1–31)
      МЕСЕЦМеÑец от годината (1–12)
      ДЕÐ_ОТ_СЕДМИЦÐТÐДен от Ñедмицата (0–7). И 0, и 7 Ñа неделÑ.
      +

      + Чрез Ñледните оператори може да указвате множеÑтво ÑтойноÑти за едно поле. + Изброени от най-виÑок към най-ниÑък приоритет, това Ñа: +

      +
        +
      • * вÑички възможни ÑтойноÑти
      • +
      • M-N интервал от ÑтойноÑти
      • +
      • M-N/X или */X Ñтъпки от интервали от X единици в ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð²Ð°Ð» или от вÑички възможни ÑтойноÑти
      • +
      • A,B,...,Z изброÑване на множеÑтво от точни ÑтойноÑти
      • +
      +

      + Ð¡ÑŠÑ Ð·Ð½Ð°ÐºÐ° H включвате ÑиÑтемата за равномерно натоварване, + използвайте го възможно най-чеÑто („H“ идва от „hash“). + Ðапример: 0 0 * * * за много ежедневни задачи ще доведе до голÑмо + натоварване в полунощ. + Противоположно на това H H * * * Ñъщо ще изпълнÑва задачите ежедневно, + но нÑма да Ñтартира вÑички по едно и Ñъщо време, което води до намалÑване на + необходимите реÑурÑи. +

      + Знакът H може да Ñе използва Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð²Ð°Ð». + Ðапример H H(0-7) * * * означава нÑкой момент между 00:00 AM и 7:59. + С H може да ползвате е поÑтъпкови изрази Ñ Ð¸Ð»Ð¸ без интервали. +

      + Може да миÑлите за H като Ñлучайна ÑтойноÑÑ‚ от ÑÑŠÐ¾Ñ‚Ð²ÐµÑ‚Ð½Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð²Ð°Ð». + ИÑтината е, че не е Ñлучайна ÑтойноÑÑ‚, а е базирана на хеша от името на задачата. + Така тази ÑтойноÑÑ‚ е Ñтабилна за вÑеки проект. +

      +

      + Кратки интервали като */3 или H/3 работÑÑ‚ по-оÑобено + в ÐºÑ€Ð°Ñ Ð½Ð° меÑеците поради различната дължина на меÑеците. + Ðапример: */3 ще Ñе Ñтартира на 1-ви, 4-ти,… 31-ни и веднага отново на 1-ви ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Ð¼ÐµÑец. + Хешовете за ден от меÑеца Ñе избират от интервала 1-28. Възможно и H/3 да породи дупка + от 3 до 6 дни в ÐºÑ€Ð°Ñ Ð½Ð° меÑеца. + (Подобен ефект има и при по-дълги интервали, но там е отноÑително по-малко забележим.) +

      +

      + Празните редове, както и тези, които започват Ñ # Ñе Ñчитат за коментари. +

      + Допълнително може да ползвате Ñледните Ñиноними: @yearly (ежегодно), @annually + (ежегодно), @monthly (ежемеÑечно), @weekly (ежеÑедмично), @daily + (ежедневно), @midnight (вÑÑка нощ) и @hourly (вÑеки чаÑ). + Те използват ÑиÑтемата за баланÑиране на натоварването. + Ðапример, @hourly е Ñъщото като H * * * * и означава нÑкой момент в чаÑа. + @midnight означава нÑкой момент между 00:00 AM и 2:59. +

      + Примери: +

      +
      +# на вÑеки 15 минути (примерно: и 7, и 22, и 37,  и 52)
      +H/15 * * * *
      +# на вÑеки 10 минути в първата половина на вÑеки Ñ‡Ð°Ñ (3 пъти, примерно: и 4, и 14, и 24)
      +H(0-29)/10 * * * *
      +# на вÑеки два чаÑа, при 45-тата минута на чаÑа, почвайки от 9:45 до 15:45 вÑеки почивен ден от Ñедмицата
      +45 9-16/2 * * 1-5
      +# на вÑеки два чаÑа в интервала от 9 до 17 ч, вÑеки работен ден от Ñедмицата (примерно: 10:38, 12:38, 14:38, 16:38 PM)
      +H H(9-16)/2 * * 1-5
      +# веднъж на ден - на вÑÑко 1-во и 15-то чиÑло от вÑеки меÑец без декември
      +H H 1,15 1-11 *
      +
      +
      diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help_bg.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help_bg.html new file mode 100644 index 0000000000..810cb0d90f --- /dev/null +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help_bg.html @@ -0,0 +1,22 @@ +
      + ВъзможноÑÑ‚ за периодично изпълнение на този проект на база време, + подобно но програмата cron. + +

      + Това дава възможноÑÑ‚ да ползвате Jenkins като замеÑтител на cron. + Това Ñ€Ñдко е правилен начин за непрекъÑнато изграждане на проекти. + + ЧеÑто хората, когато започват да внедрÑват непрекъÑнато изграждане, Ñи + миÑлÑÑ‚, че проектите проÑто Ñ‚Ñ€Ñбва да Ñе изграждат на определен период — + примерно вÑеки ден или вÑÑка Ñедмица, което обÑÑнÑва най-чеÑтата + употреба на тази възможноÑÑ‚. ИдеÑта обаче е друга — при непрекъÑнатото + изграждане Ñ‚Ñ€Ñбва да Ñе реагира Ñ Ð¿Ð¾Ñвата на вÑÑка промÑна, за да Ñе + получи възможно най-Ñкоро обратна връзка. Това Ñе поÑтига Ñ + автоматични + извеÑÑ‚Ð¸Ñ Ð¾Ñ‚ ÑиÑтемата за контрол на верÑиите към Jenkins. + +

      + Преди да започнете да ползвате тази възможноÑÑ‚ (cron) Ñе Ñпрете и + хубаво Ñи помиÑлете дали иÑкате точно това. + +

      diff --git a/core/src/main/resources/jenkins/CLI/help-enabled_bg.html b/core/src/main/resources/jenkins/CLI/help-enabled_bg.html new file mode 100644 index 0000000000..c677e33a40 --- /dev/null +++ b/core/src/main/resources/jenkins/CLI/help-enabled_bg.html @@ -0,0 +1,8 @@ +
      + Дали да Ñе включи оÑтарелиÑÑ‚ режим за команден ред Ñ Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¾ управление. + Това Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð½Ð° опциÑта -remoting в клиента. + Това може и да дава възможноÑÑ‚ да ползвате определени команди или техните опции, + но Ñе Ñчита за неÑигурно. Вариантът Ñ Ð¾Ð¿Ñ†Ð¸Ñта -http е винаги + наличен, а режимът Ñ Ð¾Ð¿Ñ†Ð¸Ñта -ssh — когато е включена уÑлугата + за SSH. +
      diff --git a/core/src/main/resources/jenkins/model/BuildDiscarderProperty/help_bg.html b/core/src/main/resources/jenkins/model/BuildDiscarderProperty/help_bg.html new file mode 100644 index 0000000000..5c689a85b9 --- /dev/null +++ b/core/src/main/resources/jenkins/model/BuildDiscarderProperty/help_bg.html @@ -0,0 +1,53 @@ +
      + Това определÑ, кога, ако изобщо нÑкога, данните да изгражданиÑта на този проект + ще Ñе изтриват. Това включва изхода на конзолата, архивираните артефакти, както + и вÑички оÑтанали метаданни за Ñъответното изграждане. +

      + СъхранÑването на по-малък брой Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ð²Ð°, че ще Ñе използва по-малко + диÑково проÑтранÑтво в Build Record Root Directory, коÑто Ñе указва в + екрана за СиÑтемни наÑтройки screen. +

      + + Jenkins предлага две възможноÑти за определÑне кога да Ñе изтриват Ñтарите + изгражданиÑ: +

        +
      1. + ВъзраÑÑ‚: изтриване на изгражданиÑта Ñлед като Ñтигнат определена възраÑÑ‚: + примерно Ñедем дни. +
      2. + Брой: изтриване на вÑички Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð±ÐµÐ· поÑледните нÑколко. +
      + Тези две възможноÑти може да Ñе зададат едновременно — например да Ñе държат + изгражданиÑта от поÑледните 14 дни, но не повече от общо 50. Ðко нÑкое от + двете Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ñе надхвърли, Ñе изтриват вÑички Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð½Ð°Ð´ Ñ‚ÑÑ…. +

      + Можете да запазвате определени важни Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð·Ð°Ð²Ð¸Ð½Ð°Ð³Ð¸, незавиÑимо от + ограничениÑта дадени тук — натиÑнете бутона Запазване на изграденото + завинаги на Ñтраницата за изгражданиÑ. +
      + ПоÑледното Ñтабилно и поÑледното уÑпешно изграждане Ñъщо Ñе запазват, незавиÑимо + от тези ограничениÑ. + +


      + + Ð’ раздела Допълнителни могат да Ñе указват Ñъщите тези ограничениÑ, но + Ñпециално за артефактите от изгражданиÑта. Ðко те бъдат включени, + артефактите, надхвърлÑщи ограничениÑта, ще бъдат изтривани. Самите Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ + и данните Ñе пазÑÑ‚, Ñамо артефактите Ñе триÑÑ‚. +

      + Ðапример, ако проект изгражда голÑм инÑталатор за определена програма, който + бива архивиран, а иÑкате да запазите изхода на конзолата както и информациÑта + за подаването от ÑиÑтемата за контрол на верÑиите, на което Ñе базира Ñамото + изграждане, като едновременно Ñ Ñ‚Ð¾Ð²Ð° триете Ñтарите артефакти, за да не използвате + прекалено много диÑково проÑтранÑтво. +
      + Това е оÑобено подходÑщо за проекти, в които леÑно можете наново да изградите + артефактите наново. + +


      + + Забележка: Jenkins не Ð¾Ñ†ÐµÐ½Ñ Ð¸ не прилага тези правила мигновено, нито при + промÑната на тези наÑтройки, нито при надхвърлÑнето на ограничениÑта. Това + Ñтава при завършването на изграждане на проекта. +
      diff --git a/core/src/main/resources/jenkins/model/DownloadSettings/help-useBrowser_bg.html b/core/src/main/resources/jenkins/model/DownloadSettings/help-useBrowser_bg.html new file mode 100644 index 0000000000..189121a8e7 --- /dev/null +++ b/core/src/main/resources/jenkins/model/DownloadSettings/help-useBrowser_bg.html @@ -0,0 +1,12 @@ +

      + ÐаÑтройване браузърът, а не Jenkins, да Ð¸Ð·Ñ‚ÐµÐ³Ð»Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸Ñ‚Ðµ (ÑпиÑъци Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ + приÑтавки, инÑтрументи и Ñ‚.н.). Самото изтеглÑне на приÑтавките и инÑтрументите + ще Ñе извърши от Jenkins, но така ще получите доÑтъп поне да разгледате + обновените метаданни, когато Jenkins нÑма доÑтъп до Internet, но Ð²Ð°ÑˆÐ¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€ + има (примерно защото ползва определен Ñървър-поÑредник, който е недоÑтъпен за + Jenkins). +

      +

      + Използването на този режим не Ñе препоръчва. Той не е надежден и е ограничен + единÑтвено до админиÑтраторите, защото Ñамо те могат да Ñе възползват от него. +

      diff --git a/core/src/main/resources/jenkins/model/GlobalQuietPeriodConfiguration/help-quietPeriod_bg.html b/core/src/main/resources/jenkins/model/GlobalQuietPeriodConfiguration/help-quietPeriod_bg.html new file mode 100644 index 0000000000..c39432db11 --- /dev/null +++ b/core/src/main/resources/jenkins/model/GlobalQuietPeriodConfiguration/help-quietPeriod_bg.html @@ -0,0 +1,22 @@ +
      + Когато това е избрано, изгражданиÑта, които Ñа Ñтартирани автоматично, ще + Ñе добавÑÑ‚ в опашката за изпълнение, но Jenkins ще изчаква определено време, + преди дейÑтвително да Ñтартира изграждането. +

      + Ðапример, ако изгражданиÑта отнемат много време, може да иÑкате да + предотвратите Ñтартирането на нÑколко Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‚ множеÑтво Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð² + ÑиÑтемата за контрол на верÑиите, който Ñа направени по едно и Ñъщо време. + Задаването на период за изчакване ще предотврати Ñтартирането на изграждане, + когато уÑети първото подаване. Това дава възможноÑÑ‚ да Ñе Ñъберат повече + Ð¿Ð¾Ð´Ð°Ð²Ð°Ð½Ð¸Ñ Ð·Ð° включване в изграждането. Това намалÑва дължината на опашката + за изграждане, намалÑва натоварването върху Jenkins и като резултат + разработчиците получават по бързо обратна връзка за ÑериÑта от подаваниÑ. +

      + Ðко Ñе получи заÑвка за ново изграждане, докато има изчакващо в опашката, + периодът му за чакане нÑма да Ñе промени, а заÑвката нÑма да доведе до + ново изграждане, оÑвен, ако изграждането е параметризирано и ÑтойноÑтите + на параметрите Ñа различни от тези на изграждането в опашката. +

      + Ðко това не е избрано, Ñе използва Ñтандартната ÑтойноÑÑ‚, коÑто е зададена + в ÐаÑтройки на ÑиÑтемата. +

      diff --git a/core/src/main/resources/jenkins/model/Jenkins/help-markupFormatter_bg.html b/core/src/main/resources/jenkins/model/Jenkins/help-markupFormatter_bg.html index 0c54a47690..ed0ba000e1 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/help-markupFormatter_bg.html +++ b/core/src/main/resources/jenkins/model/Jenkins/help-markupFormatter_bg.html @@ -7,8 +7,8 @@ ÑъвмеÑтимоÑÑ‚ Ñ Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸ верÑии).

      - Това е доÑта уобно и хората го ползват, за да зареждат <iframe>, - <script> и Ñ‚.н., това позволÑна на недробонамерените потребители да + Това е доÑта удобно и хората го ползват, за да зареждат <iframe>, + <script> и Ñ‚.н., това позволÑва на недобронамерените потребители да извършат атаки чрез XSS. Ðко риÑкът е прекомерно голÑм, инÑталирайте допълнителна приÑтавка за diff --git a/core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_bg.html b/core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_bg.html index e30240fe00..ff240d9d76 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_bg.html +++ b/core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_bg.html @@ -1,6 +1,6 @@

      Указва мÑÑтото във файловата ÑиÑтема, където Jenkins ще запазва - запиÑите за изгражданиÑта. Това включва изхода от конзолата, както и дугите + запиÑите за изгражданиÑта. Това включва изхода от конзолата, както и другите метаданни, които Ñе генерират при изграждане.

      СтойноÑтта може да включва Ñледните променливи: @@ -8,7 +8,7 @@

    • ${JENKINS_HOME} — абÑолютниÑÑ‚ път до домашната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Jenkins;
    • ${ITEM_ROOTDIR} — абÑолютниÑÑ‚ път до директориÑта, в коÑто - Jenkins запазвъ наÑтройките и Ñвързаните метаданни за определено + Jenkins запазва наÑтройките и Ñвързаните метаданни за определено задание;
    • ${ITEM_FULL_NAME} — пълното име на заданието, което може да Ñъдържа наклонени черти, напр. foo/bar за заданието diff --git a/core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_bg.html b/core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_bg.html index 63c090bb30..75967f9c18 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_bg.html +++ b/core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_bg.html @@ -8,7 +8,7 @@
    • ${JENKINS_HOME} — абÑолютниÑÑ‚ път до домашната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Jenkins;
    • ${ITEM_ROOTDIR} — абÑолютниÑÑ‚ път до директориÑта, в коÑто - Jenkins запазвъ наÑтройките и Ñвързаните метаданни за определено + Jenkins запазва наÑтройките и Ñвързаните метаданни за определено задание;
    • ${ITEM_FULL_NAME} — пълното име на заданието, което може да Ñъдържа наклонени черти, напр. foo/bar за заданието diff --git a/core/src/main/resources/jenkins/model/JenkinsLocationConfiguration/help-adminAddress_bg.html b/core/src/main/resources/jenkins/model/JenkinsLocationConfiguration/help-adminAddress_bg.html new file mode 100644 index 0000000000..0d1a14d59a --- /dev/null +++ b/core/src/main/resources/jenkins/model/JenkinsLocationConfiguration/help-adminAddress_bg.html @@ -0,0 +1,5 @@ +
      + ИзвеÑтиÑта по е-поща от Jenkins към ÑобÑтвениците на проекти ще Ñе + изпращат Ñ Ñ‚Ð¾Ð·Ð¸ Ð°Ð´Ñ€ÐµÑ Ð½Ð° подател. Може да е Ñамо Ð°Ð´Ñ€ÐµÑ ÐºÐ°Ñ‚Ð¾: + „jenkins@acme.org“ или „Сървър Jenkins <jenkins@acme.org>“. +
      diff --git a/core/src/main/resources/jenkins/model/JenkinsLocationConfiguration/help-url_bg.html b/core/src/main/resources/jenkins/model/JenkinsLocationConfiguration/help-url_bg.html new file mode 100644 index 0000000000..f752096674 --- /dev/null +++ b/core/src/main/resources/jenkins/model/JenkinsLocationConfiguration/help-url_bg.html @@ -0,0 +1,10 @@ +
      + ВъзможноÑÑ‚ да зададете адреÑа по HTTP на инÑталациÑта на Jenkins като: + http://yourhost.yourdomain/jenkins/. СтойноÑтта Ñе ползва, + за да може Jenkins да Ñочи Ñебе Ñи, примерно при показването на + Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ при генерирането на връзки в електронните пиÑма. + +

      + Това Ñе налага, защото нÑма надежден начин Jenkins Ñам да открие този + адреÑ. +

      diff --git a/core/src/main/resources/jenkins/model/ProjectNamingStrategy/PatternProjectNamingStrategy/help-description_bg.html b/core/src/main/resources/jenkins/model/ProjectNamingStrategy/PatternProjectNamingStrategy/help-description_bg.html new file mode 100644 index 0000000000..6a49633bb4 --- /dev/null +++ b/core/src/main/resources/jenkins/model/ProjectNamingStrategy/PatternProjectNamingStrategy/help-description_bg.html @@ -0,0 +1,4 @@ +

      + ПотребителÑко опиÑание на шаблона за имена на задачите за изграждане. + Извежда Ñе като Ñъобщение за грешка при опит да Ñе наруши конвенциÑта. +

      diff --git a/core/src/main/resources/jenkins/mvn/DefaultGlobalSettingsProvider/help_bg.html b/core/src/main/resources/jenkins/mvn/DefaultGlobalSettingsProvider/help_bg.html new file mode 100644 index 0000000000..0adec3ce99 --- /dev/null +++ b/core/src/main/resources/jenkins/mvn/DefaultGlobalSettingsProvider/help_bg.html @@ -0,0 +1,4 @@ +
      + Използване на Ñтандартните наÑтройки на maven, зададени на компютъра + ($HOME/.m2/settings.xml). +
      \ No newline at end of file diff --git a/core/src/main/resources/jenkins/mvn/DefaultSettingsProvider/help_bg.html b/core/src/main/resources/jenkins/mvn/DefaultSettingsProvider/help_bg.html new file mode 100644 index 0000000000..0adec3ce99 --- /dev/null +++ b/core/src/main/resources/jenkins/mvn/DefaultSettingsProvider/help_bg.html @@ -0,0 +1,4 @@ +
      + Използване на Ñтандартните наÑтройки на maven, зададени на компютъра + ($HOME/.m2/settings.xml). +
      \ No newline at end of file diff --git a/core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/config_bg.properties b/core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/config_bg.properties new file mode 100644 index 0000000000..d9b80a4d58 --- /dev/null +++ b/core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ path=\ + \u041f\u044a\u0442 \u043a\u044a\u043c \u0444\u0430\u0439\u043b\u0430 diff --git a/core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/help-path_bg.html b/core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/help-path_bg.html new file mode 100644 index 0000000000..f4be79b07e --- /dev/null +++ b/core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/help-path_bg.html @@ -0,0 +1,4 @@ +
      + Път към файла „settings.xml“ — или абÑолютен, или отноÑителен ÑпрÑмо + работното проÑтранÑтво на проекта (поддържат Ñе променливи). +
      \ No newline at end of file diff --git a/core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/help_bg.html b/core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/help_bg.html new file mode 100644 index 0000000000..858aa3b662 --- /dev/null +++ b/core/src/main/resources/jenkins/mvn/FilePathGlobalSettingsProvider/help_bg.html @@ -0,0 +1,5 @@ +
      + Използване на Ñпецифичен глобален файл settings.xml от работното + проÑтранÑтво на проекта. Той Ñ‚Ñ€Ñбва да бъде изтеглен от ÑиÑтемата за контрол + на верÑиите като чаÑÑ‚ от изграждането или да Ñе намира на доÑтъпно мÑÑто. +
      \ No newline at end of file diff --git a/core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/config_bg.properties b/core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/config_bg.properties new file mode 100644 index 0000000000..d9b80a4d58 --- /dev/null +++ b/core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/config_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation: Copyright (c) 2016, Alexander Shopov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION 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\ path=\ + \u041f\u044a\u0442 \u043a\u044a\u043c \u0444\u0430\u0439\u043b\u0430 diff --git a/core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/help-path_bg.html b/core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/help-path_bg.html new file mode 100644 index 0000000000..f4be79b07e --- /dev/null +++ b/core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/help-path_bg.html @@ -0,0 +1,4 @@ +
      + Път към файла „settings.xml“ — или абÑолютен, или отноÑителен ÑпрÑмо + работното проÑтранÑтво на проекта (поддържат Ñе променливи). +
      \ No newline at end of file diff --git a/core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/help_bg.html b/core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/help_bg.html new file mode 100644 index 0000000000..b5933521e4 --- /dev/null +++ b/core/src/main/resources/jenkins/mvn/FilePathSettingsProvider/help_bg.html @@ -0,0 +1,5 @@ +
      + Използване на Ñпецифичен файл settings.xml. Той Ñ‚Ñ€Ñбва да бъде + изтеглен от ÑиÑтемата за контрол на верÑиите като чаÑÑ‚ от изграждането или + да Ñе намира на доÑтъпно мÑÑто. +
      \ No newline at end of file diff --git a/core/src/main/resources/jenkins/security/ApiTokenProperty/help-apiToken_bg.html b/core/src/main/resources/jenkins/security/ApiTokenProperty/help-apiToken_bg.html new file mode 100644 index 0000000000..44a7e1d485 --- /dev/null +++ b/core/src/main/resources/jenkins/security/ApiTokenProperty/help-apiToken_bg.html @@ -0,0 +1,6 @@ +
      + Този жетон за API дава възможноÑÑ‚ за Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð² извикването по REST. За повече подробноÑти погледнете + документациÑта в уикито. + Жетонът от това API Ñ‚Ñ€Ñбва да Ñе пази подобно на парола, защото позволÑва на други хора да доÑтъпват + Jenkins от ваше име и Ñ Ð²Ð°ÑˆÐ¸Ñ‚Ðµ права. +
      diff --git a/core/src/main/resources/jenkins/security/UpdateSiteWarningsConfiguration/help_bg.html b/core/src/main/resources/jenkins/security/UpdateSiteWarningsConfiguration/help_bg.html new file mode 100644 index 0000000000..722ab9cbe2 --- /dev/null +++ b/core/src/main/resources/jenkins/security/UpdateSiteWarningsConfiguration/help_bg.html @@ -0,0 +1,15 @@ +

      + Този ÑпиÑък Ñъдържа вÑички предупреждиниÑ, които Ñе отнаÑÑÑ‚ до текущо инÑталираните компоненти, които + Ñа публикувани от текущо наÑтроените Ñайтове за обновлениÑ. Стандартно новините Ñа Ñвързани Ñ Ð¿Ñ€Ð¾Ð±Ð»Ð¸Ð¼Ð¸ + ÑÑŠÑ ÑигурноÑта. Ðе Ñе показват публикуваните предупреждениÑ, които не Ñе за текущо инÑталираните + компоненти и верÑии. +

      +

      + Стандартно отделине Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñа избрани/активни, Ñ‚.е. те Ñе показват на админиÑтраторите. + Като махнете отметката ги криете. + Това е полезно, ако Ñте разгледали определено предупреждение и Ñте Ñигурни, че не Ñе отнаÑÑ Ð·Ð° вашата инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð¸ + наÑтройки, Ñ‚.е. да продължите да ползвате Ñъответната верÑÐ¸Ñ Ð½Ð° определен компонент не е пробив в ÑигурноÑтта. +

      + ПредупреждениÑта могат да Ñе изключват едно по едно, не може да заглушите вÑички Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° определен компонент. + Ðко иÑкате въобще да изключите показването на вÑички предупреждениÑ, може да направите това от ÐаÑтройките на ÑиÑтемата. +

      diff --git a/core/src/main/resources/jenkins/security/s2m/MasterKillSwitchConfiguration/help-masterToSlaveAccessControl_bg.html b/core/src/main/resources/jenkins/security/s2m/MasterKillSwitchConfiguration/help-masterToSlaveAccessControl_bg.html new file mode 100644 index 0000000000..84dc7a3dbc --- /dev/null +++ b/core/src/main/resources/jenkins/security/s2m/MasterKillSwitchConfiguration/help-masterToSlaveAccessControl_bg.html @@ -0,0 +1,4 @@ +
      + За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ Ñайта на Jenkins. + Силно препоръчваме да включите тази наÑтройка. +
      diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-disabled_bg.html b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-disabled_bg.html new file mode 100644 index 0000000000..0d1feca264 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-disabled_bg.html @@ -0,0 +1,4 @@ +
      + ПозволÑва изключването на отдалечената работна + Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° агента. Ð’ тези Ñлучаи подчинениÑÑ‚ компютър ще работи в оÑÑ‚Ð°Ñ€ÐµÐ»Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼ без журнални файлове. +
      diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-failIfWorkDirIsMissing_bg.html b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-failIfWorkDirIsMissing_bg.html new file mode 100644 index 0000000000..787565bf38 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-failIfWorkDirIsMissing_bg.html @@ -0,0 +1,4 @@ +
      + Когато тук е зададена директориÑ, Jenkins нÑма да Ñтартира на този подчинен компютър, ако Ñ‚Ñ Ð»Ð¸Ð¿Ñва. + Така може да заÑичате проблеми Ñ Ð¸Ð½Ñ„Ñ€Ð°Ñтруктурата като неуÑпешно монтиране. +
      diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-internalDir_bg.html b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-internalDir_bg.html new file mode 100644 index 0000000000..73d6e60d75 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-internalDir_bg.html @@ -0,0 +1,4 @@ +
      + Указване на Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° Ñъхранение на вътрешните данни. + Ð¢Ñ Ñе Ñъздава като Ð¿Ð¾Ð´Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° работната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Ð¿Ð¾Ð´Ñ‡Ð¸Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€. +
      diff --git a/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-workDirPath_bg.html b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-workDirPath_bg.html new file mode 100644 index 0000000000..7f5c24c5af --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/RemotingWorkDirSettings/help-workDirPath_bg.html @@ -0,0 +1,4 @@ +
      + Ðко е зададена, ще Ñе ползва тази работна директориÑ, а не тази на Ð¿Ð¾Ð´Ñ‡Ð¸Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€. + Тази Ð¾Ð¿Ñ†Ð¸Ñ Ð½Ðµ поддържа променливи, препоръчва Ñе да използвате Ñамо абÑолютни пътища. +
      diff --git a/core/src/main/resources/jenkins/triggers/ReverseBuildTrigger/help_bg.html b/core/src/main/resources/jenkins/triggers/ReverseBuildTrigger/help_bg.html new file mode 100644 index 0000000000..6681a2c018 --- /dev/null +++ b/core/src/main/resources/jenkins/triggers/ReverseBuildTrigger/help_bg.html @@ -0,0 +1,12 @@ +
      +

      + Задаване на автоматично наÑрочване на изграждане на този проект Ñлед + завършването на изграждането на друг. Така е удобно да наÑрочите + продължителна поÑледователноÑÑ‚ от теÑтове Ñлед изграждане, когато то + е завършило, без да го забавÑте. +

      + Тази наÑтройка допълва раздела „Изграждане на други проекти“ в „ДейÑÑ‚Ð²Ð¸Ñ + Ñлед изграждане“ на проект, от който този завиÑи, но тази е за предпочитане, + ако иÑкате наÑтройката да е при завиÑещите проекти. +

      +
      diff --git a/war/src/main/webapp/help/LogRecorder/logger_bg.html b/war/src/main/webapp/help/LogRecorder/logger_bg.html new file mode 100644 index 0000000000..a6de16fa8b --- /dev/null +++ b/war/src/main/webapp/help/LogRecorder/logger_bg.html @@ -0,0 +1,15 @@ +
      + Укажете имената на журналите заедно Ñ Ð½Ð¸Ð²Ð°Ñ‚Ð° им, които това обединение + ще обхваща. Ðапример, ако укажете hudson.model.Hudson + и info, вÑички журнални запиÑи за hudson.model.Hudson + или наÑледниците му Ñ Ð½Ð¸Ð²Ð¾ поне „info“ ще Ñе запиÑват в тази група, оÑвен + ако по-Ñпецифично указване или по-виÑока подробноÑÑ‚ напаÑва Ñ Ñ‚ÑÑ…. + +

      + Ðко имате множеÑтво журнални групи, вÑеки Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚Ð¸Ð²Ð° в най-Ñпецифичното + обединение, на което отговарÑ. + +

      + За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° журналите в Java и Jenkins погледнете + документациÑта. +

      diff --git a/war/src/main/webapp/help/LogRecorder/name_bg.html b/war/src/main/webapp/help/LogRecorder/name_bg.html new file mode 100644 index 0000000000..70249bab89 --- /dev/null +++ b/war/src/main/webapp/help/LogRecorder/name_bg.html @@ -0,0 +1,5 @@ +
      + Укажете име, което да идентифицира тази обединена група журнали. + Когато обединÑвате журнали, те Ñе запиÑват в един файл, което + улеÑнÑва прегледа. Можете де Ñъздавате множеÑтво такива групираниÑ. +
      diff --git a/war/src/main/webapp/help/parameter/boolean-default_bg.html b/war/src/main/webapp/help/parameter/boolean-default_bg.html new file mode 100644 index 0000000000..bc7e127059 --- /dev/null +++ b/war/src/main/webapp/help/parameter/boolean-default_bg.html @@ -0,0 +1,3 @@ +
      + Указва Ñтандартната ÑтойноÑÑ‚ на полето. +
      diff --git a/war/src/main/webapp/help/parameter/boolean_bg.html b/war/src/main/webapp/help/parameter/boolean_bg.html new file mode 100644 index 0000000000..e87191acb4 --- /dev/null +++ b/war/src/main/webapp/help/parameter/boolean_bg.html @@ -0,0 +1,5 @@ +
      + Указва булев параметър, който да Ñе използва по време на изграждането + като променлива на Ñредата или за замеÑтване в нÑÐºÐ¾Ñ Ð½Ð°Ñтройка. + СтойноÑтта като низ ще е или „true“ (иÑтина), или „false“ (лъжа). +
      diff --git a/war/src/main/webapp/help/parameter/choice-choices_bg.html b/war/src/main/webapp/help/parameter/choice-choices_bg.html new file mode 100644 index 0000000000..134d37f517 --- /dev/null +++ b/war/src/main/webapp/help/parameter/choice-choices_bg.html @@ -0,0 +1,4 @@ +
      + Възможните ÑтойноÑти, по една на ред. По подразбиране ще Ñе ползва + ÑтойноÑтта на Ð¿ÑŠÑ€Ð²Ð¸Ñ Ñ€ÐµÐ´. +
      diff --git a/war/src/main/webapp/help/parameter/choice_bg.html b/war/src/main/webapp/help/parameter/choice_bg.html new file mode 100644 index 0000000000..690b6557f6 --- /dev/null +++ b/war/src/main/webapp/help/parameter/choice_bg.html @@ -0,0 +1,5 @@ +
      + Указва параметър-низ, чиÑто ÑтойноÑÑ‚ Ñе избира от ÑпиÑък от ÑтойноÑти. + Ð¢Ñ Ð¼Ð¾Ð¶Ðµ да Ñе използва по време на изграждането като променлива на Ñредата + или за замеÑтване в нÑÐºÐ¾Ñ Ð½Ð°Ñтройка. +
      diff --git a/war/src/main/webapp/help/parameter/description_bg.html b/war/src/main/webapp/help/parameter/description_bg.html new file mode 100644 index 0000000000..74ec29b364 --- /dev/null +++ b/war/src/main/webapp/help/parameter/description_bg.html @@ -0,0 +1,3 @@ +
      + ОпиÑание, което ще Ñе покаже по-къÑно на потребителÑ. +
      diff --git a/war/src/main/webapp/help/parameter/file-name_bg.html b/war/src/main/webapp/help/parameter/file-name_bg.html new file mode 100644 index 0000000000..d24d9842ef --- /dev/null +++ b/war/src/main/webapp/help/parameter/file-name_bg.html @@ -0,0 +1,4 @@ +
      + Указва отноÑителното ÑпрÑмо работното проÑтранÑтво меÑтоположение, + където качваниÑÑ‚ файл ще Ñе запише (напр. „jaxb-ri/data.zip“). +
      diff --git a/war/src/main/webapp/help/parameter/file_bg.html b/war/src/main/webapp/help/parameter/file_bg.html new file mode 100644 index 0000000000..93272eb965 --- /dev/null +++ b/war/src/main/webapp/help/parameter/file_bg.html @@ -0,0 +1,28 @@ +
      + Приема файл, качен през браузъра, като параметър за изграждането. КачениÑÑ‚ + файл ще бъде помеÑтен на указаното мÑÑто в работното проÑтранÑтво, откъдето + задачата за изграждане ще има доÑтъп до него. +

      Това е полезно в много Ñлучаи, например:

        +
      1. Даване на възможноÑÑ‚ на потребителите да теÑтват обект изграден от Ñ‚ÑÑ….
      2. +
      3. Ðвтоматизиране на процеÑа на качване/теÑтване/публикуване на файл като + потребителите имат мÑÑто, където да го помеÑÑ‚ÑÑ‚.
      4. +
      5. Изпълнение на обработка на данни Ñлед качването на набор от данни.
      6. +
      +

      + Името на Ð¿Ð¾Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð» е налично в променливата на Ñредата ÑÑŠÑ Ñъщото + име както меÑтоположението на файла. Ðко зададете меÑтоположението като + abc.zip, то ${abc.zip} дава първоначалното име на файла + подадено от браузъра (напр. my.zip). Името не включва директорите. +

      +

      + Качването на файл не е задължително. Ðко потребителÑÑ‚ не избере файл, + Jenkins ще преÑкочи този параметър (нÑма да поÑтави нов файл, но нÑма и + да изтрие вече ÑъщеÑтвуващ файл). +

      +

      + ОпциÑта -p към командата build в режим на команден + ред приема или име на локален файл (при използването и на -remoting), + или празна ÑтойноÑÑ‚ и Ñе чете от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ (в този Ñлучай Ñе приема Ñамо + един параметър-файл). +

      +
      diff --git a/war/src/main/webapp/help/parameter/name_bg.html b/war/src/main/webapp/help/parameter/name_bg.html new file mode 100644 index 0000000000..f960c30e1d --- /dev/null +++ b/war/src/main/webapp/help/parameter/name_bg.html @@ -0,0 +1,6 @@ +
      + Име на параметъра. + +

      + Параметрите Ñа доÑтъпни като променливи на Ñредата. +

      diff --git a/war/src/main/webapp/help/parameter/run-filter_bg.html b/war/src/main/webapp/help/parameter/run-filter_bg.html new file mode 100644 index 0000000000..8f75790e58 --- /dev/null +++ b/war/src/main/webapp/help/parameter/run-filter_bg.html @@ -0,0 +1,9 @@ +
      + Филтриране на ÑпиÑъка Ñ Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ, които Ñа включени в Ð¿Ð°Ð´Ð°Ñ‰Ð¸Ñ ÑпиÑък. +
      +„ВÑички“ — извеждане на вÑички Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ (и завършили, и изпълнÑвани).
      +„Завършени“ — извеждане на завършилите Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ (и уÑпешни, и неуÑпешни)
      +„УÑпешни“ — извеждане на уÑпешните Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ (и Ñтабилни, и неÑтабилни).
      +„Стабилни“ — извеждане Ñамо на Ñтабилните изгражданиÑ.
      +
      +
      diff --git a/war/src/main/webapp/help/parameter/run-project_bg.html b/war/src/main/webapp/help/parameter/run-project_bg.html new file mode 100644 index 0000000000..5e66c6a4e9 --- /dev/null +++ b/war/src/main/webapp/help/parameter/run-project_bg.html @@ -0,0 +1,12 @@ +
      + Задава името на задачата, от чиито Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»ÑÑ‚ може да избере. + Стандартно Ñе ползва поÑледното изпълнение. Следните параметри Ñа + налични като променливи на Ñредата: +
      +PARAMETER_NAME=<адреÑ_на_jenkins>/job/<име_на_задачата>/<поредно_изпълнение>/
      +PARAMETER_NAME_JOBNAME=<име_на_задачата>
      +PARAMETER_NAME_NUMBER=<поредно_изпълнение>
      +PARAMETER_NAME_NAME=<име_за_показване>
      +PARAMETER_NAME_RESULT=<резултат_от_изпълнението>
      +
      +
      diff --git a/war/src/main/webapp/help/parameter/run_bg.html b/war/src/main/webapp/help/parameter/run_bg.html new file mode 100644 index 0000000000..0f02e85ca1 --- /dev/null +++ b/war/src/main/webapp/help/parameter/run_bg.html @@ -0,0 +1,7 @@ +
      + Указва параметър за изпълнение, който потребителите могат да зададат + за определено изпълнение на проект. ÐбÑолютниÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ð½Ð° това конкретно + изграждане ще е доÑтъпен като променлива на Ñредата или като ÑтойноÑÑ‚ + за замÑна в наÑтройките. Самото изграждане може да използва променливата, + за да запита Jenkins за допълнителна информациÑ. +
      diff --git a/war/src/main/webapp/help/parameter/string-default_bg.html b/war/src/main/webapp/help/parameter/string-default_bg.html new file mode 100644 index 0000000000..165bd3bd6d --- /dev/null +++ b/war/src/main/webapp/help/parameter/string-default_bg.html @@ -0,0 +1,4 @@ +
      + Указва Ñтандартната ÑтойноÑÑ‚ на, което може да ÑпеÑти + въвеждане на ÑтойноÑÑ‚ вÑеки път. +
      diff --git a/war/src/main/webapp/help/parameter/string_bg.html b/war/src/main/webapp/help/parameter/string_bg.html new file mode 100644 index 0000000000..aca3cca057 --- /dev/null +++ b/war/src/main/webapp/help/parameter/string_bg.html @@ -0,0 +1,5 @@ +
      + Указва параметър-низ, в който потребителите могат да въведат + ÑтойноÑÑ‚, коÑто да Ñе използва по време на изграждането като + променлива на Ñредата или за замеÑтване в нÑÐºÐ¾Ñ Ð½Ð°Ñтройка. +
      diff --git a/war/src/main/webapp/help/project-config/batch_bg.html b/war/src/main/webapp/help/project-config/batch_bg.html new file mode 100644 index 0000000000..4c5415b543 --- /dev/null +++ b/war/src/main/webapp/help/project-config/batch_bg.html @@ -0,0 +1,13 @@ +
      + Изпълнение на Ñкриптов файл на Windows за изграждане на проекта. + Скриптът ще бъде изпълнен в работната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ â€” Ñ‚Ñ Ñ‰Ðµ е текуща да него. + + ТекÑÑ‚ÑŠÑ‚, който въведете, ще Ñе изпълни като пакетен файл. Изграждането ще Ñе + Ñчете за неуÑпешно, ако ÑтойноÑтта на променливата на Ñредата „%ERRORLEVEL%“ + не е 0. + +

      + Ðко изграждащиÑÑ‚ пакетен файл вече е в ÑиÑтемата за контрол на верÑиите, + може проÑто да въведете отноÑÐ¸Ñ‚ÐµÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ към него ÑпрÑмо работното + проÑтранÑтво и така той ще бъде изпълнен. +

      diff --git a/war/src/main/webapp/help/project-config/block-downstream-building_bg.html b/war/src/main/webapp/help/project-config/block-downstream-building_bg.html new file mode 100644 index 0000000000..4dc8acd3b7 --- /dev/null +++ b/war/src/main/webapp/help/project-config/block-downstream-building_bg.html @@ -0,0 +1,5 @@ +
      + Когато опциÑта е избрана, Jenkins ще предотвратÑва изгражданиÑта на проект, ако + дъщерен проект Ñе изгражда или е в опашката за изгражданиÑта. Ð’ дъщерните проекти + Ñе включват вÑички транзитивно, Ñ‚.е. и дъщерните на дъщерните проекти и Ñ‚.н. +
      diff --git a/war/src/main/webapp/help/project-config/block-upstream-building_bg.html b/war/src/main/webapp/help/project-config/block-upstream-building_bg.html new file mode 100644 index 0000000000..639e558557 --- /dev/null +++ b/war/src/main/webapp/help/project-config/block-upstream-building_bg.html @@ -0,0 +1,4 @@ +
      + Когато опциÑта е избрана, Jenkins не позволÑва изграждането на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚, ако нÑкой от проектите, + от който той завиÑи, е в опашката за изграждане. ЗавиÑимоÑтите Ñа рекурÑивни. +
      diff --git a/war/src/main/webapp/help/project-config/custom-workspace_bg.html b/war/src/main/webapp/help/project-config/custom-workspace_bg.html new file mode 100644 index 0000000000..496c6a63da --- /dev/null +++ b/war/src/main/webapp/help/project-config/custom-workspace_bg.html @@ -0,0 +1,26 @@ +
      + Jenkins Ð·Ð°Ð´ÐµÐ»Ñ ÑƒÐ½Ð¸ÐºÐ°Ð»Ð½Ð° работна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° вÑÑка задача за изграждане. Ð’ Ð½ÐµÑ Ñе Ð¸Ð·Ñ‚ÐµÐ³Ð»Ñ + Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ и Ñе компилират обектите. Ð’ Ð¾Ð±Ñ‰Ð¸Ñ Ñлучай Jenkins Ð·Ð°Ð´ÐµÐ»Ñ Ð¸ зачиÑтва тези + директории, но понÑкога Ñ‚Ñ€Ñбва да зададете ръчно тези директории. + +

      + Такъв е ÑлучаÑÑ‚, когато нÑкои пътища Ñа зададени в кода и целиÑÑ‚ проект може да Ñе изгради + Ñамо на конкретно мÑÑто. ЯÑно е, че подобно изграждане е далеч от идеалното, но възможноÑтта + да зададете Ð¿ÑŠÑ‚Ñ Ñ‰Ðµ ви помогне в началото. + +

      + Друга подобна ÑитуациÑ, когато това е полезно, е когато проектът не е за изграждане, а за изпълнение + на определени дейÑÑ‚Ð²Ð¸Ñ â€” вÑе едно замеÑтител на „cron“. Като зададете определена Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° + работна, ще помогнете на хората, които разглеждат файловете през уеб интерфейÑа на Jenkins web UI. + Това облекчава и Ð²Ð°Ñ Ð¿Ñ€Ð¸ Ñтартирането на отделните команди. + +

      + Ð’ разпределена Ñреда за изграждане, Jenkins може да меÑти изграждането между различни компютри. + ПонÑкога това е добре, понÑкога не. Може и да наÑтроите нÑколко проекта да ÑподелÑÑ‚ работна + директориÑ. ОтговорноÑтта да Ñе уверите, че в такива Ñлучаи едновременните Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ñ Ð½Ð° + изгражданиÑта не Ñи пречат, е изцÑло ваша. + +

      + Ðко пътÑÑ‚ е отноÑителен, той Ñе Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ ÑпрÑмо отдалечената оÑновна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° подчинените машини + или ÑпрÑмо $JENKINS_HOME на оÑновната машина. +

      diff --git a/war/src/main/webapp/help/project-config/defaultView_bg.html b/war/src/main/webapp/help/project-config/defaultView_bg.html new file mode 100644 index 0000000000..d55991aa21 --- /dev/null +++ b/war/src/main/webapp/help/project-config/defaultView_bg.html @@ -0,0 +1,6 @@ +
      + Ðко Ñа дефинирани множеÑтво изгледи, може да изберете нÑкой от Ñ‚ÑÑ… за оÑновниÑÑ‚ за Jenkins. + Това е полезно при големи инÑталации на Jenkins, при които изгледът „ВÑички“ е прекалено голÑм за + разглеждане. След като изберете друг изглед за оÑновен, ще може да изтриете изгледа „ВÑички“, + ако иÑкате. +
      diff --git a/war/src/main/webapp/help/project-config/description_bg.html b/war/src/main/webapp/help/project-config/description_bg.html new file mode 100644 index 0000000000..7d6c60b8df --- /dev/null +++ b/war/src/main/webapp/help/project-config/description_bg.html @@ -0,0 +1,4 @@ +
      + Това опиÑание Ñтои в горната чаÑÑ‚ на Ñтраницата, за да могат потребителите да узнаÑÑ‚ + за какво е този проект. Може да ползвате HTML или друг наÑтроен език Ñ Ð¼Ð°Ñ€ÐºÐ¸Ñ€Ð°Ð½Ðµ. +
      diff --git a/war/src/main/webapp/help/project-config/disable_bg.html b/war/src/main/webapp/help/project-config/disable_bg.html new file mode 100644 index 0000000000..39adfb09fa --- /dev/null +++ b/war/src/main/webapp/help/project-config/disable_bg.html @@ -0,0 +1,12 @@ +
      + Когато опциÑта е избрана, нÑма да Ñе изпълнÑват нови Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð½Ð° проекта. +

      + Това е полезно, ако иÑкате временно да предотвратите изгражданиÑта на определен + проект. Ðапример, ако проектът завиÑи от инфраÑтруктура, коÑто нÑма да е налична + в определен период, като теÑтов Ñървър или ÑиÑтемата за контрол на верÑии, които + временно Ñа в профилактика, можете да изключите проекта, за да не получавате + извеÑÑ‚Ð¸Ñ Ð·Ð° неуÑпешните изгражданиÑ. +

      + Можете да извършите това и чрез бутоните Изключване на проект (или + Включване на проект) от оÑновната Ñтраница на проекта. +

      diff --git a/war/src/main/webapp/help/project-config/downstream_bg.html b/war/src/main/webapp/help/project-config/downstream_bg.html new file mode 100644 index 0000000000..e00658c9d6 --- /dev/null +++ b/war/src/main/webapp/help/project-config/downstream_bg.html @@ -0,0 +1,23 @@ +
      + Ðвтоматично Ñтартиране на други проекти Ñлед завършването на този. + Може да зададете множеÑтво проекти като ги разделите ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ ÐµÑ‚Ð¾ така: + „едно, две, три“. + +

      + ОÑвен Ð¾Ñ‡ÐµÐ²Ð¸Ð´Ð½Ð¸Ñ Ñлучай, когато Ñтава дума за проекти, които завиÑÑÑ‚ от този, може + да използвате тази възможноÑÑ‚ да разделите дълъг Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð° изграждане на нÑколко + етапа (като изграждане и поÑледващо теÑтване). +

      + +

      + Подпроектите Ñ‚Ñ€Ñбва да Ñе указват Ñ Ð¿ÑŠÑ‚Ð¸Ñ‰Ð°. Това може да е абÑолютен път, започващ от + оÑновната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Jenkins, като „/оÑновна/подпроект“, където „оÑновна“ е директориÑта + на Jenkins. Може и да е отноÑителен път ÑпрÑмо директориÑта на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚, например: + „директориÑ/подпроект“, където „директориÑ“ е на Ñъщото ниво както Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚. + Примери за такива приÑтавки Ñа: + ПриÑтавката за папки на CloudBees + и + ПриÑтавката за проекти Ñ Ð¼Ð½Ð¾Ð¶ÐµÑтво клони. + Има и други такива приÑтавки. +

      +
      diff --git a/war/src/main/webapp/help/project-config/scmCheckoutRetryCount_bg.html b/war/src/main/webapp/help/project-config/scmCheckoutRetryCount_bg.html new file mode 100644 index 0000000000..77d0a2deb5 --- /dev/null +++ b/war/src/main/webapp/help/project-config/scmCheckoutRetryCount_bg.html @@ -0,0 +1,20 @@ +
      + Когато опциÑта е избрана, а проектът е наÑтроен да използва ÑиÑтема за + контрол на верÑиите, Jenkins ще Ñе опита множеÑтво пъти да изтегли Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ + код докато уÑпее. +

      + Стандартното поведение, което ÑъответÑтва на ÑтойноÑÑ‚ 0 е + изграждането да Ñе обÑви за неуÑпешно, дори когато първото изтеглÑне е + неуÑпешно. +

      + Ðко зададете по-виÑока ÑтойноÑÑ‚, Jenkins ще Ð¿Ð¾Ð²Ñ‚Ð°Ñ€Ñ Ð¾Ð¿Ð¸Ñ‚Ð¸Ñ‚Ðµ за изтеглÑне на + кода толкова пъти ÑÑŠÑ Ð¸Ð·Ñ‡Ð°ÐºÐ²Ð°Ð½Ðµ от 10 Ñек. между отделните опити. Ðко и + поÑледниÑÑ‚ опит е неуÑпешен, изграждането Ñе обÑвÑва за неуÑпешно и + изпълнението приключва. +

      + ПриÑтавките могат да имат различни реализации на работа Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð» на верÑиите, + затова вÑÑка приÑтавка поотделно решава кое изтеглÑне е неуÑпешно. +

      + Ðко опциÑта не е избрана, ще Ñе ползва Ñтандартната ÑтойноÑÑ‚ от ÐаÑтройките + на ÑиÑтемата. +

      diff --git a/war/src/main/webapp/help/project-config/triggerRemotely_bg.html b/war/src/main/webapp/help/project-config/triggerRemotely_bg.html new file mode 100644 index 0000000000..24e8dfe20b --- /dev/null +++ b/war/src/main/webapp/help/project-config/triggerRemotely_bg.html @@ -0,0 +1,11 @@ +
      + Включете тази опциÑ, ако иÑкате да Ñтартирате нови Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ + чрез отварÑнето на Ñпециални адреÑи (удобно е за Ñкриптове). +

      Типичен пример за това е Ñтартирането на ново изграждане от + куките за автоматично изпълнение в ÑиÑтемите за контрол на + верÑиите при подаване към хранилището или Ñкрипт, който + обработва е-пиÑмата Ñ Ð¸Ð·Ð²ÐµÑÑ‚Ð¸Ñ Ð¾Ñ‚ хранилището.

      +

      Ще Ñ‚Ñ€Ñбва да подавате низа за идентификациÑ, така че Ñамо + тези, които го знаÑÑ‚, да могат да Ñтартират отдалечено това + изграждане.

      +
      diff --git a/war/src/main/webapp/help/run-config/description_bg.html b/war/src/main/webapp/help/run-config/description_bg.html new file mode 100644 index 0000000000..cf52b6ccfa --- /dev/null +++ b/war/src/main/webapp/help/run-config/description_bg.html @@ -0,0 +1,4 @@ +
      + Това опиÑание Ñе поÑÑ‚Ð°Ð²Ñ Ð½Ð° Ñтраницата на изграждането, така че да е леÑно да Ñе ориентираш + за какво Ñтава дума. Може да ползвате HTML или друг наÑтроен език Ñ Ð¼Ð°Ñ€ÐºÐ¸Ñ€Ð°Ð½Ðµ. +
      diff --git a/war/src/main/webapp/help/run-config/displayName_bg.html b/war/src/main/webapp/help/run-config/displayName_bg.html new file mode 100644 index 0000000000..a82f982511 --- /dev/null +++ b/war/src/main/webapp/help/run-config/displayName_bg.html @@ -0,0 +1,4 @@ +
      + Когото е полето е зададено, ÑтойноÑтта му Ñе ползва вмеÑто ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½ „#NNN“ като + указател към изграждането. ОÑтавете полето празно, за да ползвате Ñтандартната ÑтойноÑÑ‚. +
      diff --git a/war/src/main/webapp/help/scm-browsers/list_bg.html b/war/src/main/webapp/help/scm-browsers/list_bg.html new file mode 100644 index 0000000000..bc49b8e2f9 --- /dev/null +++ b/war/src/main/webapp/help/scm-browsers/list_bg.html @@ -0,0 +1,6 @@ +
      + ДобавÑне на връзки към изгледите Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ на външна ÑиÑтема за разглеждане на промените. + ÐвтоматичниÑÑ‚ избор пробва да налучка това на базата на наÑтройките на другите задачи за + изграждане, ако това Ñе поддържа от ÑиÑтемата за контрол на верÑиите и Ñе открие задача + Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¸ наÑтройки за контрола на верÑиите. +
      diff --git a/war/src/main/webapp/help/system-config/defaultJobNamingStrategy_bg.html b/war/src/main/webapp/help/system-config/defaultJobNamingStrategy_bg.html new file mode 100644 index 0000000000..c56f79694d --- /dev/null +++ b/war/src/main/webapp/help/system-config/defaultJobNamingStrategy_bg.html @@ -0,0 +1,4 @@ +
      + Това е Ñтандартната наÑтройка, коÑто позволÑва на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð° избере + произволно име на задачата за изграждането. +
      diff --git a/war/src/main/webapp/help/system-config/globalEnvironmentVariables_bg.html b/war/src/main/webapp/help/system-config/globalEnvironmentVariables_bg.html new file mode 100644 index 0000000000..e8fb40f68c --- /dev/null +++ b/war/src/main/webapp/help/system-config/globalEnvironmentVariables_bg.html @@ -0,0 +1,5 @@ +
      + Тези двойки ключ-ÑтойноÑÑ‚ Ñе прилагат на вÑеки компютър при вÑÑко изграждане. Те може да Ñе използват + в наÑтройките на Jenkins, чрез $КЛЮЧ или ${КЛЮЧ}, и ще бъдат добавени към Ñредата на процеÑите на + изграждането. +
      diff --git a/war/src/main/webapp/help/system-config/homeDirectory_bg.html b/war/src/main/webapp/help/system-config/homeDirectory_bg.html new file mode 100644 index 0000000000..2de372e76b --- /dev/null +++ b/war/src/main/webapp/help/system-config/homeDirectory_bg.html @@ -0,0 +1,32 @@ +
      + Стандартно Jenkins ÑъхранÑва вÑички ÑобÑтвени данни в тази Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° + файловата ÑиÑтема. +
      + Ð’ раздела Допълнителни може да изберете да ÑъхранÑвате работните + меÑта и запиÑите за изграждане другаде. +

      + Има нÑколко начина да промените работната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Jenkins: +

        +
      • + Редактирайте променливата JENKINS_HOME в ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» Ñ + наÑтройки на Jenkins (Примерно това е /etc/sysconfig/jenkins + при Red Hat Linux). +
      • + Използвайте админиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð¸Ñ Ð¸Ð½Ñтрумент на уеб контейнера, който ползвате, + за да наÑтроите променливата на Ñредата JENKINS_HOME. +
      • + Задайте променливата на Ñредата JENKINS_HOME, преди да + Ñтартирате уеб контейнера Ñи или преди директно да Ñтартирате Jenkins от + WAR файла. +
      • + Задайте ÑиÑтемното ÑвойÑтво на Java — JENKINS_HOME, преди да + Ñтартирате уеб контейнера Ñи или преди директно да Ñтартирате Jenkins от + WAR файла. +
      • + Променете файла web.xml в jenkins.war (или Ñ€Ð°Ð·Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð°Ð½Ð¸Ñ + му еквивалент в контейнера). Макар и възможен този вариант не Ñе препоръчва. +
      + СтойноÑтта не може да бъде променÑна докато Jenkins работи. +
      + Ð¢Ñ Ðµ показана тук, за да Ñте Ñигурни, че наÑтройката влиза в Ñила. +
      diff --git a/war/src/main/webapp/help/system-config/master-slave/availability_bg.html b/war/src/main/webapp/help/system-config/master-slave/availability_bg.html new file mode 100644 index 0000000000..ae89c35cb2 --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/availability_bg.html @@ -0,0 +1,54 @@ +
      + Управление кога Jenkins включва и изключва този агент. + +
      +
      + Ðгентът да е макÑимално време онлайн +
      +
      + Ð’ този режим Jenkins държи агента възможно най-дълго време на линиÑ. +

      + Ðко агентът Ñе изключи, примерно поради временен мрежов проблем, + Jenkins периодично ще пробва да го реÑтартира. +

      + +
      + Ðгентът да Ñе включва и изключва по определено време +
      +
      + Ð’ този режим Jenkins включва агента в определен момент и го държи + на Ð»Ð¸Ð½Ð¸Ñ Ð´Ð¾ÐºÐ°Ñ‚Ð¾ не мине определеното време. +

      + Ðко агентът поради нÑкаква причина не е на Ð»Ð¸Ð½Ð¸Ñ Ð² Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€Ð¸Ð¾Ð´, + Jenkins периодично ще пробва да го реÑтартира. +

      + След като агентът е бил на Ð»Ð¸Ð½Ð¸Ñ Ð·Ð° Ð±Ñ€Ð¾Ñ Ð¼Ð¸Ð½ÑƒÑ‚Ð¸, указан в полето + Работно време, той ще бъде изключен. +
      + Ðко наÑтройката Keep online while builds are running е зададено, + Jenkins ще изчака завършването на текущите изгражданиÑ, преди да изключи + агента. +

      + +
      + Включване на агента при нужда и изключване при бездейÑтване +
      +
      + Ð’ този режим Jenkins включва агента в Ñлучай на нужда — има чакащи + Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð² опашката, които отговарÑÑ‚ на Ñледните изиÑкваниÑ: +
        +
      • Чакали Ñа в опашката поне времето указано в наÑтройката + МакÑимално време за чакане
      • +
      • Могат да Ñе изпълнÑÑ‚ на този агент (Ñ‚.е. отговарÑÑ‚ на израза Ñ + етикетите)
      • +
      + + Ðгентът ще бъде изключен, ако: +
        +
      • ÐÑма текущи Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð½Ð° него
      • +
      • Ðгентът е бездейÑтвал поне периода, указан в наÑтройката + Позволено бездейÑтвие
      • +
      +
      +
      +
      diff --git a/war/src/main/webapp/help/system-config/master-slave/clock_bg.html b/war/src/main/webapp/help/system-config/master-slave/clock_bg.html new file mode 100644 index 0000000000..83c46dab44 --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/clock_bg.html @@ -0,0 +1,5 @@ +
      + Много елементи от изграждането завиÑÑÑ‚ от чаÑовника. Поради тази причина, ако чаÑовниците на + оÑновната и допълнителните машини на Jenkins Ñилно Ñе различават, може да Ñе ÑблъÑкате Ñ Ñ‚Ñ€ÑƒÐ´Ð½Ð¸ + за обÑÑнение проблеми. Пробвайте да Ñинхронизирате чаÑовниците на машините чрез NTP. +
      diff --git a/war/src/main/webapp/help/system-config/master-slave/demand/idleDelay_bg.html b/war/src/main/webapp/help/system-config/master-slave/demand/idleDelay_bg.html new file mode 100644 index 0000000000..ebf58f00c2 --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/demand/idleDelay_bg.html @@ -0,0 +1,3 @@ +
      + Брой минути бездейÑтвие за този компютър, преди Jenkins да го изведе извън линиÑ. +
      diff --git a/war/src/main/webapp/help/system-config/master-slave/demand/inDemandDelay_bg.html b/war/src/main/webapp/help/system-config/master-slave/demand/inDemandDelay_bg.html new file mode 100644 index 0000000000..49c55a713e --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/demand/inDemandDelay_bg.html @@ -0,0 +1,4 @@ +
      + Брой минути за изчакване на задачите в опашката за изграждане, преди Jenkins да + Ñе опита отново да включи компютъра на линиÑ. +
      diff --git a/war/src/main/webapp/help/system-config/master-slave/demand/keepUpWhenActive_bg.html b/war/src/main/webapp/help/system-config/master-slave/demand/keepUpWhenActive_bg.html new file mode 100644 index 0000000000..5c0eb29ebc --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/demand/keepUpWhenActive_bg.html @@ -0,0 +1,4 @@ +
      + Когато това е избрано, Jenkins ще изчаква вече Ñтартираните Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð½Ð° този компютър, + преди да го изведе извън линиÑ. +
      diff --git a/war/src/main/webapp/help/system-config/master-slave/description_bg.html b/war/src/main/webapp/help/system-config/master-slave/description_bg.html new file mode 100644 index 0000000000..fde3e0e115 --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/description_bg.html @@ -0,0 +1,6 @@ +
      + Ðезадължително допълнително опиÑание на тази машина — като за пред хора. +

      + Това може да включва примерно: броÑÑ‚ процеÑори или Ñдра, количеÑтвото + памет, физичеÑкото меÑтонахождение на машината и др. +

      diff --git a/war/src/main/webapp/help/system-config/master-slave/jnlp-tunnel_bg.html b/war/src/main/webapp/help/system-config/master-slave/jnlp-tunnel_bg.html new file mode 100644 index 0000000000..53c11117b0 --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/jnlp-tunnel_bg.html @@ -0,0 +1,24 @@ +
      + Когато подчинен компютър е Ñтартиран чрез JNLP, агентът Ñе опитва да Ñе Ñвърже + към конкретен порт по TCP към Jenkins, за да Ñъздаде комуникационен канал. + ÐÑкои мрежи Ñ Ð¿Ð¾Ð²Ð¸ÑˆÐµÐ½Ð¾ ниво на ÑигурноÑÑ‚ могат да предотвратÑÑ‚ това. + Това може да Ñе Ñлучи Ñъщо и когато Jenkins е зад машина, разпределÑща + натоварването, + обратен Ñървър поÑредник, + в демилитаризираната зона( + и Ñ‚.н. + +

      + Чрез възможноÑтта за тунел може да пренаÑочите тази връзка през към друг компютър или порт + и това е полезно в Ñлучаите указани по-горе. + Полето приема „ХОСТ:ПОРТ“, „:ПОРТ“ или „ХОСТ:“. При Ð¿ÑŠÑ€Ð²Ð¸Ñ + формат подчинениÑÑ‚ компютър Ñ‚Ñ€Ñбва да Ñе Ñвърже към този порт по TCP на Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ…Ð¾ÑÑ‚. + Приема Ñе, че Ñте наÑтроили мрежата Ñи, така че портът да бъде пренаÑочен към порта на + Jenkins за JNLP. + +

      + При Ð²Ñ‚Ð¾Ñ€Ð¸Ñ Ð¸ Ñ‚Ñ€ÐµÑ‚Ð¸Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ пропуÑнатите ÑтойноÑти Ñе наÑледÑват от Ñтандартните + (хоÑÑ‚ÑŠÑ‚, на който Jenkins Ñе изпълнÑва, и портът по TCP, който Jenkins е отворил). + Специално форматътХОСТ: е оÑобено полезен, когато Jenkins работи на друга + машина и е зад обратен Ñървър поÑредник по HTTP. +

      diff --git a/war/src/main/webapp/help/system-config/master-slave/jnlpSecurity_bg.html b/war/src/main/webapp/help/system-config/master-slave/jnlpSecurity_bg.html new file mode 100644 index 0000000000..c27c90afce --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/jnlpSecurity_bg.html @@ -0,0 +1,54 @@ +
      + Управление как Jenkins позволÑва Ñтартиране чрез JNLP. + +
      +
      + Стартиране през детайлите на компютъра. ИзиÑква Ñе влизане в региÑтрациÑта, + ако ÑигурноÑтта е включена. +
      +
      + Това е Ñтандартната и най-чеÑто правилната наÑтройка. + Ð’ този режим Jenkins Ñлага връзката за Ñтартирането чрез JNLP в изгледа + по компютри. Ðко ÑигурноÑтта е включена, връзката ще е доÑтъпна Ñамо + за потребителите, които Ñа Ñе идентифицирали. +
      + +
      + Стартиране от началната Ñтраница. ИзиÑква Ñе влизане в региÑтрациÑта, + ако ÑигурноÑтта е включена. +
      +
      + Ð’ този режим Jenkins предоÑÑ‚Ð°Ð²Ñ Ð²Ñ€ÑŠÐ·ÐºÐ°Ñ‚Ð° за Ñтартирането чрез JNLP в + изгледа по компютри и ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ‡Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ» за ÑÑŠÑтоÑнието на изграждащите + машини. + Ðко ÑигурноÑтта е включена, връзката е доÑтъпна Ñамо от идентифицирали + Ñе потребители. +
      + +
      + Стартиране Ñамо от изгледа по компютри. Ðе Ñе изиÑква влизане в + региÑтрациÑта. +
      +
      + Ð’ този режим Jenkins предоÑÑ‚Ð°Ð²Ñ Ð²Ñ€ÑŠÐ·ÐºÐ° за Ñтартиране по JNLP в изгледа + за компютри. Връзката е налична винаги, когато подчинениÑÑ‚ компютър не + е на линиÑ. +
      + ПРЕДУПРЕЖДЕÐИЕ! Ð’ този режим ÑигурноÑтта е изключена. Подчинените + компютри може да Ñе Ñтартират от вÑеки Ñ Ð´Ð¾Ñтъп до този Ñървър. + Подчинените компютри могат да изпълнÑват произволен код на оÑÐ½Ð¾Ð²Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€. + Ðе избирайте тази опциÑ, ако не Ñте напълно наÑÑно Ñ Ñ€Ð¸Ñковете. +
      + + + +
      +
      diff --git a/war/src/main/webapp/help/system-config/master-slave/numExecutors_bg.html b/war/src/main/webapp/help/system-config/master-slave/numExecutors_bg.html new file mode 100644 index 0000000000..2a6df4d10f --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/numExecutors_bg.html @@ -0,0 +1,16 @@ +
      + Това Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð±Ñ€Ð¾Ñ Ð½Ð° едновременните изгражданиÑ, които Jenkins + изпълнÑва на тази машина. СтойноÑтта Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð½Ð° макÑималното + натоварване на машината, което Jenkins може да Ñи позволи. + Добра начална ÑтойноÑÑ‚ е Ð±Ñ€Ð¾Ñ Ð½Ð° Ñдрата на процеÑорите. + +

      + Увеличаването на Ð±Ñ€Ð¾Ñ Ð½Ð°Ð´ тази ÑтойноÑÑ‚ ще забави завършването на + отделното изграждане, но ще увеличи като цÑло производителноÑтта, + защото позволÑва на една задача да Ñе възползва от процеÑор, докато + друга завършва входно/изходна операциÑ. + +

      + Задаването на ÑтойноÑтта да е 0 позволÑва да изключите машината + от Jenkins, без да загубите други наÑтройки. +

      diff --git a/war/src/main/webapp/help/system-config/master-slave/usage_bg.html b/war/src/main/webapp/help/system-config/master-slave/usage_bg.html new file mode 100644 index 0000000000..04fe356ba8 --- /dev/null +++ b/war/src/main/webapp/help/system-config/master-slave/usage_bg.html @@ -0,0 +1,37 @@ +
      + ÐаÑтройки на планираните изгражданиÑта на тази машина от Jenkins + +
      +
      + Компютърът да Ñе използва макÑимално +
      +
      + Това е Ñтандартната ÑтойноÑÑ‚. +
      + Ð’ този режим Jenkins Ñвободно решава дали да използва компютъра. Когато + Ñе поÑви нужда от изграждане, което може да Ñе извърши от тази машина, + Jenkins ще Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°. +
      + +
      + Само задачи, чиито изрази Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚Ð¸ отговарÑÑ‚ на тази машина +
      +
      + Ð’ този режим Jenkins изгражда проект на този компютър, когато + проектът е ограничен Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚Ð¸ до определени машини, а този + компютър Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð½Ð° етикетите или ограничението по име. +

      + Това позволÑва заделÑнето на тази машина за определен вид задачи. + Ðапример, ако нÑкои задачи включват теÑтове за производителноÑÑ‚, + може да иÑкате те да Ñе изпълнÑват на определени, точно конфигурирани + машини, като на Ñ‚ÑÑ… не Ñе изпълнÑва нищо друго. Това Ñе поÑтига, + като ограничите задачите чрез израз Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚Ð¸, който напаÑва Ñ + тази машина. +
      + Допълнително, като зададете Ð±Ñ€Ð¾Ñ Ð½Ð° едновременните задачи да е + 1, оÑигурÑвате, че в даден момент Ñе изпълнÑва Ñамо една ÑÐµÑ€Ð¸Ñ + от теÑтовете за производителноÑÑ‚, така резултатите нÑма да Ñе повлиÑÑÑ‚ + от друга задача изпълнÑвана по това време. +

      +
      +
      diff --git a/war/src/main/webapp/help/system-config/nodeEnvironmentVariables_bg.html b/war/src/main/webapp/help/system-config/nodeEnvironmentVariables_bg.html new file mode 100644 index 0000000000..51ec7a8d1e --- /dev/null +++ b/war/src/main/webapp/help/system-config/nodeEnvironmentVariables_bg.html @@ -0,0 +1,29 @@ +
      + Променливите на Ñредата дефинирани тук ще Ñа доÑтъпни до вÑички Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ + изпълнени на този компютър и ще имат Ð¿Ñ€ÐµÐ²ÐµÑ Ð½Ð°Ð´ променливите на Ñредата ÑÑŠÑ + Ñъщото Име, които Ñа зададени в Ñтраницата ÐаÑтройки на ÑиÑтемата. +

      + Чрез изразите $NAME или ${NAME} + (%NAME% под Windows) ÑтойноÑтите на тези променливи може да Ñе + използват в наÑтройките на задачите за изграждане или процеÑите, които Ñе + Ñтартират от Ñ‚ÑÑ…. +

      + Jenkins поддържа и ÑÐ¿ÐµÑ†Ð¸Ð°Ð»Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñ BASE+EXTRA, който позволÑва + добавÑнето на множеÑтво двойки ключ-ÑтойноÑÑ‚, които Ñе добавÑÑ‚ пред ÑтойноÑтта + на ÑъщеÑтвуваща променлива на Ñредата. +

      + Ðапример, ако имате машина Ñ Ð¿ÑŠÑ‚ PATH=/usr/bin, можете да добавите + още директории, към него като дефинирате тук променлива на име + PATH+LOCAL_BIN, чието Ñъдържание е /usr/local/bin. +
      + Като резултат PATH=/usr/local/bin:/usr/bin ще е изнеÑена към + изгражданиÑта на машината. PATH+LOCAL_BIN=/usr/local/bin Ñъщо + ще бъде изнеÑена. +
      + Ðко има много променливи за добавÑне към оÑновната променлива, те Ñе добавÑÑ‚ + Ñпоред лекÑикографÑката подредба на имената им. +

      + Ðко ÑтойноÑтта е празен низ или низ Ñамо от празни знаци, Ñ‚Ñ Ð½Ñма да Ñе + добави към Ñредата, както и нÑма да предефинира или изтрива променлива на + Ñредата на машината. +

      diff --git a/war/src/main/webapp/help/system-config/patternJobNamingStrategy_bg.html b/war/src/main/webapp/help/system-config/patternJobNamingStrategy_bg.html new file mode 100644 index 0000000000..4614e19f9c --- /dev/null +++ b/war/src/main/webapp/help/system-config/patternJobNamingStrategy_bg.html @@ -0,0 +1,11 @@ +
      + РегулÑрен израз, който Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð´Ð°Ð»Ð¸ името на задача е валидно или не. +

      + Прилагането на проверката върху ÑъщеÑтвуващите задачи ви позволÑва да + приложите ÐºÐ¾Ð½Ð²ÐµÐ½Ñ†Ð¸Ñ Ð·Ð° именуването. Дори потребителÑÑ‚ да не Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ + името на задачата, то ще бъде проверÑвано при промÑна на наÑтройките. + Потребителите ще Ñ‚Ñ€Ñбва да го променÑÑ‚, за да напаÑва на шаблона, + преди да могат да запишат промени в наÑтройките.
      + Тази Ð¾Ð¿Ñ†Ð¸Ñ Ð½Ðµ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸ÐµÑ‚Ð¾ на задачи Ñ Ð½ÐµÐ½Ð°Ð¿Ð°Ñващи имена. + Ð¢Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ°Ñ‚Ð° при запазване на наÑтройките на задачите. +

      diff --git a/war/src/main/webapp/help/system-config/quietPeriod_bg.html b/war/src/main/webapp/help/system-config/quietPeriod_bg.html new file mode 100644 index 0000000000..497168cabc --- /dev/null +++ b/war/src/main/webapp/help/system-config/quietPeriod_bg.html @@ -0,0 +1,6 @@ +
      +

      + Когато е положителна ÑтойноÑÑ‚, наÑрочените Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ²Ð°Ñ‚ този брой Ñекунди, + преди да бъдат изградени. Това е полезно при работата ÑÑŠÑ CVS, за да Ñлеете множеÑтво + извеÑÑ‚Ð¸Ñ Ð¿Ð¾ е-пощата в едно. +

      diff --git a/war/src/main/webapp/help/system-config/systemMessage_bg.html b/war/src/main/webapp/help/system-config/systemMessage_bg.html new file mode 100644 index 0000000000..72f784e748 --- /dev/null +++ b/war/src/main/webapp/help/system-config/systemMessage_bg.html @@ -0,0 +1,7 @@ +
      + Това Ñъобщение ще Ñе показва в горната чаÑÑ‚ на + оÑновната Ñтраница на Jenkins. +

      + Това е полезно, когато иÑкате да извеÑтите вÑички потребители + за определено нещо. +

      diff --git a/war/src/main/webapp/help/tasks/fingerprint/keepDependencies_bg.html b/war/src/main/webapp/help/tasks/fingerprint/keepDependencies_bg.html new file mode 100644 index 0000000000..1b8dfec218 --- /dev/null +++ b/war/src/main/webapp/help/tasks/fingerprint/keepDependencies_bg.html @@ -0,0 +1,18 @@ +
      + Когато опциÑта е избрана, вÑички + реферирани Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‚ изграждането на този проект (чрез цифрови + отпечатъци) нÑма да бъдат заÑегнати от редовната ÑмÑна на журналните + файлове. + +

      + Когато едно изграждане завиÑи от други в Jenkins и от време на време Ñ‚Ñ€Ñбва + да задавате етикет на ÑÑŠÑтоÑнието на работното проÑтранÑтво, е много удобно + да зададете етикета и на вÑички завиÑимоÑти в Jenkins. Проблем възниква, + когато ÑмÑната на журналните файлове Ñе е Ñлучила между момента на изграждането + и момента на задаване на етикет. Ð’ такъв Ñлучай е невъзможно да дадете етикета + и на вÑички завиÑимоÑти. + +

      + Тази наÑтройка предотвратÑва това като „заключва“ изгражданиÑта, от които това + завиÑи и задаването на етикет е винаги възможно. +

      diff --git a/war/src/main/webapp/help/tools/help-label_bg.html b/war/src/main/webapp/help/tools/help-label_bg.html new file mode 100644 index 0000000000..6cdb02e4a0 --- /dev/null +++ b/war/src/main/webapp/help/tools/help-label_bg.html @@ -0,0 +1,6 @@ +
      + Ðезадължителен етикет, който да ограничи използването на този метод на инÑталиране. + Този етикет може да е и израз Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚Ð¸ (например : „linux&&x64“ или „windows&&x86“). + Методът на инÑталиране ще е позволен Ñамо за компютрите, които отговарÑÑ‚ на етикета + или Ñ†ÐµÐ»Ð¸Ñ Ð¸Ð·Ñ€Ð°Ð·. +
      diff --git a/war/src/main/webapp/help/tools/tool-location-node-property_bg.html b/war/src/main/webapp/help/tools/tool-location-node-property_bg.html new file mode 100644 index 0000000000..b4728507b8 --- /dev/null +++ b/war/src/main/webapp/help/tools/tool-location-node-property_bg.html @@ -0,0 +1,5 @@ +
      + Тук може да укажете Ñпецифични меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° определени програми на този компютър, като + тези ÑтойноÑти Ñа Ñ Ð¿Ñ€Ð¸Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚ над глобалните. (Може да предпочитате да използвате автоматични + инÑталатори, което премахва нуждата вÑеки компютър да Ñе наÑтройва поотделно.) +
      diff --git a/war/src/main/webapp/help/user/description_bg.html b/war/src/main/webapp/help/user/description_bg.html new file mode 100644 index 0000000000..8809050411 --- /dev/null +++ b/war/src/main/webapp/help/user/description_bg.html @@ -0,0 +1,5 @@ +
      + Това опиÑание Ñтои отгоре на вашата Ñтраница като потребител, така че другите потребители + да знаÑÑ‚ кой Ñте. Може да използвате HTML или друг език Ñ Ð¼Ð°Ñ€ÐºÐ¸Ñ€Ð°Ð½Ðµ, Ñтига да е наÑтроен. + Добре е да поÑтавите връзки към други Ñтраници, които ви опиÑват. +
      diff --git a/war/src/main/webapp/help/user/fullName_bg.html b/war/src/main/webapp/help/user/fullName_bg.html new file mode 100644 index 0000000000..960b93e8ac --- /dev/null +++ b/war/src/main/webapp/help/user/fullName_bg.html @@ -0,0 +1,4 @@ +
      + Указване на име вмеÑто идентификатор, Ñ ÐºÐ¾ÐµÑ‚Ð¾ хората да ви разпознават + по-леÑно. „Иван Петров“ е по-разбираемо от „ip2873“. +
      diff --git a/war/src/main/webapp/help/view-config/description_bg.html b/war/src/main/webapp/help/view-config/description_bg.html new file mode 100644 index 0000000000..0460fb2c82 --- /dev/null +++ b/war/src/main/webapp/help/view-config/description_bg.html @@ -0,0 +1,7 @@ +
      + Това Ñъобщение ще Ñе показва на Ñтраницата за изгледа. + Това е удобно да обÑÑните за какво Ñлужи изгледа или да дадете подходÑщи + връзки към полезни реÑурÑи. + Може да Ñъдържа форматиране чрез етикети на HTML или произволен маркиращ + език, който Ñе поддържа от Jenkins. +
      diff --git a/war/src/main/webapp/help/view-config/filter-executors_bg.html b/war/src/main/webapp/help/view-config/filter-executors_bg.html new file mode 100644 index 0000000000..9d46b8c6b5 --- /dev/null +++ b/war/src/main/webapp/help/view-config/filter-executors_bg.html @@ -0,0 +1,4 @@ +
      + Когато е избрано, ще Ñе показват Ñамо компютрите, които могат да + изпълнÑват задачите в този изглед. +
      diff --git a/war/src/main/webapp/help/view-config/filter-queue_bg.html b/war/src/main/webapp/help/view-config/filter-queue_bg.html new file mode 100644 index 0000000000..eae7132ab4 --- /dev/null +++ b/war/src/main/webapp/help/view-config/filter-queue_bg.html @@ -0,0 +1,4 @@ +
      + Когато е избрано, ще Ñе показват Ñамо тези задачи в опашката, + които Ñа Ñъщо и в изгледа. +
      diff --git a/war/src/main/webapp/help/view-config/includeregex_bg.html b/war/src/main/webapp/help/view-config/includeregex_bg.html new file mode 100644 index 0000000000..987e558d5b --- /dev/null +++ b/war/src/main/webapp/help/view-config/includeregex_bg.html @@ -0,0 +1,8 @@ +
      + Ðко е зададен, регулÑрниÑÑ‚ израз ще Ñе прилага към имената на вÑички + задачи. Имената, които напаÑват на шаблона, ще Ñе извеждат в този + изглед. Съвет: за да преÑкачате определени низове, използвайте + отрицателно Ñ‚ÑŠÑ€Ñене напред. Ðапример, за да покажете вÑички задачи, + които не Ñе казват теÑтнещо_Ñи, ползвайте: + (?!теÑÑ‚.*).* +
      diff --git a/war/src/main/webapp/help/view-config/statusFilter_bg.html b/war/src/main/webapp/help/view-config/statusFilter_bg.html new file mode 100644 index 0000000000..25e47d3fbb --- /dev/null +++ b/war/src/main/webapp/help/view-config/statusFilter_bg.html @@ -0,0 +1,3 @@ +
      + Филтриране на задачите на базата на това дали Ñа включени или не. +
      diff --git a/war/src/test/js/widgets/config/freestyle-config-scrollspy_bg.html b/war/src/test/js/widgets/config/freestyle-config-scrollspy_bg.html new file mode 100644 index 0000000000..233e8d337c --- /dev/null +++ b/war/src/test/js/widgets/config/freestyle-config-scrollspy_bg.html @@ -0,0 +1,169 @@ +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Име на проект + + +
      + + +
      +
      Зареждане…
      +
      СтратегиÑ
      +
      #oДопълнителни наÑтройки на проекта
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + +
      Тих период
      Секунди
      Опити за изтеглÑне от ÑиÑтемата за контрол на верÑиите
      + + +
      + +
      + + +
      ДиректориÑ
      Показвано име
      + +
      +
      +
      #Ðвтоматично изпълнÑвани дейÑÑ‚Ð²Ð¸Ñ Ð¿Ñ€Ð¸ изграждане
      +
      + + + +
      +
      #Изграждане
      +
      +
      +
      +
      +
      + +
      +
      +
      + +
      diff --git a/war/src/test/js/widgets/config/freestyle-config-tabbed_bg.html b/war/src/test/js/widgets/config/freestyle-config-tabbed_bg.html new file mode 100644 index 0000000000..9d5c3c8d79 --- /dev/null +++ b/war/src/test/js/widgets/config/freestyle-config-tabbed_bg.html @@ -0,0 +1,163 @@ +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Име на проект + + +
      + + +
      +
      Зареждане…
      +
      СтратегиÑ
      +
      #Допълнителни наÑтройки на проекта
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + +
      Тих период
      Секунди
      Опити за изтеглÑне от ÑиÑтемата за контрол на верÑиите
      + + +
      + +
      + + +
      ДиректориÑ
      Показвано име
      + +
      +
      +
      #Ðвтоматично изпълнÑвани дейÑÑ‚Ð²Ð¸Ñ Ð¿Ñ€Ð¸ изграждане
      +
      + + + +
      +
      #Изграждане
      +
      +
      +
      +
      +
      + +
      +
      +
      +
      -- GitLab From 5fcccf79faad6f607d277b434ef322e0495867bb Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 Aug 2017 07:44:04 -0700 Subject: [PATCH 0143/1763] [maven-release-plugin] prepare release jenkins-2.75 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index b98eaaa433..0258e4bde5 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.75-SNAPSHOT + 2.75 cli diff --git a/core/pom.xml b/core/pom.xml index 3fcc54e1d6..187a34af55 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.75-SNAPSHOT + 2.75 jenkins-core diff --git a/pom.xml b/pom.xml index 7488ff1f29..9f0f52a776 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.75-SNAPSHOT + 2.75 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.75 diff --git a/test/pom.xml b/test/pom.xml index 9d12833b20..d2d05df3b5 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.75-SNAPSHOT + 2.75 test diff --git a/war/pom.xml b/war/pom.xml index 4203816bd0..6ae03d4122 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.75-SNAPSHOT + 2.75 jenkins-war -- GitLab From 8c580ddd866a86b9143f57f96dc6be6ef9d10cb4 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 Aug 2017 07:44:04 -0700 Subject: [PATCH 0144/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index 0258e4bde5..a8d38aa350 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.75 + 2.76-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 187a34af55..04e5c819a4 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.75 + 2.76-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index 9f0f52a776..063a3a11bb 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.75 + 2.76-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.75 + HEAD diff --git a/test/pom.xml b/test/pom.xml index d2d05df3b5..d68cad1116 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.75 + 2.76-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 6ae03d4122..a9812aba46 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.75 + 2.76-SNAPSHOT jenkins-war -- GitLab From c60735a1242b8b06817c2fd0feeb9dc868750948 Mon Sep 17 00:00:00 2001 From: Akbashev Alexander Date: Tue, 22 Aug 2017 10:33:10 +0200 Subject: [PATCH 0145/1763] [JENKINS-29537] EnvironmentContributingAction compatible with Workflow (#2975) * [JENKINS-29537] EnvironmentContributingAction compatible with Workflow + Adds new method with default implementation in EnvironmentContributingAction to support Runs + Marks AbstractBuild as deprecated + Adds default implementation for deprecated method for backward compatiblity. * Tiny improvements in javadoc --- .../main/java/hudson/model/AbstractBuild.java | 2 +- .../model/EnvironmentContributingAction.java | 37 +++- .../java/hudson/model/ParametersAction.java | 5 +- core/src/main/java/hudson/model/Run.java | 3 + .../EnvironmentContributingActionTest.java | 159 ++++++++++++++++++ .../hudson/model/ParametersActionTest.java | 2 +- 6 files changed, 203 insertions(+), 5 deletions(-) create mode 100644 core/src/test/java/hudson/model/EnvironmentContributingActionTest.java diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java index c8674fb028..2b7775c304 100644 --- a/core/src/main/java/hudson/model/AbstractBuild.java +++ b/core/src/main/java/hudson/model/AbstractBuild.java @@ -887,7 +887,7 @@ public abstract class AbstractBuild

      ,R extends Abs e.buildEnvVars(env); for (EnvironmentContributingAction a : getActions(EnvironmentContributingAction.class)) - a.buildEnvVars(this,env); + a.buildEnvVars(this,env,getBuiltOn()); EnvVars.resolve(env); diff --git a/core/src/main/java/hudson/model/EnvironmentContributingAction.java b/core/src/main/java/hudson/model/EnvironmentContributingAction.java index 761ed8ae97..55f5035965 100644 --- a/core/src/main/java/hudson/model/EnvironmentContributingAction.java +++ b/core/src/main/java/hudson/model/EnvironmentContributingAction.java @@ -24,9 +24,15 @@ package hudson.model; import hudson.EnvVars; +import hudson.Util; import hudson.model.Queue.Task; import hudson.tasks.Builder; import hudson.tasks.BuildWrapper; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.ProtectedExternally; + +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; /** * {@link Action} that contributes environment variables during a build. @@ -44,13 +50,42 @@ import hudson.tasks.BuildWrapper; * @see BuildWrapper */ public interface EnvironmentContributingAction extends Action { + /** + * Called by {@link Run} or {@link AbstractBuild} to allow plugins to contribute environment variables. + * + * @param run + * The calling build. Never null. + * @param node + * The node execute on. Can be {@code null} when the Run is not binded to the node, + * e.g. in Pipeline outside the {@code node() step} + * @param env + * Environment variables should be added to this map. + * @since TODO + */ + default void buildEnvVars(@Nonnull Run run, @Nonnull EnvVars env, @CheckForNull Node node) { + if (run instanceof AbstractBuild + && Util.isOverridden(EnvironmentContributingAction.class, + getClass(), "buildEnvVars", AbstractBuild.class, EnvVars.class)) { + buildEnvVars((AbstractBuild) run, env); + } + } + /** * Called by {@link AbstractBuild} to allow plugins to contribute environment variables. * + * @deprecated Use {@link #buildEnvVars(Run, EnvVars, Node)} instead + * * @param build * The calling build. Never null. * @param env * Environment variables should be added to this map. */ - void buildEnvVars(AbstractBuild build, EnvVars env); + @Deprecated + @Restricted(ProtectedExternally.class) + default void buildEnvVars(AbstractBuild build, EnvVars env) { + if (Util.isOverridden(EnvironmentContributingAction.class, + getClass(), "buildEnvVars", Run.class, EnvVars.class, Node.class)) { + buildEnvVars(build, env, build.getBuiltOn()); + } + } } diff --git a/core/src/main/java/hudson/model/ParametersAction.java b/core/src/main/java/hudson/model/ParametersAction.java index 6f7ecca9f8..86e687b17f 100644 --- a/core/src/main/java/hudson/model/ParametersAction.java +++ b/core/src/main/java/hudson/model/ParametersAction.java @@ -138,10 +138,11 @@ public class ParametersAction implements RunAction2, Iterable, Q } } - public void buildEnvVars(AbstractBuild build, EnvVars env) { + @Override + public void buildEnvVars(Run run, EnvVars env, Node node) { for (ParameterValue p : getParameters()) { if (p == null) continue; - p.buildEnvironment(build, env); + p.buildEnvironment(run, env); } } diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index c467439347..46970882a2 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -2301,6 +2301,9 @@ public abstract class Run ,RunT extends Run run, EnvVars env, @CheckForNull Node node) { + wasCalled = true; + } + + boolean wasNewMethodCalled() { + return wasCalled; + } + } + + class OverrideAbstractBuild extends InvisibleAction implements EnvironmentContributingAction { + private boolean wasCalled = false; + + @Override + @SuppressWarnings("deprecation") + public void buildEnvVars(AbstractBuild abstractBuild, EnvVars envVars) { + wasCalled = true; + } + + boolean wasDeprecatedMethodCalled() { + return wasCalled; + } + } + + class OverrideBoth extends InvisibleAction implements EnvironmentContributingAction { + private boolean wasCalledAstractBuild = false; + private boolean wasCalledRun = false; + + @SuppressWarnings("deprecation") + @Override + public void buildEnvVars(AbstractBuild abstractBuild, EnvVars envVars) { + wasCalledAstractBuild = true; + } + + @Override + public void buildEnvVars(Run run, EnvVars env, @CheckForNull Node node) { + wasCalledRun = true; + } + + boolean wasDeprecatedMethodCalled() { + return wasCalledAstractBuild; + } + + boolean wasRunCalled() { + return wasCalledRun; + } + } + + private final EnvVars envVars = mock(EnvVars.class); + + @Test + public void testOverrideRunMethodAndCallNewMethod() throws Exception { + Run run = mock(Run.class); + Node node = mock(Node.class); + + OverrideRun overrideRun = new OverrideRun(); + overrideRun.buildEnvVars(run, envVars, node); + + assertTrue(overrideRun.wasNewMethodCalled()); + } + + /** + * If only non-deprecated method was overridden it would be executed even if someone would call deprecated method. + * @throws Exception if happens. + */ + @Test + @SuppressWarnings("deprecation") + public void testOverrideRunMethodAndCallDeprecatedMethod() throws Exception { + AbstractBuild abstractBuild = mock(AbstractBuild.class); + when(abstractBuild.getBuiltOn()).thenReturn(mock(Node.class)); + + OverrideRun overrideRun = new OverrideRun(); + overrideRun.buildEnvVars(abstractBuild, envVars); + + assertTrue(overrideRun.wasNewMethodCalled()); + } + + /** + * {@link AbstractBuild} should work as before. + * @throws Exception if happens. + */ + @Test + public void testOverrideAbstractBuildAndCallNewMethodWithAbstractBuild() throws Exception { + AbstractBuild abstractBuild = mock(AbstractBuild.class); + Node node = mock(Node.class); + + OverrideAbstractBuild action = new OverrideAbstractBuild(); + action.buildEnvVars(abstractBuild, envVars, node); + + assertTrue(action.wasDeprecatedMethodCalled()); + } + + /** + * {@link Run} should not execute method that was overridden for {@link AbstractBuild}. + * @throws Exception if happens. + */ + @Test + public void testOverrideAbstractBuildAndCallNewMethodWithRun() throws Exception { + Run run = mock(Run.class); + Node node = mock(Node.class); + + OverrideAbstractBuild action = new OverrideAbstractBuild(); + action.buildEnvVars(run, envVars, node); + + assertFalse(action.wasDeprecatedMethodCalled()); + } + + /** + * If someone wants to use overridden deprecated method, it would still work. + * @throws Exception if happens. + */ + @Test + public void testOverrideAbstractBuildAndCallDeprecatedMethod() throws Exception { + AbstractBuild abstractBuild = mock(AbstractBuild.class); + + OverrideAbstractBuild overrideRun = new OverrideAbstractBuild(); + overrideRun.buildEnvVars(abstractBuild, envVars); + + assertTrue(overrideRun.wasDeprecatedMethodCalled()); + } + + @Test + public void testOverrideBothAndCallNewMethod() throws Exception { + Run run = mock(Run.class); + Node node = mock(Node.class); + + OverrideBoth overrideRun = new OverrideBoth(); + overrideRun.buildEnvVars(run, envVars, node); + + assertTrue(overrideRun.wasRunCalled()); + } + + @Test + public void testOverrideBothAndCallDeprecatedMethod() throws Exception { + AbstractBuild abstractBuild = mock(AbstractBuild.class); + + OverrideBoth overrideRun = new OverrideBoth(); + overrideRun.buildEnvVars(abstractBuild, envVars); + + assertTrue(overrideRun.wasDeprecatedMethodCalled()); + } +} \ No newline at end of file diff --git a/core/src/test/java/hudson/model/ParametersActionTest.java b/core/src/test/java/hudson/model/ParametersActionTest.java index d9b6e63e69..182ead6ec1 100644 --- a/core/src/test/java/hudson/model/ParametersActionTest.java +++ b/core/src/test/java/hudson/model/ParametersActionTest.java @@ -105,7 +105,7 @@ public class ParametersActionTest { // Interaction with build EnvVars vars = new EnvVars(); - parametersAction.buildEnvVars(build, vars); + parametersAction.buildEnvVars(build, vars, build.getBuiltOn()); assertEquals(2, vars.size()); parametersAction.createVariableResolver(build); -- GitLab From c01a597f4790ce6962b21bd3ce057b07df68c82f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Wed, 23 Aug 2017 12:54:59 +0200 Subject: [PATCH 0146/1763] Towards 2.73.1 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index fbd4e27dd2..842f536da2 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.73 + 2.73.1-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index 2cf8a6debd..1b4c11e152 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73 + 2.73.1-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index e4631ebaa8..740a6ec5a6 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73 + 2.73.1-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.73 + HEAD diff --git a/test/pom.xml b/test/pom.xml index 34b13bf24f..2561b1eb61 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73 + 2.73.1-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index e02ef837ff..e1e4872633 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.73 + 2.73.1-SNAPSHOT jenkins-war -- GitLab From 9a8fdb9ac32702552f156d2898dffe2e67402c46 Mon Sep 17 00:00:00 2001 From: Josiah Haswell Date: Sat, 12 Aug 2017 16:53:41 -0600 Subject: [PATCH 0147/1763] [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973) * Saving progress for review * Adding licenses * Adding integration test for headers * Removing proposal for refactoring to method objects * Removing whitespace changeswq * Fixing test (cherry picked from commit 34bf393255bb603bb3b0fb921a41fc3916d16f42) --- core/src/main/java/hudson/model/View.java | 4 +++ test/src/test/java/hudson/model/ViewTest.java | 25 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index 375087c2da..f19ab9a605 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -1053,6 +1053,10 @@ public abstract class View extends AbstractModelObject implements AccessControll */ @Restricted(DoNotUse.class) public Categories doItemCategories(StaplerRequest req, StaplerResponse rsp, @QueryParameter String iconStyle) throws IOException, ServletException { + + rsp.addHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + rsp.addHeader("Pragma", "no-cache"); + rsp.addHeader("Expires", "0"); getOwner().checkPermission(Item.CREATE); Categories categories = new Categories(); int order = 0; diff --git a/test/src/test/java/hudson/model/ViewTest.java b/test/src/test/java/hudson/model/ViewTest.java index 56f99abdf0..7a70d87df2 100644 --- a/test/src/test/java/hudson/model/ViewTest.java +++ b/test/src/test/java/hudson/model/ViewTest.java @@ -25,6 +25,7 @@ package hudson.model; import com.gargoylesoftware.htmlunit.WebRequest; import com.gargoylesoftware.htmlunit.html.DomNodeUtil; +import com.gargoylesoftware.htmlunit.util.NameValuePair; import jenkins.model.Jenkins; import org.jvnet.hudson.test.Issue; import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; @@ -53,11 +54,15 @@ import hudson.util.HudsonIsLoading; import java.io.File; import java.io.IOException; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.LogRecord; import jenkins.model.ProjectNamingStrategy; import jenkins.security.NotReallyRoleSensitiveCallable; + +import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.*; import org.junit.Ignore; import org.junit.Rule; @@ -85,6 +90,26 @@ public class ViewTest { assertNotNull(j.createWebClient().goTo("").getWebResponse().getResponseHeaderValue("X-Hudson")); } + @Issue("JENKINS-43848") + @Test public void testNoCacheHeadersAreSet() throws Exception { + List responseHeaders = j.createWebClient() + .goTo("view/all/itemCategories", "application/json") + .getWebResponse() + .getResponseHeaders(); + + + final Map values = new HashMap<>(); + + for(NameValuePair p : responseHeaders) { + values.put(p.getName(), p.getValue()); + } + + String resp = values.get("Cache-Control"); + assertThat(resp, is("no-cache, no-store, must-revalidate")); + assertThat(values.get("Expires"), is("0")); + assertThat(values.get("Pragma"), is("no-cache")); + } + /** * Creating two views with the same name. */ -- GitLab From 4d2100d0845fc4de5c51105660e4be23fb16e868 Mon Sep 17 00:00:00 2001 From: godfath3r Date: Sat, 12 Aug 2017 13:24:32 +0300 Subject: [PATCH 0148/1763] [JENKINS-42376] - Add executor name on Unexpected exception. (#2970) * Add executor name on Unexpected exception. * Add a colon after job name (cherry picked from commit 86c28ea056236ee9125af7cc85b256cb65643a2f) --- core/src/main/java/hudson/model/Executor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/Executor.java b/core/src/main/java/hudson/model/Executor.java index 279a1fa762..a9b428ffba 100644 --- a/core/src/main/java/hudson/model/Executor.java +++ b/core/src/main/java/hudson/model/Executor.java @@ -444,7 +444,7 @@ public class Executor extends Thread implements ModelObject { LOGGER.log(FINE, getName()+" interrupted",e); // die peacefully } catch(Exception | Error e) { - LOGGER.log(SEVERE, "Unexpected executor death", e); + LOGGER.log(SEVERE, getName()+": Unexpected executor death", e); } finally { if (asynchronousExecution == null) { finish2(); -- GitLab From 12a949ea01fd4d03d7626de6c95afc828f79ac18 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Fri, 25 Aug 2017 16:04:09 +0200 Subject: [PATCH 0149/1763] Update to Jenkins Parent POM 1.38 (#2985) * Update to Jenkins Parent POM 1.39 * Pick the released version of Jenkins POM --- pom.xml | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/pom.xml b/pom.xml index 063a3a11bb..27c6c9cc8d 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci jenkins - 1.36 + 1.38 org.jenkins-ci.main @@ -94,7 +94,6 @@ THE SOFTWARE. ${skipTests} 3.0.4 true - 1.2 1.11 ${access-modifier.version} ${access-modifier.version} @@ -239,14 +238,12 @@ THE SOFTWARE. org.codehaus.mojo animal-sniffer-annotations - 1.9 provided true org.jenkins-ci test-annotations - ${test-annotations.version} test @@ -680,25 +677,6 @@ THE SOFTWARE. org.apache.maven.plugins maven-enforcer-plugin - - - enforce - - - - - 1.8.0 - - - 3.0 - - - 1.${java.level} - - - - - enforce-banned-dependencies @@ -719,13 +697,7 @@ THE SOFTWARE. - - - org.codehaus.mojo - extra-enforcer-rules - 1.0-beta-6 - - + -- GitLab From b3e2ed8a37531d65e32d45070aaaae450e8af543 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Fri, 25 Aug 2017 14:28:24 -0400 Subject: [PATCH 0150/1763] [JENKINS-29537] Merged #2993: amended EnvironmentContributingAction signature. --- .../main/java/hudson/model/AbstractBuild.java | 2 +- .../model/EnvironmentContributingAction.java | 18 +++++++----------- .../java/hudson/model/ParametersAction.java | 2 +- core/src/main/java/hudson/model/Run.java | 7 +++++-- .../EnvironmentContributingActionTest.java | 16 ++++++---------- .../hudson/model/ParametersActionTest.java | 2 +- .../EnvironmentVariableNodePropertyTest.java | 2 +- 7 files changed, 22 insertions(+), 27 deletions(-) diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java index 2b7775c304..c8674fb028 100644 --- a/core/src/main/java/hudson/model/AbstractBuild.java +++ b/core/src/main/java/hudson/model/AbstractBuild.java @@ -887,7 +887,7 @@ public abstract class AbstractBuild

      ,R extends Abs e.buildEnvVars(env); for (EnvironmentContributingAction a : getActions(EnvironmentContributingAction.class)) - a.buildEnvVars(this,env,getBuiltOn()); + a.buildEnvVars(this,env); EnvVars.resolve(env); diff --git a/core/src/main/java/hudson/model/EnvironmentContributingAction.java b/core/src/main/java/hudson/model/EnvironmentContributingAction.java index 55f5035965..03ad23fb35 100644 --- a/core/src/main/java/hudson/model/EnvironmentContributingAction.java +++ b/core/src/main/java/hudson/model/EnvironmentContributingAction.java @@ -31,7 +31,6 @@ import hudson.tasks.BuildWrapper; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.ProtectedExternally; -import javax.annotation.CheckForNull; import javax.annotation.Nonnull; /** @@ -46,23 +45,20 @@ import javax.annotation.Nonnull; * * @author Kohsuke Kawaguchi * @since 1.318 - * @see AbstractBuild#getEnvironment(TaskListener) + * @see Run#getEnvironment(TaskListener) * @see BuildWrapper */ public interface EnvironmentContributingAction extends Action { /** - * Called by {@link Run} or {@link AbstractBuild} to allow plugins to contribute environment variables. + * Called by {@link Run} to allow plugins to contribute environment variables. * * @param run * The calling build. Never null. - * @param node - * The node execute on. Can be {@code null} when the Run is not binded to the node, - * e.g. in Pipeline outside the {@code node() step} * @param env * Environment variables should be added to this map. - * @since TODO + * @since 2.76 */ - default void buildEnvVars(@Nonnull Run run, @Nonnull EnvVars env, @CheckForNull Node node) { + default void buildEnvironment(@Nonnull Run run, @Nonnull EnvVars env) { if (run instanceof AbstractBuild && Util.isOverridden(EnvironmentContributingAction.class, getClass(), "buildEnvVars", AbstractBuild.class, EnvVars.class)) { @@ -73,7 +69,7 @@ public interface EnvironmentContributingAction extends Action { /** * Called by {@link AbstractBuild} to allow plugins to contribute environment variables. * - * @deprecated Use {@link #buildEnvVars(Run, EnvVars, Node)} instead + * @deprecated Use {@link #buildEnvironment} instead * * @param build * The calling build. Never null. @@ -84,8 +80,8 @@ public interface EnvironmentContributingAction extends Action { @Restricted(ProtectedExternally.class) default void buildEnvVars(AbstractBuild build, EnvVars env) { if (Util.isOverridden(EnvironmentContributingAction.class, - getClass(), "buildEnvVars", Run.class, EnvVars.class, Node.class)) { - buildEnvVars(build, env, build.getBuiltOn()); + getClass(), "buildEnvironment", Run.class, EnvVars.class)) { + buildEnvironment(build, env); } } } diff --git a/core/src/main/java/hudson/model/ParametersAction.java b/core/src/main/java/hudson/model/ParametersAction.java index 86e687b17f..60db6822d7 100644 --- a/core/src/main/java/hudson/model/ParametersAction.java +++ b/core/src/main/java/hudson/model/ParametersAction.java @@ -139,7 +139,7 @@ public class ParametersAction implements RunAction2, Iterable, Q } @Override - public void buildEnvVars(Run run, EnvVars env, Node node) { + public void buildEnvironment(Run run, EnvVars env) { for (ParameterValue p : getParameters()) { if (p == null) continue; p.buildEnvironment(run, env); diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 46970882a2..9d9b7f4cd2 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -2301,8 +2301,11 @@ public abstract class Run ,RunT extends Run run, EnvVars env, @CheckForNull Node node) { + public void buildEnvironment(Run run, EnvVars env) { wasCalled = true; } @@ -50,7 +49,7 @@ public class EnvironmentContributingActionTest { } @Override - public void buildEnvVars(Run run, EnvVars env, @CheckForNull Node node) { + public void buildEnvironment(Run run, EnvVars env) { wasCalledRun = true; } @@ -71,7 +70,7 @@ public class EnvironmentContributingActionTest { Node node = mock(Node.class); OverrideRun overrideRun = new OverrideRun(); - overrideRun.buildEnvVars(run, envVars, node); + overrideRun.buildEnvironment(run, envVars); assertTrue(overrideRun.wasNewMethodCalled()); } @@ -99,10 +98,9 @@ public class EnvironmentContributingActionTest { @Test public void testOverrideAbstractBuildAndCallNewMethodWithAbstractBuild() throws Exception { AbstractBuild abstractBuild = mock(AbstractBuild.class); - Node node = mock(Node.class); OverrideAbstractBuild action = new OverrideAbstractBuild(); - action.buildEnvVars(abstractBuild, envVars, node); + action.buildEnvironment(abstractBuild, envVars); assertTrue(action.wasDeprecatedMethodCalled()); } @@ -114,10 +112,9 @@ public class EnvironmentContributingActionTest { @Test public void testOverrideAbstractBuildAndCallNewMethodWithRun() throws Exception { Run run = mock(Run.class); - Node node = mock(Node.class); OverrideAbstractBuild action = new OverrideAbstractBuild(); - action.buildEnvVars(run, envVars, node); + action.buildEnvironment(run, envVars); assertFalse(action.wasDeprecatedMethodCalled()); } @@ -139,10 +136,9 @@ public class EnvironmentContributingActionTest { @Test public void testOverrideBothAndCallNewMethod() throws Exception { Run run = mock(Run.class); - Node node = mock(Node.class); OverrideBoth overrideRun = new OverrideBoth(); - overrideRun.buildEnvVars(run, envVars, node); + overrideRun.buildEnvironment(run, envVars); assertTrue(overrideRun.wasRunCalled()); } diff --git a/core/src/test/java/hudson/model/ParametersActionTest.java b/core/src/test/java/hudson/model/ParametersActionTest.java index 182ead6ec1..6f7321ed19 100644 --- a/core/src/test/java/hudson/model/ParametersActionTest.java +++ b/core/src/test/java/hudson/model/ParametersActionTest.java @@ -105,7 +105,7 @@ public class ParametersActionTest { // Interaction with build EnvVars vars = new EnvVars(); - parametersAction.buildEnvVars(build, vars, build.getBuiltOn()); + parametersAction.buildEnvironment(build, vars); assertEquals(2, vars.size()); parametersAction.createVariableResolver(build); diff --git a/test/src/test/java/hudson/slaves/EnvironmentVariableNodePropertyTest.java b/test/src/test/java/hudson/slaves/EnvironmentVariableNodePropertyTest.java index b1a989ead9..e2ab922e8d 100644 --- a/test/src/test/java/hudson/slaves/EnvironmentVariableNodePropertyTest.java +++ b/test/src/test/java/hudson/slaves/EnvironmentVariableNodePropertyTest.java @@ -155,7 +155,7 @@ public class EnvironmentVariableNodePropertyTest extends HudsonTestCase { // use a timeout so we don't wait infinitely in case of failure FreeStyleBuild build = project.scheduleBuild2(0).get(/*10, TimeUnit.SECONDS*/); - System.out.println(build.getLog()); + System.out.println(build.getLog()); // TODO switch to BuildWatcher when converted to JenkinsRule assertEquals(Result.SUCCESS, build.getResult()); return builder.getEnvVars(); -- GitLab From dc8000cc1e36399595883858c3aae8f135177d49 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Fri, 25 Aug 2017 22:34:27 +0200 Subject: [PATCH 0151/1763] Upgrade Remoting to 3.11 (#2988) * Use ClassFilter.appendDefaultFilter. * FindBugs * Update Jenkins Remoting to 3.11, fix reported FindBugs issues --- .../java/hudson/slaves/SlaveComputer.java | 6 +++++ core/src/main/java/jenkins/model/Jenkins.java | 25 +++---------------- pom.xml | 2 +- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/core/src/main/java/hudson/slaves/SlaveComputer.java b/core/src/main/java/hudson/slaves/SlaveComputer.java index a1ed233278..73fe5e17f6 100644 --- a/core/src/main/java/hudson/slaves/SlaveComputer.java +++ b/core/src/main/java/hudson/slaves/SlaveComputer.java @@ -454,6 +454,9 @@ public class SlaveComputer extends Computer { } @Override public Integer call() { Channel c = Channel.current(); + if (c == null) { + return -1; + } return resource ? c.resourceLoadingCount.get() : c.classLoadingCount.get(); } } @@ -471,6 +474,9 @@ public class SlaveComputer extends Computer { } @Override public Long call() { Channel c = Channel.current(); + if (c == null) { + return Long.valueOf(-1); + } return resource ? c.resourceLoadingTime.get() : c.classLoadingTime.get(); } } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index f6a3d8386f..3719203219 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -251,7 +251,6 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; -import java.lang.reflect.Field; import java.net.BindException; import java.net.HttpURLConnection; import java.net.URL; @@ -903,26 +902,10 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve adjuncts = new AdjunctManager(servletContext, pluginManager.uberClassLoader,"adjuncts/"+SESSION_HASH, TimeUnit2.DAYS.toMillis(365)); - // TODO pending move to standard blacklist, or API to append filter - if (System.getProperty(ClassFilter.FILE_OVERRIDE_LOCATION_PROPERTY) == null) { // not using SystemProperties since ClassFilter does not either - try { - Field blacklistPatternsF = ClassFilter.DEFAULT.getClass().getDeclaredField("blacklistPatterns"); - blacklistPatternsF.setAccessible(true); - Object[] blacklistPatternsA = (Object[]) blacklistPatternsF.get(ClassFilter.DEFAULT); - boolean found = false; - for (int i = 0; i < blacklistPatternsA.length; i++) { - if (blacklistPatternsA[i] instanceof Pattern) { - blacklistPatternsA[i] = Pattern.compile("(" + blacklistPatternsA[i] + ")|(java[.]security[.]SignedObject)"); - found = true; - break; - } - } - if (!found) { - throw new Error("no Pattern found among " + Arrays.toString(blacklistPatternsA)); - } - } catch (NoSuchFieldException | IllegalAccessException x) { - throw new Error("Unexpected ClassFilter implementation in bundled remoting.jar: " + x, x); - } + try { + ClassFilter.appendDefaultFilter(Pattern.compile("java[.]security[.]SignedObject")); // TODO move to standard blacklist + } catch (ClassFilter.ClassFilterException ex) { + throw new IOException("Remoting library rejected the java[.]security[.]SignedObject blacklist pattern", ex); } // initialization consists of ... diff --git a/pom.xml b/pom.xml index 27c6c9cc8d..11eb771118 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ THE SOFTWARE. org.jenkins-ci.main remoting - 3.10 + 3.11 -- GitLab From 7b8ddc1973e6a986917c76f30d982d7e4c95b72f Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sun, 27 Aug 2017 17:56:12 -0700 Subject: [PATCH 0152/1763] [maven-release-plugin] prepare release jenkins-2.76 --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index a8d38aa350..eac6dbba23 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.76-SNAPSHOT + 2.76 cli diff --git a/core/pom.xml b/core/pom.xml index 04e5c819a4..e348389f57 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.76-SNAPSHOT + 2.76 jenkins-core diff --git a/pom.xml b/pom.xml index 11eb771118..f2c7d0a16d 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.76-SNAPSHOT + 2.76 pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - HEAD + jenkins-2.76 diff --git a/test/pom.xml b/test/pom.xml index d68cad1116..e30ba4ea1d 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.76-SNAPSHOT + 2.76 test diff --git a/war/pom.xml b/war/pom.xml index a9812aba46..2182adc82e 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.76-SNAPSHOT + 2.76 jenkins-war -- GitLab From 8189c2cd9a2cb0a4e6d2dcf341fb818dbd9165ba Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sun, 27 Aug 2017 17:56:12 -0700 Subject: [PATCH 0153/1763] [maven-release-plugin] prepare for next development iteration --- cli/pom.xml | 2 +- core/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- war/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index eac6dbba23..20c7e83213 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 2.76 + 2.77-SNAPSHOT cli diff --git a/core/pom.xml b/core/pom.xml index e348389f57..066406da3a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.76 + 2.77-SNAPSHOT jenkins-core diff --git a/pom.xml b/pom.xml index f2c7d0a16d..a8f25c8d0e 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.76 + 2.77-SNAPSHOT pom Jenkins main module @@ -58,7 +58,7 @@ THE SOFTWARE. scm:git:git://github.com/jenkinsci/jenkins.git scm:git:ssh://git@github.com/jenkinsci/jenkins.git https://github.com/jenkinsci/jenkins - jenkins-2.76 + HEAD diff --git a/test/pom.xml b/test/pom.xml index e30ba4ea1d..b0a641d89f 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.76 + 2.77-SNAPSHOT test diff --git a/war/pom.xml b/war/pom.xml index 2182adc82e..9396b35ed7 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 2.76 + 2.77-SNAPSHOT jenkins-war -- GitLab From 6f537669d6f37150aaeeff6809c40e209d3c8020 Mon Sep 17 00:00:00 2001 From: istrangiu Date: Tue, 21 Mar 2017 14:24:24 +0000 Subject: [PATCH 0154/1763] JENKINS-42854: Added description field to the 'Computer' api --- core/src/main/java/hudson/model/Computer.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index afad020673..dec1b10d27 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -1067,6 +1067,17 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces return firstDemand; } + /** + * Returns the {@link Node} description for this computer + */ + @Restricted(DoNotUse.class) + @Exported + public @Nonnull String getDescription() { + Node node = getNode(); + return (node != null) ? node.getNodeDescription() : null; + } + + /** * Called by {@link Executor} to kill excessive executors from this computer. */ -- GitLab From 69828cd85ccfb6c0cb66609c80628ad64052bfcd Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Fri, 25 Aug 2017 22:34:27 +0200 Subject: [PATCH 0155/1763] Upgrade Remoting to 3.11 (#2988) * Use ClassFilter.appendDefaultFilter. * FindBugs * Update Jenkins Remoting to 3.11, fix reported FindBugs issues (cherry picked from commit dc8000cc1e36399595883858c3aae8f135177d49) --- .../java/hudson/slaves/SlaveComputer.java | 6 +++++ core/src/main/java/jenkins/model/Jenkins.java | 25 +++---------------- pom.xml | 2 +- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/core/src/main/java/hudson/slaves/SlaveComputer.java b/core/src/main/java/hudson/slaves/SlaveComputer.java index a1ed233278..73fe5e17f6 100644 --- a/core/src/main/java/hudson/slaves/SlaveComputer.java +++ b/core/src/main/java/hudson/slaves/SlaveComputer.java @@ -454,6 +454,9 @@ public class SlaveComputer extends Computer { } @Override public Integer call() { Channel c = Channel.current(); + if (c == null) { + return -1; + } return resource ? c.resourceLoadingCount.get() : c.classLoadingCount.get(); } } @@ -471,6 +474,9 @@ public class SlaveComputer extends Computer { } @Override public Long call() { Channel c = Channel.current(); + if (c == null) { + return Long.valueOf(-1); + } return resource ? c.resourceLoadingTime.get() : c.classLoadingTime.get(); } } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index f6a3d8386f..3719203219 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -251,7 +251,6 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; -import java.lang.reflect.Field; import java.net.BindException; import java.net.HttpURLConnection; import java.net.URL; @@ -903,26 +902,10 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve adjuncts = new AdjunctManager(servletContext, pluginManager.uberClassLoader,"adjuncts/"+SESSION_HASH, TimeUnit2.DAYS.toMillis(365)); - // TODO pending move to standard blacklist, or API to append filter - if (System.getProperty(ClassFilter.FILE_OVERRIDE_LOCATION_PROPERTY) == null) { // not using SystemProperties since ClassFilter does not either - try { - Field blacklistPatternsF = ClassFilter.DEFAULT.getClass().getDeclaredField("blacklistPatterns"); - blacklistPatternsF.setAccessible(true); - Object[] blacklistPatternsA = (Object[]) blacklistPatternsF.get(ClassFilter.DEFAULT); - boolean found = false; - for (int i = 0; i < blacklistPatternsA.length; i++) { - if (blacklistPatternsA[i] instanceof Pattern) { - blacklistPatternsA[i] = Pattern.compile("(" + blacklistPatternsA[i] + ")|(java[.]security[.]SignedObject)"); - found = true; - break; - } - } - if (!found) { - throw new Error("no Pattern found among " + Arrays.toString(blacklistPatternsA)); - } - } catch (NoSuchFieldException | IllegalAccessException x) { - throw new Error("Unexpected ClassFilter implementation in bundled remoting.jar: " + x, x); - } + try { + ClassFilter.appendDefaultFilter(Pattern.compile("java[.]security[.]SignedObject")); // TODO move to standard blacklist + } catch (ClassFilter.ClassFilterException ex) { + throw new IOException("Remoting library rejected the java[.]security[.]SignedObject blacklist pattern", ex); } // initialization consists of ... diff --git a/pom.xml b/pom.xml index 740a6ec5a6..8ab404fade 100644 --- a/pom.xml +++ b/pom.xml @@ -168,7 +168,7 @@ THE SOFTWARE. org.jenkins-ci.main remoting - 3.10 + 3.11 -- GitLab From c709b1932c4a207db2463c147502fffe53e99018 Mon Sep 17 00:00:00 2001 From: "R. Tyler Croy" Date: Thu, 31 Aug 2017 10:34:49 -0700 Subject: [PATCH 0156/1763] Default the built-in Jenkins Update Center URL to https://updates.jenkins.io Now that we're using JDK8, we can rely on our Let's Encrypt-based certificates on *.jenkins.io Live from Jenkins World! Signed-off-by: M. Allan Signed-off-by: R. Tyler Croy --- core/src/main/java/hudson/model/DownloadService.java | 12 ------------ core/src/main/java/hudson/model/UpdateCenter.java | 2 +- core/src/main/java/hudson/model/UpdateSite.java | 12 ------------ .../src/test/java/hudson/model/UpdateCenterTest.java | 4 ++-- 4 files changed, 3 insertions(+), 27 deletions(-) diff --git a/core/src/main/java/hudson/model/DownloadService.java b/core/src/main/java/hudson/model/DownloadService.java index 6c28c80d0f..bf67bbeb3c 100644 --- a/core/src/main/java/hudson/model/DownloadService.java +++ b/core/src/main/java/hudson/model/DownloadService.java @@ -132,18 +132,6 @@ public class DownloadService extends PageDecorator { } private String mapHttps(String url) { - /* - HACKISH: - - Loading scripts in HTTP from HTTPS pages cause browsers to issue a warning dialog. - The elegant way to solve the problem is to always load update center from HTTPS, - but our backend mirroring scheme isn't ready for that. So this hack serves regular - traffic in HTTP server, and only use HTTPS update center for Jenkins in HTTPS. - - We'll monitor the traffic to see if we can sustain this added traffic. - */ - if (url.startsWith("http://updates.jenkins-ci.org/") && Jenkins.getInstance().isRootUrlSecure()) - return "https"+url.substring(4); return url; } diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index cf6cb0d684..109efb9d37 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -148,7 +148,7 @@ import org.kohsuke.stapler.interceptor.RequirePOST; @ExportedBean public class UpdateCenter extends AbstractModelObject implements Saveable, OnMaster { - private static final String UPDATE_CENTER_URL = SystemProperties.getString(UpdateCenter.class.getName()+".updateCenterUrl","http://updates.jenkins-ci.org/"); + private static final String UPDATE_CENTER_URL = SystemProperties.getString(UpdateCenter.class.getName()+".updateCenterUrl","https://updates.jenkins.io/"); /** * Read timeout when downloading plugins, defaults to 1 minute diff --git a/core/src/main/java/hudson/model/UpdateSite.java b/core/src/main/java/hudson/model/UpdateSite.java index ddf399ceca..933cfe8e83 100644 --- a/core/src/main/java/hudson/model/UpdateSite.java +++ b/core/src/main/java/hudson/model/UpdateSite.java @@ -485,18 +485,6 @@ public class UpdateSite { */ @Deprecated public String getDownloadUrl() { - /* - HACKISH: - - Loading scripts in HTTP from HTTPS pages cause browsers to issue a warning dialog. - The elegant way to solve the problem is to always load update center from HTTPS, - but our backend mirroring scheme isn't ready for that. So this hack serves regular - traffic in HTTP server, and only use HTTPS update center for Jenkins in HTTPS. - - We'll monitor the traffic to see if we can sustain this added traffic. - */ - if (url.equals("http://updates.jenkins-ci.org/update-center.json") && Jenkins.getInstance().isRootUrlSecure()) - return "https"+url.substring(4); return url; } diff --git a/test/src/test/java/hudson/model/UpdateCenterTest.java b/test/src/test/java/hudson/model/UpdateCenterTest.java index c073e4206b..29e70cbb64 100644 --- a/test/src/test/java/hudson/model/UpdateCenterTest.java +++ b/test/src/test/java/hudson/model/UpdateCenterTest.java @@ -44,8 +44,8 @@ import org.junit.Test; public class UpdateCenterTest { @Test public void data() throws Exception { try { - doData("http://updates.jenkins-ci.org/update-center.json?version=build"); - doData("http://updates.jenkins-ci.org/stable/update-center.json?version=build"); + doData("https://updates.jenkins.io/update-center.json?version=build"); + doData("https://updates.jenkins.io/stable/update-center.json?version=build"); } catch (Exception x) { // TODO this should not be in core at all; should be in repo built by a separate job somewhere assumeNoException("Might be no Internet connectivity, or might start failing due to expiring certificate through no fault of code changes", x); -- GitLab From 08a07fc69ece6e1be23d72e5116e06aa02e18a3e Mon Sep 17 00:00:00 2001 From: Baptiste Mathus Date: Sat, 2 Sep 2017 02:30:20 +0200 Subject: [PATCH 0157/1763] [JENKINS-46603] Verify https://github.com/jenkinsci/pom/pull/16 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a8f25c8d0e..2cabdb9811 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci jenkins - 1.38 + 1.39-20170902.001419-2 org.jenkins-ci.main -- GitLab From f420038bba05e66b21565348c5595e1f32c35983 Mon Sep 17 00:00:00 2001 From: Baptiste Mathus Date: Sat, 2 Sep 2017 02:58:12 +0200 Subject: [PATCH 0158/1763] [JENKINS-46603] Remove overrides to inherit upgraded versions --- pom.xml | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/pom.xml b/pom.xml index 2cabdb9811..69ac65d75b 100644 --- a/pom.xml +++ b/pom.xml @@ -347,12 +347,10 @@ THE SOFTWARE. org.apache.maven.plugins maven-dependency-plugin - 2.8 org.apache.maven.plugins maven-compiler-plugin - 3.0 true alwaysNew @@ -361,17 +359,14 @@ THE SOFTWARE. org.apache.maven.plugins maven-gpg-plugin - 1.4 org.apache.maven.plugins maven-install-plugin - 2.3.1 org.apache.maven.plugins maven-javadoc-plugin - 2.10.3 true @@ -379,17 +374,14 @@ THE SOFTWARE. org.apache.maven.plugins maven-jar-plugin - 2.6 org.apache.maven.plugins maven-war-plugin - 2.6 org.apache.maven.plugins maven-surefire-plugin - 2.20 -noverify @@ -403,7 +395,6 @@ THE SOFTWARE. org.apache.maven.plugins maven-assembly-plugin - 2.4 maven-jarsigner-plugin @@ -423,7 +414,6 @@ THE SOFTWARE. org.apache.maven.plugins maven-resources-plugin - 2.6 @@ -541,12 +527,10 @@ THE SOFTWARE. org.jenkins-ci.tools maven-hpi-plugin - 2.0 org.apache.maven.plugins maven-site-plugin - 3.3 org.kohsuke @@ -558,7 +542,6 @@ THE SOFTWARE. org.apache.maven.plugins maven-enforcer-plugin - 3.0.0-M1 @@ -603,7 +586,6 @@ THE SOFTWARE. org.codehaus.mojo animal-sniffer-maven-plugin - 1.15 @@ -615,7 +597,6 @@ THE SOFTWARE. maven-release-plugin - 2.5.1 -P release,sign -- GitLab From 0efdf8fb4f8c56f1f32fb390c472cb2e98e67f56 Mon Sep 17 00:00:00 2001 From: hplatou Date: Sat, 2 Sep 2017 21:08:11 +0200 Subject: [PATCH 0159/1763] [JENKINS-13153] - Use directory from env:BASE when writing jenkins.copies (#2992) [JENKINS-13153] - Use directory from env:BASE when writing jenkins.copies --- .../lifecycle/WindowsServiceLifecycle.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/hudson/lifecycle/WindowsServiceLifecycle.java b/core/src/main/java/hudson/lifecycle/WindowsServiceLifecycle.java index 94066417b0..42519eb21b 100644 --- a/core/src/main/java/hudson/lifecycle/WindowsServiceLifecycle.java +++ b/core/src/main/java/hudson/lifecycle/WindowsServiceLifecycle.java @@ -60,20 +60,20 @@ public class WindowsServiceLifecycle extends Lifecycle { */ private void updateJenkinsExeIfNeeded() { try { - File rootDir = Jenkins.getInstance().getRootDir(); + File baseDir = getBaseDir(); URL exe = getClass().getResource("/windows-service/jenkins.exe"); String ourCopy = Util.getDigestOf(exe.openStream()); for (String name : new String[]{"hudson.exe","jenkins.exe"}) { try { - File currentCopy = new File(rootDir,name); + File currentCopy = new File(baseDir,name); if(!currentCopy.exists()) continue; String curCopy = new FilePath(currentCopy).digest(); if(ourCopy.equals(curCopy)) continue; // identical - File stage = new File(rootDir,name+".new"); + File stage = new File(baseDir,name+".new"); FileUtils.copyURLToFile(exe,stage); Kernel32.INSTANCE.MoveFileExA(stage.getAbsolutePath(),currentCopy.getAbsolutePath(),MOVEFILE_DELAY_UNTIL_REBOOT|MOVEFILE_REPLACE_EXISTING); LOGGER.info("Scheduled a replacement of "+name); @@ -107,8 +107,8 @@ public class WindowsServiceLifecycle extends Lifecycle { String baseName = dest.getName(); baseName = baseName.substring(0,baseName.indexOf('.')); - File rootDir = Jenkins.getInstance().getRootDir(); - File copyFiles = new File(rootDir,baseName+".copies"); + File baseDir = getBaseDir(); + File copyFiles = new File(baseDir,baseName+".copies"); try (FileWriter w = new FileWriter(copyFiles, true)) { w.write(by.getAbsolutePath() + '>' + getHudsonWar().getAbsolutePath() + '\n'); @@ -144,6 +144,19 @@ public class WindowsServiceLifecycle extends Lifecycle { if(r!=0) throw new IOException(baos.toString()); } + + private static final File getBaseDir() { + File baseDir; + + String baseEnv = System.getenv("BASE"); + if (baseEnv != null) { + baseDir = new File(baseEnv); + } else { + LOGGER.log(Level.WARNING, "Could not find environment variable 'BASE' for Jenkins base directory. Falling back to JENKINS_HOME"); + baseDir = Jenkins.getInstance().getRootDir(); + } + return baseDir; + } private static final Logger LOGGER = Logger.getLogger(WindowsServiceLifecycle.class.getName()); } -- GitLab From 30a927fd8c1cb6e38ded402e1ba1614c3dffbba5 Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Sat, 2 Sep 2017 14:14:38 -0700 Subject: [PATCH 0160/1763] rely on java8 default methods to avoid code duplication Signed-off-by: Nicolas De Loof --- core/src/main/java/hudson/model/AbstractItem.java | 14 -------------- core/src/main/java/hudson/model/Computer.java | 8 -------- .../main/java/hudson/model/MyViewsProperty.java | 8 -------- core/src/main/java/hudson/model/Node.java | 8 -------- core/src/main/java/hudson/model/Run.java | 10 ---------- core/src/main/java/hudson/model/User.java | 8 -------- core/src/main/java/hudson/model/View.java | 8 -------- .../java/hudson/security/AccessControlled.java | 8 ++++++-- core/src/main/java/hudson/slaves/Cloud.java | 8 -------- 9 files changed, 6 insertions(+), 74 deletions(-) diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index 424e934e31..5fd538151a 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -492,20 +492,6 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet return Jenkins.getInstance().getAuthorizationStrategy().getACL(this); } - /** - * Short for {@code getACL().checkPermission(p)} - */ - public void checkPermission(Permission p) { - getACL().checkPermission(p); - } - - /** - * Short for {@code getACL().hasPermission(p)} - */ - public boolean hasPermission(Permission p) { - return getACL().hasPermission(p); - } - /** * Save the settings to a file. */ diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index afad020673..db4ecf3d21 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -332,14 +332,6 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces return Jenkins.getInstance().getAuthorizationStrategy().getACL(this); } - public void checkPermission(Permission permission) { - getACL().checkPermission(permission); - } - - public boolean hasPermission(Permission permission) { - return getACL().hasPermission(permission); - } - /** * If the computer was offline (either temporarily or not), * this method will return the cause. diff --git a/core/src/main/java/hudson/model/MyViewsProperty.java b/core/src/main/java/hudson/model/MyViewsProperty.java index 8e823efd5a..68ff6e2513 100644 --- a/core/src/main/java/hudson/model/MyViewsProperty.java +++ b/core/src/main/java/hudson/model/MyViewsProperty.java @@ -185,14 +185,6 @@ public class MyViewsProperty extends UserProperty implements ModifiableViewGroup 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(); diff --git a/core/src/main/java/hudson/model/Node.java b/core/src/main/java/hudson/model/Node.java index ab1ca6ca66..89a7dd0025 100644 --- a/core/src/main/java/hudson/model/Node.java +++ b/core/src/main/java/hudson/model/Node.java @@ -509,14 +509,6 @@ public abstract class Node extends AbstractModelObject implements Reconfigurable return Jenkins.getInstance().getAuthorizationStrategy().getACL(this); } - public final void checkPermission(Permission permission) { - getACL().checkPermission(permission); - } - - public final boolean hasPermission(Permission permission) { - return getACL().hasPermission(permission); - } - public Node reconfigure(final StaplerRequest req, JSONObject form) throws FormException { if (form==null) return null; diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 9d9b7f4cd2..bbf0a73c77 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -1456,16 +1456,6 @@ public abstract class Run ,RunT extends Run Date: Sat, 2 Sep 2017 21:42:04 -0400 Subject: [PATCH 0161/1763] [JENKINS-45892] Enhanced diagnostics (#2997) * [JENKINS-45892] Enhanced diagnostics. * Refined fix which should avoid a needless warning when called from MultiBranchProject.onLoad. --- core/src/main/java/hudson/XmlFile.java | 9 ++++++--- test/src/test/java/hudson/model/AbstractItem2Test.java | 8 ++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/XmlFile.java b/core/src/main/java/hudson/XmlFile.java index 3c0a68bee3..d5077b34db 100644 --- a/core/src/main/java/hudson/XmlFile.java +++ b/core/src/main/java/hudson/XmlFile.java @@ -120,6 +120,7 @@ public final class XmlFile { private final XStream xs; private final File file; private static final Map beingWritten = Collections.synchronizedMap(new IdentityHashMap<>()); + private static final ThreadLocal writing = new ThreadLocal<>(); public XmlFile(File file) { this(DEFAULT_XSTREAM,file); @@ -175,10 +176,12 @@ public final class XmlFile { try { w.write("\n"); beingWritten.put(o, null); + writing.set(file); try { xs.toXML(o, w); } finally { beingWritten.remove(o); + writing.set(null); } w.commit(); } catch(StreamException e) { @@ -200,11 +203,11 @@ public final class XmlFile { * @since 2.74 */ public static Object replaceIfNotAtTopLevel(Object o, Supplier replacement) { - if (beingWritten.containsKey(o)) { + File currentlyWriting = writing.get(); + if (beingWritten.containsKey(o) || currentlyWriting == null) { return o; } else { - // Unfortunately we cannot easily tell which XML file is actually being saved here, at least without implementing a custom Converter. - LOGGER.log(Level.WARNING, "JENKINS-45892: reference to {0} being saved but not at top level", o); + LOGGER.log(Level.WARNING, "JENKINS-45892: reference to " + o + " being saved from unexpected " + currentlyWriting, new IllegalStateException()); return replacement.get(); } } diff --git a/test/src/test/java/hudson/model/AbstractItem2Test.java b/test/src/test/java/hudson/model/AbstractItem2Test.java index a35044ee87..968dc5f54f 100644 --- a/test/src/test/java/hudson/model/AbstractItem2Test.java +++ b/test/src/test/java/hudson/model/AbstractItem2Test.java @@ -23,6 +23,8 @@ */ package hudson.model; +import hudson.XmlFile; +import java.util.logging.Level; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; import org.junit.Test; @@ -30,6 +32,7 @@ import static org.junit.Assert.*; import org.junit.Rule; import org.junit.runners.model.Statement; import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.LoggerRule; import org.jvnet.hudson.test.RestartableJenkinsRule; public class AbstractItem2Test { @@ -37,6 +40,9 @@ public class AbstractItem2Test { @Rule public RestartableJenkinsRule rr = new RestartableJenkinsRule(); + @Rule + public LoggerRule logging = new LoggerRule().record(XmlFile.class, Level.WARNING).capture(100); + @Issue("JENKINS-45892") @Test public void badSerialization() { @@ -50,6 +56,8 @@ public class AbstractItem2Test { String text = p2.getConfigFile().asString(); assertThat(text, not(containsString("this is p1"))); assertThat(text, containsString("p1")); + assertThat(logging.getMessages().toString(), containsString(p1.toString())); + assertThat(logging.getMessages().toString(), containsString(p2.getConfigFile().toString())); } }); rr.addStep(new Statement() { -- GitLab From 3bc9c86556422414bd90e36ac930af209752afe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernhard=20Gr=C3=BCnewaldt?= Date: Sun, 3 Sep 2017 03:50:17 +0200 Subject: [PATCH 0162/1763] Rss Bar and Legend Link (Job List Footer) Added Classes and IDs to enable easy styling for external themes (#2989) * ui classes to enable easy styling * fix align right html to css * move css to style.css * Revert "move css to style.css" This reverts commit f26162a0f350886040935811d6194d585f8a1bf9. * move css to style.css (without unrelated spaces changed) * remove ids and use classes --- .../main/resources/lib/hudson/rssBar.jelly | 22 +++++++++---------- war/src/main/webapp/css/style.css | 16 ++++++++++++++ 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/core/src/main/resources/lib/hudson/rssBar.jelly b/core/src/main/resources/lib/hudson/rssBar.jelly index 942beae5d6..4db12af6c9 100644 --- a/core/src/main/resources/lib/hudson/rssBar.jelly +++ b/core/src/main/resources/lib/hudson/rssBar.jelly @@ -24,22 +24,22 @@ THE SOFTWARE. -
      - ${%Legend} - - Feed + diff --git a/war/src/main/webapp/css/style.css b/war/src/main/webapp/css/style.css index f51ad90673..0bc3d00dca 100644 --- a/war/src/main/webapp/css/style.css +++ b/war/src/main/webapp/css/style.css @@ -1913,3 +1913,19 @@ body.no-sticker #bottom-sticker { width: 48px; height: 48px; } + +/* rss-bar */ + +#rss-bar { + margin:1em; + text-align:right; +} + +#rss-bar .icon-rss { + border: 0; +} + +#rss-bar .rss-bar-item { + padding-left: 1em; +} + -- GitLab From 33799df36cbf2f5e0c5d0ac8372ff761e82c3784 Mon Sep 17 00:00:00 2001 From: Josiah Haswell Date: Sat, 2 Sep 2017 19:58:15 -0600 Subject: [PATCH 0163/1763] [FIXED JENKINS-31068] Monitor does not detect when Tomcat URL encoding parameter rejects forward slashes in URL (#2977) * Fixing JENKINS-31068 * backing out changes--they don't fully work * Saving progress so that I can revert to an earlier version for tests * So, pretty exhaustive testing yields that these modifications have the same behavior as the previous versions * [FIX JENKINS-31068] Adding wiki reference to error message. Adding trailing slash to URL * [FIX JENKINS-31068] It looks like different versions of Tomcat and Apache HTTP handle this case differently. Really, the best we can do is check to see if the test method was not hit and passed correctly--if we hit it, we get more information on the configuration error. If we don't, we just refer them to a general wiki page --- .../hudson/diagnosis/ReverseProxySetupMonitor/message.jelly | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.jelly b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.jelly index a39c1238b0..a92382aa46 100644 --- a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.jelly +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.jelly @@ -27,7 +27,9 @@ THE SOFTWARE. -