# 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.

version: '2.1'

services:
  oap:
    environment:
      SW_METER_ANALYZER_ACTIVE_FILES: spring-sleuth,batch-meter
      #virtual cache test case
      SW_SLOW_CACHE_SLOW_WRITE_THRESHOLD: default:-1
      SW_SLOW_CACHE_SLOW_READ_THRESHOLD: default:-1
      SW_CORE_TOPN_REPORT_PERIOD: 1 # TopN period
    extends:
      file: ../../script/docker-compose/base-compose.yml
      service: oap
    volumes:
      - ./batch-meter.yaml:/skywalking/config/meter-analyzer-config/batch-meter.yaml
    ports:
      - 12800

  provider:
    extends:
      file: ../../script/docker-compose/base-compose.yml
      service: provider
    environment:
      SW_METER_REPORT_INTERVAL: 5
    # Activate guava-cache plugin for virtual cache test case
    command: ["bash" , "-c" , "cp /skywalking/agent/optional-plugins/apm-guava-cache-plugin*.jar /skywalking/agent/plugins/ && java -jar /services_provider.jar"]
    depends_on:
      oap:
        condition: service_healthy
    ports:
      - 9090
  sender:
    image: "eclipse-temurin:8-jre"
    volumes:
      - ./../../java-test-service/e2e-mock-sender/target/e2e-mock-sender-2.0.0.jar:/e2e-mock-sender-2.0.0.jar
    command: [ "java", "-jar", "/e2e-mock-sender-2.0.0.jar" ]
    environment:
      OAP_HOST: oap
      OAP_GRPC_PORT: 11800
    networks:
      - e2e
    ports:
      - 9093
    healthcheck:
      test: ["CMD", "sh", "-c", "nc -nz 127.0.0.1 9093"]
      interval: 5s
      timeout: 60s
      retries: 120
    depends_on:
      oap:
        condition: service_healthy

networks:
  e2e:
