Возникла потребность подключаться из Java приложения к брокеру RabbitMQ с использованием защищенного соединения. Приложение на Spring Boot, живёт в контейнере Docker и должно слушать два узла Rabbit параллельно.
На входе: сертификат клиентского узла – контейнер client-cert.pfx, корневой сертификат для него root-cert.crt
Открытый серверный сертификат шлюза Rabbit: выкачивается автоматически (можно подложить вручную)
Используемая версия java поддерживает форматы хранилищ и JKS, и PKCS12
Требуется: создать и положить сертификаты в Key Store (сертификаты приложения “клиентские”) и Trust Store (доверенные “серверные” сертификаты). В чём разница.
Очень легко и удобно оказалось в Докере (compose) связывать сети. Раньше сервисы обычно пихал в один compose-файл (или, точнее, лень было разделять специально – как шли “из коробки” – так и запускались).
Но стало неудобно. Совсем неудобно стало, что каждый норовит себе отдельную БД поднять соседним контейнером. И всё равно приходится лезть, и монтирование данных для БД на хостовой ФС прописывать. Ближе к делу:
Довелось недавно, оказавшись на задворках Москвы, сходить в любопытный театр (Этнотеатр) на не менее любопытный спектакль – Комедия о Фроле Скобееве.
Современная постановка сделана по пьесе конца XIX века, а та, в свою очередь, написана по произведению века XVII (или начала XVIII, тут мнения расходятся).
Частенько в коде встречаются перечисления, дополнительно хранящие некие значения (в виде private final поля обычно).
Чтобы в дальнейшем можно было, например, при сериализации в json это значение подставлять автоматом (@JsonValue у Jackson). Тогда возникает обычно и обратная задача – десериализовать (распарсить) значение обратно в Enum (@JsonCreator у Jackson).
Вот мне и надоело копипастить туда-сюда все эти методы (сериализации/десериализации) между классами Enum. Решил сделать один раз утилитный метод и в проекте им пользоваться. Благо, время позволило.
Накопилось ещё некоторое количество “приёмчиков” работы с Open/Libre Office. Если предыдущая заметка на эту тему была посвящена LO Writer, то на сей раз – “подопытным” выступает пакет Calc (электронные таблицы).
Для затравки – простое, но часто нужное действие – перемещение строк и столбцов таблицы.
В силу определённых обстоятельств – периодически стал возникать вопрос, в каких временных рамках я занимался тем или иным проектом. И готового ответа на него у меня не было – как-то не приходило в голову фиксировать подобную информацию.
Но есть же git – ведь он поможет? Ведь поможет, да?
Решил слегка “причесать” и обобщить свой опыт по этому вопросу. Чтобы удобней было пользоваться, как этакой краткой инструкцией, а не искать разрозненные ответы на SO и т.п.
Задача проста – сделать удобно 🙂
Взять GitLab (много где используется, как self-hosted) и выкачать с него все репозитории проекта. Чтобы можно было локально работать с ними, не загружая каждый отдельно.
Возникла потребность настраивать по-разному конфиги гита для разных проектов (email контактный поменять, хотя бы, или хук на прогон тестов повесить).
Ну и понятно, что как-то эти конфиги подкладывать туда-сюда – не слишком увлекательно. К счастью, в свежих версиях гита – есть инклюды. В том числе – по условию – includeIf. Вот ими и стоит воспользоваться.