test_class.declarator: DEFAULT_TIMEOUT = Duration.ofSeconds(10)
test_class.modifier: private static final
test_class.original_string: private static final Duration DEFAULT_TIMEOUT = Duration.ofSeconds(10);
test_class.type: Duration
test_class.var_name: DEFAULT_TIMEOUT
test_class.declarator: DITTO_HEADERS = DittoHeaders.empty()
test_class.modifier: private static final
test_class.original_string: private static final DittoHeaders DITTO_HEADERS = DittoHeaders.empty();
test_class.type: DittoHeaders
test_class.var_name: DITTO_HEADERS
test_class.declarator: actorSystem
test_class.modifier: private static
test_class.original_string: private static ActorSystem actorSystem;
test_class.type: ActorSystem
test_class.var_name: actorSystem
test_class.declarator: LOGGER_CONFIG =
              TestConstants.CONNECTIVITY_CONFIG.getMonitoringConfig().logger()
test_class.modifier: private static final
test_class.original_string: private static final MonitoringLoggerConfig LOGGER_CONFIG =
              TestConstants.CONNECTIVITY_CONFIG.getMonitoringConfig().logger();
test_class.type: MonitoringLoggerConfig
test_class.var_name: LOGGER_CONFIG
test_class.file: services/connectivity/messaging/src/test/java/org/eclipse/ditto/services/connectivity/messaging/monitoring/logs/RetrieveConnectionLogsAggregatorActorTest.java
test_class.identifier: RetrieveConnectionLogsAggregatorActorTest
test_case.body: @Test
      public void withMultipleClientsRespectsMaxLogSize() throws InterruptedException {
          new TestKit(actorSystem) {{
              final TestProbe sender = TestProbe.apply(actorSystem);
              final Connection connection = createConnectionWithClients(3);
  
              final Instant since = Instant.now().minusSeconds(333);
              final Instant until = Instant.now().plusSeconds(555);
              final Collection<RetrieveConnectionLogsResponse> responses = Arrays.asList(
                      createRetrieveConnectionLogsResponse(connection.getId(), since, until, maxSizeLogEntries()),
                      createRetrieveConnectionLogsResponse(connection.getId(), since, until, maxSizeLogEntries()),
                      createRetrieveConnectionLogsResponse(connection.getId(), since, until, maxSizeLogEntries())
              );
  
              final ActorRef underTest = childActorOf(
                      RetrieveConnectionLogsAggregatorActor.props(connection, sender.ref(), DITTO_HEADERS,
                              DEFAULT_TIMEOUT, LOGGER_CONFIG.maxLogSizeInBytes()));
  
              responses.forEach(response -> underTest.tell(response, getRef()));
  
              final RetrieveConnectionLogsResponse retrieveConnectionLogsResponse =
                      sender.expectMsgClass(RetrieveConnectionLogsResponse.class);
              assertThat((Long) retrieveConnectionLogsResponse.getConnectionLogs().stream()
                      .map(LogEntry::toJsonString)
                      .map(String::length)
                      .mapToLong(Integer::intValue)
                      .sum())
                      .isLessThan(LOGGER_CONFIG.maxLogSizeInBytes());
          }};
      }
