diff --git a/WaarpCommon/src/main/java/org/waarp/common/utility/WaarpNettyUtil.java b/WaarpCommon/src/main/java/org/waarp/common/utility/WaarpNettyUtil.java index 2c8984c70f..56cb8a40a5 100644 --- a/WaarpCommon/src/main/java/org/waarp/common/utility/WaarpNettyUtil.java +++ b/WaarpCommon/src/main/java/org/waarp/common/utility/WaarpNettyUtil.java @@ -22,6 +22,7 @@ import io.netty.bootstrap.Bootstrap; import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufAllocator; import io.netty.buffer.PooledByteBufAllocator; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; @@ -251,4 +252,23 @@ public static ByteBuf slice(final ByteBuf byteBuf, final int start, bufSliced.writerIndex(0); return bufSliced; } + + /** + * Replace the arrays with one Pooled ByteBuf (not wrapped) + * + * @param arrays + * + * @return the ByteBuf from pool + */ + public static ByteBuf wrappedBuffer(byte[]... arrays) { + int size = 0; + for (byte[] array : arrays) { + size += array.length; + } + final ByteBuf finalByteBuf = ByteBufAllocator.DEFAULT.buffer(size); + for (byte[] array : arrays) { + finalByteBuf.writeBytes(array); + } + return finalByteBuf; + } } diff --git a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/ServerActions.java b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/ServerActions.java index 7c33f41af4..540e415ac1 100644 --- a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/ServerActions.java +++ b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/ServerActions.java @@ -1264,7 +1264,8 @@ private void shutdownLocalChannel() { if (time == 0) { logger.info("Will close networkChannel {}", ncr.nbLocalChannels()); NetworkTransaction.shuttingDownNetworkChannel(ncr); - NetworkTransaction.shuttingdownNetworkChannelsPerHostID(ncr.getHostId()); + NetworkTransaction + .shuttingdownNetworkChannelsPerHostID(ncr.getHostId()); } } finally { ncr.unlockNetwork(); diff --git a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/DataPacket.java b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/DataPacket.java index 7e0aabbc95..64494f7c54 100644 --- a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/DataPacket.java +++ b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/DataPacket.java @@ -21,7 +21,6 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufAllocator; -import io.netty.buffer.Unpooled; import org.waarp.common.digest.FilesystemBasedDigest; import org.waarp.common.logging.WaarpLogger; import org.waarp.common.logging.WaarpLoggerFactory; @@ -123,7 +122,7 @@ public void createAllBuffers(final LocalChannelReference lcr, @Override public void createEnd(final LocalChannelReference lcr) { - end = Unpooled.wrappedBuffer(key); + end = WaarpNettyUtil.wrappedBuffer(key); } @Override @@ -137,7 +136,7 @@ public void createMiddle(final LocalChannelReference lcr) { if (dataRecv != null) { middle = dataRecv; } else { - middle = Unpooled.wrappedBuffer(data); + middle = WaarpNettyUtil.wrappedBuffer(data); } } diff --git a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/RequestPacket.java b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/RequestPacket.java index a1d74b83ff..ee6837d5d2 100644 --- a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/RequestPacket.java +++ b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/RequestPacket.java @@ -21,10 +21,11 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import org.waarp.common.json.JsonHandler; import org.waarp.common.logging.WaarpLogger; import org.waarp.common.logging.WaarpLoggerFactory; +import org.waarp.common.utility.WaarpNettyUtil; +import org.waarp.common.utility.WaarpStringUtils; import org.waarp.openr66.context.ErrorCode; import org.waarp.openr66.protocol.configuration.Configuration; import org.waarp.openr66.protocol.configuration.PartnerConfiguration; @@ -365,7 +366,8 @@ public void createAllBuffers(final LocalChannelReference lcr, @Override public void createEnd(final LocalChannelReference lcr) { if (transferInformation != null) { - end = Unpooled.wrappedBuffer(transferInformation.getBytes()); + end = WaarpNettyUtil + .wrappedBuffer(transferInformation.getBytes(WaarpStringUtils.UTF8)); } } @@ -380,13 +382,13 @@ public void createHeader(final LocalChannelReference lcr) final ObjectNode node = JsonHandler.createObjectNode(); JsonHandler.setValue(node, FIELDS.rule, rulename); JsonHandler.setValue(node, FIELDS.mode, mode); - header = - Unpooled.wrappedBuffer(JsonHandler.writeAsString(node).getBytes()); + header = WaarpNettyUtil.wrappedBuffer( + JsonHandler.writeAsString(node).getBytes(WaarpStringUtils.UTF8)); } else { - header = Unpooled.wrappedBuffer(rulename.getBytes(), - PartnerConfiguration.BLANK_SEPARATOR_FIELD - .getBytes(), - Integer.toString(mode).getBytes()); + header = WaarpNettyUtil.wrappedBuffer(rulename.getBytes(), + PartnerConfiguration.BLANK_SEPARATOR_FIELD + .getBytes(), + Integer.toString(mode).getBytes()); } } @@ -408,11 +410,14 @@ public void createMiddle(final LocalChannelReference lcr) JsonHandler.setValue(node, FIELDS.length, originalSize); // Add limit if specified JsonHandler.setValue(node, FIELDS.limit, limit); - middle = Unpooled - .wrappedBuffer(away, JsonHandler.writeAsString(node).getBytes()); + middle = WaarpNettyUtil.wrappedBuffer(away, + JsonHandler.writeAsString(node) + .getBytes( + WaarpStringUtils.UTF8)); } else { - middle = Unpooled - .wrappedBuffer(away, filename.getBytes(), separator.getBytes(), + middle = WaarpNettyUtil + .wrappedBuffer(away, filename.getBytes(WaarpStringUtils.UTF8), + separator.getBytes(), Integer.toString(blocksize).getBytes(), separator.getBytes(), Integer.toString(rank).getBytes(), diff --git a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoop.java b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoop.java index cd02a8e333..3c11870078 100644 --- a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoop.java +++ b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoop.java @@ -323,16 +323,49 @@ public static int startServer(String serverConfig) throws Exception { */ @AfterClass public static void tearDownAfterClass() throws Exception { + if (NUMBER_FILES == -1) { + Configuration.configuration.setTimeoutCon(100); + WaarpLoggerFactory.setLogLevel(WaarpLogLevel.ERROR); + for (int pid : PIDS) { + Processes.kill(pid, true); + } + tearDownAfterClassClient(); + tearDownAfterClassMinimal(); + tearDownAfterClassServer(); + return; + } CloseableHttpClient httpClient = null; + int max = SystemPropertyUtil.get(IT_LONG_TEST, false)? 60 : 20; + if (max < NUMBER_FILES) { + max = NUMBER_FILES * 3; + } + int totalTransfers = max; + int nb = 0; + int every10sec = 10; + HttpGet request = + new HttpGet("http://127.0.0.1:8098/v2/transfers?limit=100000"); + final long startTime = System.currentTimeMillis(); try { httpClient = HttpClientBuilder.create().setConnectionManagerShared(true) .disableAutomaticRetries().build(); - HttpGet request = - new HttpGet("http://127.0.0.1:8098/v2/transfers?limit=1000"); CloseableHttpResponse response = null; - int nb = 0; - int every10sec = 10; - int max = SystemPropertyUtil.get(IT_LONG_TEST, false)? 60 : 20; + try { + response = httpClient.execute(request); + assertEquals(200, response.getStatusLine().getStatusCode()); + String content = EntityUtils.toString(response.getEntity()); + ObjectNode node = JsonHandler.getFromString(content); + if (node != null) { + JsonNode number = node.findValue("totalResults"); + int newNb = number.asInt(); + max += newNb; + totalTransfers = max; + logger.warn("Found {} transfers", newNb); + } + } finally { + if (response != null) { + response.close(); + } + } while (nb < max) { try { response = httpClient.execute(request); @@ -363,7 +396,12 @@ public static void tearDownAfterClass() throws Exception { httpClient.close(); } } + final long stopTime = System.currentTimeMillis(); + totalTransfers -= nb; + logger.warn("Duration {} for {} item so {} items/s", (stopTime - startTime) / 1000.0, totalTransfers, + totalTransfers / ((stopTime - startTime) / 1000.0)); Configuration.configuration.setTimeoutCon(100); + WaarpLoggerFactory.setLogLevel(WaarpLogLevel.ERROR); for (int pid : PIDS) { Processes.kill(pid, true); } @@ -388,7 +426,7 @@ private void checkMemory() { Runtime runtime = Runtime.getRuntime(); long newUsedMemory = runtime.totalMemory() - runtime.freeMemory(); if (newUsedMemory > MAX_USED_MEMORY) { - logger.warn("Used Memory > 2GB {} {}", usedMemory / 1048576.0, + logger.info("Used Memory > 2GB {} {}", usedMemory / 1048576.0, newUsedMemory / 1048576.0); } } @@ -472,6 +510,11 @@ private void testBigTransfer(boolean limit, String serverName, boolean direct, @Test public void test01_LoopBigSendsSyncNoLimit() throws IOException, InterruptedException { + if (SystemPropertyUtil.get(IT_LONG_TEST, false)) { + NUMBER_FILES = 4; + } else { + NUMBER_FILES = 2; + } logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES); testBigTransfer(false, "server2", true, false, 1024 * 500 * 1024); testBigTransfer(false, "server2", true, false, 1024 * 1024 * 1024); @@ -485,6 +528,11 @@ public void test01_LoopBigSendsSyncNoLimit() @Test public void test02_LoopBigSendsSyncSslNoLimit() throws IOException, InterruptedException { + if (SystemPropertyUtil.get(IT_LONG_TEST, false)) { + NUMBER_FILES = 2; + } else { + NUMBER_FILES = 1; + } logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES); testBigTransfer(false, "server2-ssl", true, false, 1024 * 501 * 1024); if (SystemPropertyUtil.get(IT_LONG_TEST, false)) { @@ -493,6 +541,123 @@ public void test02_LoopBigSendsSyncSslNoLimit() logger.warn("End {}", Processes.getCurrentMethodName()); } + @Test + public void test03_LoopBigSendsSyncSslNoLimit() + throws IOException, InterruptedException { + if (SystemPropertyUtil.get(IT_LONG_TEST, false)) { + NUMBER_FILES = 700; + } else { + NUMBER_FILES = -1; + logger.warn("Test disabled without IT_LONG_TEST"); + Assume.assumeTrue("If the Long term tests are allowed", + SystemPropertyUtil.get(IT_LONG_TEST, false)); + return; + } + logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES); + int limit = 700; + int middleSize = 360 - (limit / 2); + + Assume.assumeNotNull(networkTransaction); + Configuration.configuration.changeNetworkLimit(0, 0, 0, 0, 1000); + File baseDir = new File("/tmp/R66/scenario_big_file_limitbdw/R1/out/"); + for (int i = 0; i < limit; i++) { + int size = (middleSize + i) * 1024; + File fileOut = new File(baseDir, "hello" + size); + final File outHello = generateOutFile(fileOut.getAbsolutePath(), size); + } + logger.warn("End of file creations"); + long timestart = System.currentTimeMillis(); + R66Future[] futures = new R66Future[limit]; + for (int i = 0; i < limit; i++) { + int size = (middleSize + i) * 1024; + final R66Future future = new R66Future(true); + futures[i] = future; + final TestTransferNoDb transaction = + new TestTransferNoDb(future, "server2-ssl", "hello" + size, "loop", + "Test Loop Send", true, BLOCK_SIZE, + DbConstantR66.ILLEGALVALUE, + networkTransaction); + transaction.setNormalInfoAsWarn(false); + transaction.run(); + } + for (int i = 0; i < limit; i++) { + futures[i].awaitOrInterruptible(); + assertTrue(futures[i].isSuccess()); + } + //logger.info("Runner: {}", future.getRunner()); + long timestop = System.currentTimeMillis(); + logger.warn("Direct {}, Recv {}, LimitBandwidth {} " + + "({} seconds, {} MBPS vs {} " + + "and {}) of size {} with block size {}", true, false, limit, + (timestop - timestart) / 1000, + limit * 180*1024 / 1000.0 / (timestop - timestart), + Configuration.configuration.getServerGlobalReadLimit() / + 1000000.0, + Configuration.configuration.getServerChannelReadLimit() / + 1000000.0, limit *180*1024, BLOCK_SIZE); + checkMemory(); + logger.warn("End {}", Processes.getCurrentMethodName()); + } + + + @Test + public void test04_LoopBigSendsSyncNoLimit() + throws IOException, InterruptedException { + if (SystemPropertyUtil.get(IT_LONG_TEST, false)) { + NUMBER_FILES = 700; + } else { + NUMBER_FILES = -1; + logger.warn("Test disabled without IT_LONG_TEST"); + Assume.assumeTrue("If the Long term tests are allowed", + SystemPropertyUtil.get(IT_LONG_TEST, false)); + return; + } + logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES); + int limit = 700; + int middleSize = 360 - (limit / 2); + + Assume.assumeNotNull(networkTransaction); + Configuration.configuration.changeNetworkLimit(0, 0, 0, 0, 1000); + File baseDir = new File("/tmp/R66/scenario_big_file_limitbdw/R1/out/"); + for (int i = 0; i < limit; i++) { + int size = (middleSize + i) * 1024; + File fileOut = new File(baseDir, "hello" + size); + final File outHello = generateOutFile(fileOut.getAbsolutePath(), size); + } + logger.warn("End of file creations"); + long timestart = System.currentTimeMillis(); + R66Future[] futures = new R66Future[limit]; + for (int i = 0; i < limit; i++) { + int size = (middleSize + i) * 1024; + final R66Future future = new R66Future(true); + futures[i] = future; + final TestTransferNoDb transaction = + new TestTransferNoDb(future, "server2", "hello" + size, "loop", + "Test Loop Send", true, BLOCK_SIZE, + DbConstantR66.ILLEGALVALUE, + networkTransaction); + transaction.setNormalInfoAsWarn(false); + transaction.run(); + } + for (int i = 0; i < limit; i++) { + futures[i].awaitOrInterruptible(); + assertTrue(futures[i].isSuccess()); + } + //logger.info("Runner: {}", future.getRunner()); + long timestop = System.currentTimeMillis(); + logger.warn("Direct {}, Recv {}, LimitBandwidth {} " + + "({} seconds, {} MBPS vs {} " + + "and {}) of size {} with block size {}", true, false, limit, + (timestop - timestart) / 1000, + limit * 180*1024 / 1000.0 / (timestop - timestart), + Configuration.configuration.getServerGlobalReadLimit() / + 1000000.0, + Configuration.configuration.getServerChannelReadLimit() / + 1000000.0, limit *180*1024, BLOCK_SIZE); + checkMemory(); + logger.warn("End {}", Processes.getCurrentMethodName()); + } + private void waitForAllDone(DbTaskRunner runner) { while (true) { try { diff --git a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoopBenchmark.java b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoopBenchmark.java index 6dcc7c475b..e38108bfcb 100644 --- a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoopBenchmark.java +++ b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoopBenchmark.java @@ -30,7 +30,12 @@ import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; -import org.junit.*; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assume; +import org.junit.Before; +import org.junit.FixMethodOrder; +import org.junit.Test; import org.junit.runners.MethodSorters; import org.testcontainers.containers.JdbcDatabaseContainer; import org.waarp.common.command.exception.Reply550Exception; @@ -61,7 +66,7 @@ import java.util.List; import static org.junit.Assert.*; -import static org.waarp.openr66.protocol.it.ScenarioBase.IT_LONG_TEST; +import static org.waarp.openr66.protocol.it.ScenarioBase.*; @FixMethodOrder(MethodSorters.NAME_ASCENDING) public abstract class ScenarioBaseLoopBenchmark extends TestAbstract { @@ -92,7 +97,8 @@ public abstract class ScenarioBaseLoopBenchmark extends TestAbstract { public static void setUpBeforeClass() throws Exception { ResourceLeakDetector.setLevel(Level.SIMPLE); - final ClassLoader classLoader = ScenarioBaseLoopBenchmark.class.getClassLoader(); + final ClassLoader classLoader = + ScenarioBaseLoopBenchmark.class.getClassLoader(); File file = new File(classLoader.getResource(RESOURCES_SERVER_1_XML).getFile()); dirResources = file.getParentFile().getParentFile().getParentFile(); @@ -200,7 +206,8 @@ public String getServerConfigFile() { public static void setUp3DbBeforeClass() throws Exception { deleteBase(); - final ClassLoader classLoader = ScenarioBaseLoopBenchmark.class.getClassLoader(); + final ClassLoader classLoader = + ScenarioBaseLoopBenchmark.class.getClassLoader(); DetectionUtils.setJunit(true); File file = new File(classLoader.getResource(RESOURCES_SERVER_1_XML).getFile()); @@ -311,9 +318,9 @@ public static void tearDownAfterClass() throws Exception { final long startTime = System.currentTimeMillis(); try { httpClient = HttpClientBuilder.create().setConnectionManagerShared(true) - .disableAutomaticRetries().build(); + .disableAutomaticRetries().build(); HttpGet request = - new HttpGet("http://127.0.0.1:8098/v2/transfers?limit=100000"); + new HttpGet("http://127.0.0.1:8098/v2/transfers?limit=100000"); CloseableHttpResponse response = null; try { response = httpClient.execute(request); @@ -364,8 +371,9 @@ public static void tearDownAfterClass() throws Exception { } final long stopTime = System.currentTimeMillis(); totalTransfers = nb - totalTransfers; - logger.warn("Duration {} for {} item so {} items/s", (stopTime - startTime) / 1000.0, totalTransfers, - totalTransfers / ((stopTime - startTime) / 1000.0)); + logger.warn("Duration {} for {} item so {} items/s", + (stopTime - startTime) / 1000.0, totalTransfers, + totalTransfers / ((stopTime - startTime) / 1000.0)); Configuration.configuration.setTimeoutCon(100); WaarpLoggerFactory.setLogLevel(WaarpLogLevel.ERROR); for (int pid : PIDS) { @@ -422,7 +430,7 @@ private void runLoopInit(String ruleName, String serverName, int factor) { for (int i = 1; i <= NUMBER_FILES; i++) { int size = i * factor; final R66Future future = new R66Future(true); - futures[i-1] = future; + futures[i - 1] = future; /* final TestTransferNoDb transaction = new TestTransferNoDb(future, "server2-ssl", "hello" + size, "loop", @@ -434,9 +442,9 @@ private void runLoopInit(String ruleName, String serverName, int factor) { */ final SubmitTransfer transaction = - new SubmitTransfer(future, serverName, "hello" + size, ruleName, - "Test Loop Send " + size, true, BLOCK_SIZE, - DbConstantR66.ILLEGALVALUE, null); + new SubmitTransfer(future, serverName, "hello" + size, ruleName, + "Test Loop Send " + size, true, BLOCK_SIZE, + DbConstantR66.ILLEGALVALUE, null); TransferArgs.forceAnalyzeFollow(transaction); transaction.setNormalInfoAsWarn(false); transaction.run(); @@ -449,7 +457,7 @@ private void runLoopInit(String ruleName, String serverName, int factor) { @Test public void test01_LoopBenchmarkSendsSyncSslNoLimit() - throws IOException, InterruptedException { + throws IOException, InterruptedException { logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES); int factor = initBenchmark(); String serverName = "server2-ssl"; @@ -458,21 +466,22 @@ public void test01_LoopBenchmarkSendsSyncSslNoLimit() runLoopInit(ruleName, serverName, factor); long timestop = System.currentTimeMillis(); logger.warn("Direct {}, Recv {}, LimitBandwidth {} " + - "({} seconds, {} MBPS vs {} " + - "and {}) of size {} with block size {}", true, false, NUMBER_FILES, - (timestop - timestart) / 1000, - NUMBER_FILES * (factor * (NUMBER_FILES / 2)) / 1000.0 / (timestop - timestart), - Configuration.configuration.getServerGlobalReadLimit() / - 1000000.0, - Configuration.configuration.getServerChannelReadLimit() / - 1000000.0, (factor * (NUMBER_FILES / 2)), BLOCK_SIZE); + "({} seconds, {} MBPS vs {} " + + "and {}) of size {} with block size {}", true, false, + NUMBER_FILES, (timestop - timestart) / 1000, + NUMBER_FILES * (factor * (NUMBER_FILES / 2)) / 1000.0 / + (timestop - timestart), + Configuration.configuration.getServerGlobalReadLimit() / + 1000000.0, + Configuration.configuration.getServerChannelReadLimit() / + 1000000.0, (factor * (NUMBER_FILES / 2)), BLOCK_SIZE); checkMemory(); logger.warn("End {}", Processes.getCurrentMethodName()); } @Test public void test02_LoopBenchmarkSendsSyncNoLimit() - throws IOException, InterruptedException { + throws IOException, InterruptedException { logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES); int factor = initBenchmark(); String serverName = "server2"; @@ -481,14 +490,15 @@ public void test02_LoopBenchmarkSendsSyncNoLimit() runLoopInit(ruleName, serverName, factor); long timestop = System.currentTimeMillis(); logger.warn("Direct {}, Recv {}, LimitBandwidth {} " + - "({} seconds, {} MBPS vs {} " + - "and {}) of size {} with block size {}", true, false, NUMBER_FILES, - (timestop - timestart) / 1000, - NUMBER_FILES * (factor + (NUMBER_FILES / 2)) / 1000.0 / (timestop - timestart), - Configuration.configuration.getServerGlobalReadLimit() / - 1000000.0, - Configuration.configuration.getServerChannelReadLimit() / - 1000000.0, (factor + (NUMBER_FILES / 2)), BLOCK_SIZE); + "({} seconds, {} MBPS vs {} " + + "and {}) of size {} with block size {}", true, false, + NUMBER_FILES, (timestop - timestart) / 1000, + NUMBER_FILES * (factor + (NUMBER_FILES / 2)) / 1000.0 / + (timestop - timestart), + Configuration.configuration.getServerGlobalReadLimit() / + 1000000.0, + Configuration.configuration.getServerChannelReadLimit() / + 1000000.0, (factor + (NUMBER_FILES / 2)), BLOCK_SIZE); checkMemory(); logger.warn("End {}", Processes.getCurrentMethodName()); } diff --git a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioLoopBenchmarkPostGreSqlIT.java b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioLoopBenchmarkPostGreSqlIT.java index 54fb803f8d..4ee51848f1 100644 --- a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioLoopBenchmarkPostGreSqlIT.java +++ b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioLoopBenchmarkPostGreSqlIT.java @@ -34,7 +34,8 @@ import java.util.Map; @FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class ScenarioLoopBenchmarkPostGreSqlIT extends ScenarioBaseLoopBenchmark { +public class ScenarioLoopBenchmarkPostGreSqlIT + extends ScenarioBaseLoopBenchmark { @Rule(order = Integer.MIN_VALUE) public TestWatcher watchman = new TestWatcherJunit4(); diff --git a/doc/waarp-r66/source/changes.rst b/doc/waarp-r66/source/changes.rst index f9027e4759..1f2dd4b618 100644 --- a/doc/waarp-r66/source/changes.rst +++ b/doc/waarp-r66/source/changes.rst @@ -15,7 +15,8 @@ Correctifs - Amélioration de la fermeture opportuniste des connexions réseaux - Amélioration de la liaison JVM/Filesystem lors du test de lisibilité -- Acroissement de la limite de RUNLIMIT à 10000, maintient du défaut à 1000 +- Accroissement de la limite de RUNLIMIT à 10000, maintient du défaut à 1000 +- Amélioration des performances (usage de ByteBuf natif) - Fix de la Gateway FTP pour les clients sous Windows qui abusivement envoient une commande OPTS avant l'authentification - Mise à jour des dépendances diff --git a/pom.xml b/pom.xml index 5c9929a6fe..f923c820bd 100644 --- a/pom.xml +++ b/pom.xml @@ -267,7 +267,7 @@ test - 4.1.58.Final + 4.1.59.Final 2.0.36.Final 1.0.2 @@ -285,7 +285,7 @@ 1.15 1.9.4 1.4 - 42.2.18.jre6 6 1.2.0 @@ -298,21 +298,20 @@ 4.5.13 4.4.14 1.7.2 - 2.10.9 + 2.10.10 1.2.0 - 1.10.19 - 5.6.0 + 1.10.21 + 5.7.0 3.1.4 - 4.13.1 + 4.13.2 1.68 3.19.0 4.2 3.0.2 - 1.15.1 0.4.11 2.14.0 3.141.59 - 2.46.0 + 2.47.1 2.2.0 @@ -346,7 +345,7 @@ 3.0.0-M3 2.8.1 - 1.19 + 1.20 1.10.9 1.3.4 3.2.4 @@ -354,7 +353,7 @@ 2.7 1.2.5 4.2.0 - 4.2.0 + 4.2.2 2.5.2 @@ -1083,6 +1082,8 @@ version--> 3.3.0 2.28.2 + 1.14.3 @@ -1217,6 +1218,7 @@ 3.27.0-GA 4.3.3 3.5.13 + 1.15.2 @@ -1348,6 +1350,7 @@ 3.27.0-GA 4.3.3 3.5.13 + 1.15.2