barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

среда, 18 марта 2020 г.

Spring boot 2.2.5 и Tinkoff openapi-java-sdk-java8 0.4.1: конфликт версий okhttp

Есть проект, собираемый Gradle. При попытке использовать Tinkoff openapi-java-sdk-java8 версии 0.4.1 вместе со Spring boot 2.2.5 возникает ошибка вида:
An attempt was made to call a method that does not exist. The attempt was made from the following location:

     ru.tinkoff.invest.openapi.okhttp.SandboxContextImpl.performRegistration(SandboxContextImpl.java:45)

The following method did not exist:

     okhttp3.RequestBody.create([B)Lokhttp3/RequestBody;
Если сделать gradle dependencies, то видна и причина данной ошибки:
com.squareup.okhttp3:okhttp:4.3.1 -> 3.14.7
Видно, что версия okhttp, требуемая для openapi-java-sdk, даунгэйдится до 3.14.7. Причина - в https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies/2.2.5.RELEASE, где определяется версия 3.14.7. 
Выход из ситуации - добавление в build.gradle:
ext['okhttp3.version'] = '4.3.1'
В целом про переопределение версий зависимостей, диктуемых spring boot'ом, написано тут: https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-customize-dependency-versions.

четверг, 5 марта 2020 г.

minikube для Windows: как дать больше памяти?

При старте minikube есть возможность установить опцию --memory с большим/меньшим размером памяти, чем дефолтные 3Гб. Однако, чтобы эта опция действительно применялась, придется пересоздать кластер, т.е. сделать:
minikube stop
minikube delete
minikube start --memory=4096m
Тогда получим в логе заветные:
Creating hyperv VM (CPUs=2, Memory=4096MB, Disk=20000MB)
, которых нет при обычном stop/start.

Необходимость удаления вызвана тем, что объем памяти - это параметр HyperV VM, которая создается единожды и при последующих запусках лишь переиспользуется. Возможно, есть возможность поменять объем памяти HyperV VM без ее удаления, но по крайней мере средствами minikube cli этого не сделать.