ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/test/org/apache/tomcat/websocket/TesterConnectionLimitPerformance.java

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/test/org/apache/tomcat/websocket/TesterConnectionLimitPerformance.java
Status
scanned
Type
file
Name
TesterConnectionLimitPerformance.java
Extension
.java
Programming language
Java
Mime type
text/plain
File type
ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
3997 (3.9 KB)
MD5
8650446137513cb6fe8b8aa9ec002f63
SHA1
70e0e4a66871fc1f22862bd6097962e346d7aec7
SHA256
d8c38b0a9b93cca35002c797389911fa9f225f39bf56576fba941053bc53b51f
SHA512

      
    
SHA1_git
65f86895538b15510c1d89826703ca767858eb64
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
TesterConnectionLimitPerformance.java | 3.9 KB |

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.tomcat.websocket; import java.io.IOException; import java.net.URI; import java.util.concurrent.atomic.AtomicInteger; import jakarta.websocket.ContainerProvider; import jakarta.websocket.DeploymentException; import jakarta.websocket.WebSocketContainer; import org.junit.Assert; import org.junit.Test; import org.apache.catalina.Context; import org.apache.catalina.servlets.DefaultServlet; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; import org.apache.tomcat.websocket.TesterMessageCountClient.TesterProgrammaticEndpoint; /* * This test runs until the test machine runs out of resources. There is no benefit it running it as part of a standard * test run so it is excluded due to the name starting Tester... */ public class TesterConnectionLimitPerformance extends TomcatBaseTest { /* * Simple test to see how many outgoing connections can be created on a single machine. */ @Test public void testSingleMachine() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = getProgrammaticRootContext(); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMappingDecoded("/", "default"); Assert.assertTrue(tomcat.getConnector().setProperty("maxConnections", "-1")); tomcat.start(); URI uri = new URI("ws://localhost:" + getPort() + TesterEchoServer.Config.PATH_ASYNC); AtomicInteger counter = new AtomicInteger(0); int threadCount = 50; Thread[] threads = new ConnectionThread[threadCount]; for (int i = 0; i < threadCount; i++) { threads[i] = new ConnectionThread(counter, uri); threads[i].start(); } // Wait for the threads to die for (Thread thread : threads) { thread.join(); } System.out.println("Maximum connection count was " + counter.get()); } private static class ConnectionThread extends Thread { private final AtomicInteger counter; private final URI uri; private ConnectionThread(AtomicInteger counter, URI uri) { this.counter = counter; this.uri = uri; } @Override public void run() { WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); int count = 0; try { while (true) { wsContainer.connectToServer(TesterProgrammaticEndpoint.class, jakarta.websocket.ClientEndpointConfig.Builder.create().build(), uri); count = counter.incrementAndGet(); if (count % 100 == 0) { System.out.println(count + " and counting..."); } } } catch (IOException | DeploymentException ioe) { // Let thread die } } } }
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
29.02
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 9 9