Мы рады сообщить, что второй мажорный релиз Amplicode в 2024 году успешно состоялся. В этот релиз вошло большое количество улучшений, исправлений и новых фич. Вот некоторые из них:

  • Gutter Icons для Spring-объектов

  • Улучшенная генерация Spring Web тестов

  • Поддержка Extends и Include в Docker Compose

  • Генерация отдельных HTTP-методов для REST-контроллеров

  • Поддержка Kubernetes и Helm

Gutter Icons – один клик до самых важных действий  

Теперь вместо Editor Toolbar в Spring-объектах, JPA-сущностях и Spring Boot тестах вы увидите gutter icons (gutter иконки) напротив названий классов. Одна из них содержит часто используемые действия, ранее доступные в Editor Toolbar.

Кроме иконки с часто используемыми действиями, появился ещё один gutter icon –  Bean Navigation, показывающий взаимодействие текущего объекта с другими бинами. 

Из Bean Navigation можно увидеть какие бины заинжектированы в текущий бин и наоборот. Это касается как проектных бинов, так и тех, что используются из сторонних библиотек. Кроме того, если инжектирован интерфейс, можно увидеть всех кандидатов для инжекции. 

Подробнее про gutter иконки от Amplicode я рассказал в отдельном видео. Посмотрите его, чтобы увидеть эту фичу в действии: 

Улучшенная генерация Spring Web тестов  

Мы получили много запросов в наш телеграм-чат с просьбами улучшить генерацию тестов для Spring Web. Ваша активность помогла нам приоритизировать эту функциональность. 

Улучшения в генерации тестов можно разделить на две части: переработка UI и улучшение кода. 

Изменения в UI: 

  1. Теперь методы отсортированы так же, как и в контроллере. 

  2. Рядом с каждым методом отображается связанный с ним путь. 

  3. Элементы для работы с параметрами запроса и телом запроса переработаны, чтобы соответствовать поведению большинства HTTP-клиентов. 

  4. PathVariable и RequestParam теперь можно легко отличить благодаря понятным подписям. 

Изменения в кодогенерации: 

  1. В объекты типа String, представляющие собой JSON, автоматически инжектируется язык JSON, за счёт чего содержимое отображается как JSON файл, а не как обычная строка. 

  2. Уменьшено количество генерируемых локальных переменных. 

  3. Исправлен баг с некорректной передачей нескольких id в запросах. 

Частичная генерация CRUD REST контроллера 

В предыдущем релизе Amplicode появилась возможность создать CRUD Rest Controller для любой JPA сущности. Теперь можно создавать отдельные методы для REST-контроллеров, а не только весь контроллер целиком. Это особенно удобно, когда нужно добавить новый эндпоинт в уже существующий контроллер. 

Действия по созданию отдельных эндпоинтов доступны в Gutter Icon (1), панели Amplicode Designer (2) и меню «Generate» (3): 

Для каждого HTTP-метода можно указать или создать JPA Repository, DTO/Domain Object, Proxy Service и Request Path.  

Переиспользование сервисов в Docker Compose  

Docker Compose предлагает несколько способов переиспользования сервисов из одного файла в другой. Один из таких способов подразумевает использование include

Ключевое слово include позволяет включить один Docker Compose файл в другой. Этот способ включения одного файла в другой удобен, когда нужно просто переиспользовать одни и те же сервисы без дополнительной конфигурации. 

Amplicode знает про Include в Docker Compose и учитывает его для отображения элементов в панелях Amplicode Explorer и Structure: 

Но вот если вам нужно настроить переиспользуемые сервисы под свои нужды —   лучше использовать ключевое слово extends. С его помощью, как и с помощью include, можно включить сервис из одного Docker Compose файла в другой, но при этом переопределить любые его свойства.  

Amplicode поддерживает эту возможность не только с точки зрения визуального отображения, но и помогает непосредственно во время расширения сервисов. 

Теперь в меню «Generate» вы найдете не только действия для создания сервисов с нуля и рекомендации по генерации сервисов на основе уже объявленных в текущем compose файле, но и действие «Extends Existing Service»: 

Что самое потрясающее, панель Amplicode Designer в том числе будет учитывать те свойства, которые не объявлены для сервиса в текущем файле, но объявлены в том, на который мы ссылаемся: 

Подробнее про эту фичу я рассказал в отдельном видео: 

Поддержка Kubernetes и Helm  

Docker Compose отлично подходит для настройки окружения и деплоя нескольких сервисов на одной машине. Однако для продакшена часто нужны более мощные инструменты, такие как Kubernetes. 

Теперь Amplicode поддерживает Kubernetes и помогает генерировать Helm чарты! Вы можете создавать как пустые Helm чарты, так и готовые чарты для PostgreSQL, Kafka и Spring Boot приложений. 

Кроме того, запуск чартов стал еще проще – теперь это можно делать прямо из панели Amplicode Explorer, без необходимости обращаться к консоли:  

Наконец, состояние запущенных чартов можно проверять в панели Services:  

Можно сказать, что поддержка Kubernetes находится на стадии preview, и мы будем рады вашей обратной связи, чтобы улучшить функциональность в соответствии с вашими потребностями :)  

И это ещё не всё!  

На самом деле, это далеко не всё, что вошло в релиз Amplicode 2024.2. Помимо крупных новых фич, мы внесли множество мелких улучшений и исправлений – всего было закрыто более 170 тикетов

Напомню, что текущая версия Amplicode на данный момент доступна для 2-х версий IntelliJ IDEA: 2023.3, 2024.1. Поддержать IntelliJ IDEA 2024.2  мы планируем в ближайшее время. Если вы испытываете трудности с переходом на новые версии IntelliJ IDEA, вы всё ещё можете скачать и уставновить Amplicode 2024.1, он доступен для бóльшего количества версий IntelliJ IDEA.  

Огромное спасибо всем, кто делится своим опытом использования Amplicode в нашем телеграм-чате. В том числе благодаря вам мы смогли приоретизировать часть фич, которые ждали своего часа в бэклоге, а также исправили некоторые баги :)  

Следующий мажорный релиз запланирован на осень. Но до выхода Amplicode 2024.3 мы будем стабилизировать текущую версию и выпускать обновления с исправлениями. Подписывайтесь на наши ресурсы, чтобы быть в курсе: 

Комментарии (3)


  1. semo
    06.08.2024 12:05

    А можно сначала обновить сайт, магазины плагинов и выложить архивы?
    А то у вас все еще EAP версия.

    Зачем торопитесь?


    1. honest_niceman Автор
      06.08.2024 12:05

      Добрый день!

      На самом деле, у нас сейчас все версии – EAP. Я поэтому и не указал EAP в названии статьи, хотя возможно и стоило)

      Но в целом, этот EAP-постфикс у нас будет во всех версиях, которые будут опубликованы в этом году.

      При этом всё доступно, версии довольно стабильные (по крайней мере те обращения, которые мы получаем в телеграм-чате не носят критический характер), на сайте информация актуальная, касаемо магазина плагинов я не совсем понял о чём именно речь. Если речь про наш маркетплейс, который можно указать в IDE, как описано в рекомендуемом способе установки, то с ним обновление также проходит успешно.

      Если предпочитаете не указывать наш маркетплейс, а следить за обновлениями вручную и использовать архивы, то их я тоже опубликовал, можно на GitHub найти.

      Если вдруг какие-то проблемы возникнут с установкой/обновлением – всегда готов помочь :)


      1. semo
        06.08.2024 12:05

        Спасибо. Понятно все стало.