test_case.class_method_signature: RetrieveConnectionLogsAggregatorActorTest.withMultipleClientsRespectsMaxLogSize()
test_case.full_signature: @Test public void withMultipleClientsRespectsMaxLogSize()
test_case.identifier: withMultipleClientsRespectsMaxLogSize
test_case.invocations: apply createConnectionWithClients minusSeconds now plusSeconds now asList createRetrieveConnectionLogsResponse getId maxSizeLogEntries createRetrieveConnectionLogsResponse getId maxSizeLogEntries createRetrieveConnectionLogsResponse getId maxSizeLogEntries childActorOf props ref maxLogSizeInBytes forEach tell getRef expectMsgClass isLessThan assertThat sum mapToLong map map stream getConnectionLogs maxLogSizeInBytes
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void withMultipleClientsRespectsMaxLogSize()
focal_class.declarator: log = LogUtil.obtain(this)
focal_class.modifier: private final
focal_class.original_string: private final DiagnosticLoggingAdapter log = LogUtil.obtain(this);
focal_class.type: DiagnosticLoggingAdapter
focal_class.var_name: log
focal_class.declarator: connection
focal_class.modifier: private final
focal_class.original_string: private final Connection connection;
focal_class.type: Connection
focal_class.var_name: connection
focal_class.declarator: originalHeaders
focal_class.modifier: private final
focal_class.original_string: private final DittoHeaders originalHeaders;
focal_class.type: DittoHeaders
focal_class.var_name: originalHeaders
focal_class.declarator: expectedResponses
focal_class.modifier: private
focal_class.original_string: private int expectedResponses;
focal_class.type: int
focal_class.var_name: expectedResponses
focal_class.declarator: sender
focal_class.modifier: private final
focal_class.original_string: private final ActorRef sender;
focal_class.type: ActorRef
focal_class.var_name: sender
focal_class.declarator: timeout
focal_class.modifier: private final
focal_class.original_string: private final Duration timeout;
focal_class.type: Duration
focal_class.var_name: timeout
focal_class.declarator: maximumLogSizeInByte
focal_class.modifier: private final
focal_class.original_string: private final long maximumLogSizeInByte;
focal_class.type: long
focal_class.var_name: maximumLogSizeInByte
focal_class.declarator: theResponse
focal_class.modifier: private
focal_class.original_string: private RetrieveConnectionLogsResponse theResponse;
focal_class.type: RetrieveConnectionLogsResponse
focal_class.var_name: theResponse
focal_class.file: services/connectivity/messaging/src/main/java/org/eclipse/ditto/services/connectivity/messaging/monitoring/logs/RetrieveConnectionLogsAggregatorActor.java
focal_class.identifier: RetrieveConnectionLogsAggregatorActor
focal_class.class_method_signature: RetrieveConnectionLogsAggregatorActor.RetrieveConnectionLogsAggregatorActor(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_class.full_signature: @SuppressWarnings("unused") private  RetrieveConnectionLogsAggregatorActor(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_class.identifier: RetrieveConnectionLogsAggregatorActor
focal_class.modifiers: @SuppressWarnings("unused") private
focal_class.parameters: (final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_class.signature:  RetrieveConnectionLogsAggregatorActor(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_class.class_method_signature: RetrieveConnectionLogsAggregatorActor.props(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_class.full_signature: public static Props props(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_class.identifier: props
focal_class.modifiers: public static
focal_class.parameters: (final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_class.return: Props
focal_class.signature: Props props(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_class.class_method_signature: RetrieveConnectionLogsAggregatorActor.createReceive()
focal_class.full_signature: @Override public Receive createReceive()
focal_class.identifier: createReceive
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Receive
focal_class.signature: Receive createReceive()
focal_class.class_method_signature: RetrieveConnectionLogsAggregatorActor.handleReceiveTimeout()
focal_class.full_signature: private void handleReceiveTimeout()
focal_class.identifier: handleReceiveTimeout
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void handleReceiveTimeout()
focal_class.class_method_signature: RetrieveConnectionLogsAggregatorActor.preStart()
focal_class.full_signature: @Override public void preStart()
focal_class.identifier: preStart
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void preStart()
focal_class.class_method_signature: RetrieveConnectionLogsAggregatorActor.handleRetrieveConnectionLogsResponse(
              final RetrieveConnectionLogsResponse retrieveConnectionLogsResponse)
focal_class.full_signature: private void handleRetrieveConnectionLogsResponse(
              final RetrieveConnectionLogsResponse retrieveConnectionLogsResponse)
focal_class.identifier: handleRetrieveConnectionLogsResponse
focal_class.modifiers: private
focal_class.parameters: (
              final RetrieveConnectionLogsResponse retrieveConnectionLogsResponse)
focal_class.return: void
focal_class.signature: void handleRetrieveConnectionLogsResponse(
              final RetrieveConnectionLogsResponse retrieveConnectionLogsResponse)
focal_class.class_method_signature: RetrieveConnectionLogsAggregatorActor.sendResponse()
focal_class.full_signature: private void sendResponse()
focal_class.identifier: sendResponse
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void sendResponse()
focal_class.class_method_signature: RetrieveConnectionLogsAggregatorActor.restrictMaxLogEntriesLength()
focal_class.full_signature: private RetrieveConnectionLogsResponse restrictMaxLogEntriesLength()
focal_class.identifier: restrictMaxLogEntriesLength
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: RetrieveConnectionLogsResponse
focal_class.signature: RetrieveConnectionLogsResponse restrictMaxLogEntriesLength()
focal_class.class_method_signature: RetrieveConnectionLogsAggregatorActor.stopSelf()
focal_class.full_signature: private void stopSelf()
focal_class.identifier: stopSelf
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void stopSelf()
focal_class.superclass: extends AbstractActor
focal_method.body: public static Props props(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes) {
  
          return Props.create(RetrieveConnectionLogsAggregatorActor.class, connection, sender, originalHeaders,
                  timeout, maxLogSizeBytes);
      }
focal_method.class_method_signature: RetrieveConnectionLogsAggregatorActor.props(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_method.full_signature: public static Props props(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_method.identifier: props
focal_method.invocations: create
focal_method.modifiers: public static
focal_method.parameters: (final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)
focal_method.return: Props
focal_method.signature: Props props(final Connection connection, final ActorRef sender,
              final DittoHeaders originalHeaders, final Duration timeout, final long maxLogSizeBytes)