import com.here.platform.data.client.base.generated.scaladsl.model.config.CatalogsResultBase
import com.here.platform.data.client.base.scaladsl.BaseClient
import com.here.platform.data.client.base.http.settings.{
ApiConfiguration,
RetryPolicy,
RetryStrategyType
}
import java.util.concurrent.{ExecutorService, ForkJoinPool}
import scala.concurrent.{Await, ExecutionContext}
import com.here.platform.data.client.base.generated.codecs.JsonSupport._
import com.here.platform.data.client.base.generated.scaladsl.api.config.ConfigApi
import com.here.platform.data.client.base.common.metrics.scaladsl.BaseClientMetricsScala
import scala.concurrent.duration._
import scala.util.{Failure, Success}
object WorkingWithBaseClientMain2 {
import ExecutionContext.Implicits.global
def main(args: Array[String]): Unit = {
val client = BaseClient()
val configApi = client.of[ConfigApi]
val retryPolicy =
RetryPolicy(100.millis, 10.seconds, 60.seconds, Set(408), RetryStrategyType.EXPONENTIAL, 10)
val result = configApi
.getCatalogs(
verbose = Some(false),
organisationType = Nil,
layerType = Nil,
region = Nil,
resourceType = None,
coverage = Nil,
access = Nil,
marketplaceReady = None,
sortBy = None,
sortOrder = None
)
.withConfig(ApiConfiguration(retryPolicy))
.executeToEntity()
result
.andThen {
case Success(response) => println(s"response: $response")
case Failure(ex) => ex.printStackTrace()
}
.andThen {
case _ =>
BaseClientMetricsScala()
.getMetricsFor("ConfigApi.getCatalogs")
.flatMap(_.counter)
.foreach(c => println(c.count))
}
Await.result(result, Duration.Inf)
}
}
import com.here.platform.data.client.base.common.metrics.javadsl.BaseClientMetricsJava;
import com.here.platform.data.client.base.common.metrics.javadsl.MetricsJava;
import com.here.platform.data.client.base.generated.javadsl.api.config.ConfigApi;
import com.here.platform.data.client.base.generated.scaladsl.model.config.CatalogsListResult;
import com.here.platform.data.client.base.http.settings.ApiConfiguration;
import com.here.platform.data.client.base.http.settings.RetryPolicy;
import com.here.platform.data.client.base.http.settings.RetryStrategyType;
import com.here.platform.data.client.base.javadsl.BaseClient;
import com.here.platform.data.client.base.javadsl.BaseClientJava;
import java.time.Duration;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Optional;
public class JavaWorkingWithBaseClientMain2 {
public static void main(String[] args) {
BaseClient baseClient = BaseClientJava.instance();
ConfigApi configApi = new ConfigApi(baseClient);
ApiConfiguration config =
new ApiConfiguration.Builder()
.withRetryPolicy(
new RetryPolicy.Builder()
.withRetryStrategy(RetryStrategyType.EXPONENTIAL)
.withInitTimeout(Duration.ofMillis(100))
.withMaxAttempts(10)
.withRetriableHttpErrors(new HashSet(Arrays.asList(408)))
.withRequestTimeout(Duration.ofSeconds(10))
.withOverallTimeout(Duration.ofSeconds(60))
.build())
.build();
ConfigApi.GetCatalogsAdapter request =
configApi.getCatalogs().withVerbose(Optional.of(true)).build().withConfig(config);
CatalogsListResult listResult =
(CatalogsListResult) request.executeToEntity().toCompletableFuture().join();
System.out.println(listResult);
new BaseClientMetricsJava.builder()
.getInstance()
.getMetricsFor("ConfigApi.getCatalogs")
.flatMap(MetricsJava::getCounter)
.ifPresent(c -> System.out.println(c.count()));
}
}