Жаль, что в статье вы не коснулись проблем безопасности. Правильно настроить безопасность приложения с учётом всех возможных вариантов запросов очень сложно и это одно и самых слабых мест GraphQL.
Мы используем для улучшения производительности. Создавая Method handle единожды, избегаем постоянных проверок во время вызова, которые есть в java.lang.reflect.Method.
Текущая ситуация не располагает к использованию Oracle JDK. LTS спустя 6 месяцев после релиза теперь только за деньги. Более того, Oracle JDK = OpenJDK (с некоторыми патчами) для JDK 8+. Единственное важное отличие — Java FX было нивелировано тем, что Java FX больше не входит в JDK.
Я так понимаю, что более сложному и адекватному решению в JDK просто не нашлось места. У JVM нет стандартного инструмента сборки, есть только низкоуровневые утилиты.
Так нет такого пункта в AGPL. Там написано, что ты должен открыть исходники. Это компании предлагали купить при двойном лицензировании, чтобы использовать под коммерческой лицензией.
Резюмируя: разница в неявном и явном указании на купить.
Разница вот в чём:
— в AGPL не написано, что ты должен что-то купить. Написано — что должен открыть исходный код. Купить — это частное следствие из лицензии и вариант, который предлагают компании.
— в SSPL написано, что ты должен купить, если не выполняешь условия бесплатного использования.
Такие методы используются компилятором, чтобы улучшить жизнь разработчикам. Иногда, эта магия ломается (например, при несовместимости версий библиотек), поэтому полезно о ней знать.
Да, мы
LambdaMetafactory.metafactory
тоже юзаем, генерируемConsumer<T>
на лету — UiControllerReflectionInspectorМодули в NPM им не нужны, в Java мире есть Maven. NPM тот еще ужас.
Кажется у вас нет плана.
Резюмируя: разница в неявном и явном указании на купить.
— в AGPL не написано, что ты должен что-то купить. Написано — что должен открыть исходный код. Купить — это частное следствие из лицензии и вариант, который предлагают компании.
— в SSPL написано, что ты должен купить, если не выполняешь условия бесплатного использования.