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

services:
  dubbo-samples-triple:
    type: app
    basedir: .
    checkPorts:
      - 2181
      - 50052
      - 50053
    mainClass: org.apache.dubbo.sample.tri.TriGrpcProvider

  dubbo-samples-triple-test:
    type: test
    basedir: .
    tests:
      # tri-->tri
      - "org.apache.dubbo.sample.tri/TriPbConsumerTest.class"
      - "org.apache.dubbo.sample.tri/TriWrapConsumerTest.class"
      - "org.apache.dubbo.sample.tri/TriGenericTest.class"
      # use url direct
      - "org.apache.dubbo.sample.tri/direct/TriDirectPbConsumerTest.class"
      - "org.apache.dubbo.sample.tri/direct/TriDirectWrapConsumerTest.class"
      # grpc-->tri
      - "org.apache.dubbo.sample.tri/grpc/Grpc*Test.class"
      # tri-->grpc
      - "org.apache.dubbo.sample.tri.grpc/TriGrpcDirectPbConsumerTest.class"
    systemProps:
      - zookeeper.host=dubbo-samples-triple
      - zookeeper.port=2181
      - provider.host=dubbo-samples-triple
      - provider.port=50052
      - grpc.provider.port=50053
    waitPortsBeforeRun:
      - dubbo-samples-triple:2181
      - dubbo-samples-triple:50052
      - dubbo-samples-triple:50053
    depends_on:
      - dubbo-samples-triple




