{"id":296512,"date":"2019-12-27T15:00:36","date_gmt":"2019-12-27T15:00:36","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=296512"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=296512","title":{"rendered":"Java-\u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0437\u0430 27 \u0434\u0435\u043a\u0430\u0431\u0440\u044f"},"content":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/482218\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dz\/jh\/nm\/dzjhnmofxu1e-0hrybontvisn0g.jpeg\"><\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u0420\u043e\u043d \u041f\u0440\u0435\u0441\u0441\u043b\u0435\u0440 \u0441\u043e\u0431\u0440\u0430\u043b \u0438 \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u043d\u043e\u0432\u044b\u0439 \u00ab\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439\u00bb \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f Project Loom (\u0444\u0430\u0439\u0431\u0435\u0440\u044b \u0434\u043b\u044f Java). \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f JDK 14. \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/jdk.java.net\/loom\/\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0430\u043d\u043e\u043dc \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/loom-dev\/2019-December\/000931.html\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u041b\u044e\u0434\u0438 \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0432\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u0443, \u0438 \u043d\u0430 GitHub \u0443\u0436\u0435 \u043b\u0435\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 Loom: <a href=\"https:\/\/github.com\/vishpat\/loom-date-server\">Loom Date Server<\/a>, <a href=\"https:\/\/github.com\/lucav76\/Fibry\">Fibry<\/a> (\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0444\u0430\u0439\u0431\u0435\u0440\u043e\u0432), <a href=\"https:\/\/github.com\/akarnokd\/RxJavaFiberInterop\">RxJavaFiberInterop<\/a> (\u043c\u043e\u0441\u0442 \u043c\u0435\u0436\u0434\u0443 RxJava 3 \u0438 Loom), \u0438 \u043f\u0430\u0440\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Loom (<a href=\"https:\/\/github.com\/nazmulidris\/loomexample\">\u0440\u0430\u0437<\/a>, <a href=\"https:\/\/github.com\/c9katayama\/project-loom-examples\">\u0434\u0432\u0430<\/a>). \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0447\u0442\u043e \u0420\u043e\u043d <a href=\"https:\/\/www.reddit.com\/user\/pron98\">\u0435\u0441\u0442\u044c \u043d\u0430 Reddit<\/a>, \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c\u0438 \u043e\u043d \u043f\u0438\u0448\u0435\u0442 \u0442\u0443\u0434\u0430 \u0430\u043d\u043e\u043d\u0441\u044b \u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>  <\/li>\n<li>\n<p>InfernoPlus <a href=\"https:\/\/www.youtube.com\/watch?v=kJGcDU4esUY\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u0432\u0438\u0434\u0435\u043e<\/a> \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0444\u0430\u043d\u0430\u0442\u0441\u043a\u0443\u044e \u0438\u0433\u0440\u0443 \u0432 \u0436\u0430\u043d\u0440\u0435 Battle Royale \u043f\u0440\u043e Super Mario, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0445\u0430\u0439\u043f\u0430\u043d\u0443\u043b\u0430. \u041d\u0430 \u0431\u044d\u043a\u0435 \u0442\u0430\u043c \u0431\u044b\u043b\u0438 Java + Tomcat. \u041a\u043e\u043d\u0435\u0446 \u0438\u0441\u0442\u043e\u0440\u0438\u0438: \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u043f\u043e\u0437\u0432\u043e\u043d\u0438\u043b\u0438 \u0438\u0437 Nintendo \u0438 \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b\u0438 \u0437\u0430\u0441\u0443\u0434\u0438\u0442\u044c, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0438\u0433\u0440\u0443\u0448\u043a\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0443\u0431\u0438\u0442\u044c.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/li>\n<li>\n<p>\u041e\u043b\u0435\u0433 \u0428\u0435\u043b\u0430\u0435\u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e <a href=\"https:\/\/www.javaadvent.com\/2019\/12\/getting-started-with-graalvm.html\">\u00abGetting started with GraalVM\u00bb<\/a>. \u041e\u043b\u0435\u0433 \u043a\u043e\u0440\u043e\u0442\u043a\u043e, \u044f\u0441\u043d\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u043b \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b: \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 GraalVM? \u0417\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d? \u041d\u0430 \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0443\u0440\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439? \u041d\u0435\u0434\u0430\u0432\u043d\u044f\u044f <a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/efxtj7\/does_jre_need_to_be_installed_to_run_java_native\/\">\u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u044f \u043d\u0430 Reddit<\/a>, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u0441\u043a\u0430\u0437\u043e\u0447\u043d\u044b\u0439 \u00abnative bytecode\u00bb \u2014 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0445\u043e\u0442\u044c GraalVM \u0438 \u043f\u043e\u0448\u0435\u043b \u0432 \u043c\u0430\u0441\u0441\u044b, \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0432\u0441\u0451 \u044d\u0442\u043e \u2014 \u0442\u0451\u043c\u043d\u044b\u0439 \u043b\u0435\u0441. \u0421 \u044d\u0442\u0438\u043c \u043d\u0430\u0434\u043e \u0447\u0442\u043e-\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<blockquote><p>\u0427\u0442\u043e\u0431\u044b \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u043f\u043e GraalVM, \u043d\u0443\u0436\u043d\u043e:<\/p>\n<ul>\n<li>\u0437\u0430\u0444\u043e\u043b\u043b\u043e\u0432\u0438\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/twitter.com\/graalvm\">\u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 Twitter<\/a><\/li>\n<li>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u043c\u0443 <a href=\"https:\/\/t.me\/graalvm_ru\">\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443 \u0432 Telegram<\/a><\/li>\n<li>\u0437\u0430\u0439\u0442\u0438 \u0432 <a href=\"https:\/\/www.graalvm.org\/slack-invitation\">\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 Slack<\/a><\/li>\n<\/ul>\n<p>  <\/p><\/blockquote>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u0440\u0435\u043b\u0438\u0437\u0438\u043b\u0430\u0441\u044c <a href=\"https:\/\/debezium.io\/blog\/2019\/12\/18\/debezium-1-0-0-final-released\/\">Debezium 1.0.0<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0431\u044f \u043b\u0443\u0447\u0448\u0435\u0439 Java-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0434\u043b\u044f CDC (Change Data Capture). \u0423 \u043d\u0438\u0445 \u0434\u0430\u0436\u0435 \u0435\u0441\u0442\u044c <a href=\"https:\/\/debezium.io\/\">\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442<\/a> \u0441 FAQ. CDC \u2014 \u044d\u0442\u043e \u043f\u0440\u043e \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0442\u0430\u0449\u0438\u0442\u044c <a href=\"https:\/\/vladmihalcea.com\/the-best-way-to-implement-an-audit-log-using-hibernate-envers\/\">Hibernate Envers<\/a>, \u043d\u043e \u044d\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u043e\u0432\u0435\u0440\u0445\u0435\u0434\u0430 \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 redo log \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0435\u0433\u043e \u0438 \u043a\u0430\u043a-\u0442\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0435\u043c \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f Debezium. \u041f\u0440\u0438\u0447\u0435\u043c \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u043d\u0430 \u044d\u0442\u043e \u0432 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u043c \u0440\u0435\u0436\u043c\u0435, \u0442.\u0435. \u043d\u0435 \u0437\u0430\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u044f \u0432\u0430\u0448\u0435 OLTP \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e Oracle, MySQL, PostgreSQL (\u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043b\u043e\u0433 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f D \u0432 ACID), \u043d\u043e \u0438 <a href=\"https:\/\/www.mongodb.com\/blog\/post\/multi-document-transactions-in-mongodb\">\u0434\u043b\u044f MongoDB<\/a>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/vladmihalcea.com\/a-beginners-guide-to-cdc-change-data-capture\/\">\u0432 \u0441\u0442\u0430\u0442\u044c\u0435 Vlad Mihalcea<\/a>.<\/p>\n<p>  <\/li>\n<li>\n<p>\u041d\u0435\u043a\u0442\u043e eXsio \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u043d\u0430 GitHub <a href=\"https:\/\/github.com\/eXsio\/querydsl-entityql\">QueryDSL EntityQL<\/a> \u2014 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043a\u0443 \u043d\u0430 28 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c Native SQL \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JPA Entities \u0432 \u0432\u0438\u0434\u0435 fluent API. \u0421\u0435\u043a\u0440\u0435\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u044e DDL \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u043c\u043e\u0434\u0435\u043b\u044c QueryDSL. \u041c\u0435\u0442\u0430\u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>  <\/li>\n<li>\n<p>Vincenzo Palazzo \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0443\u043a\u0440\u0430\u0448\u0430\u0442\u044c Swing, \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e <a href=\"https:\/\/github.com\/vincenzopalazzo\/material-ui-swing\/releases\/tag\/v1.1.1-beta\">\u0432\u044b\u043f\u0443\u0449\u0435\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f v1.1.1-beta<\/a> \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 material-ui-swing. \u041f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0435\u0441\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0438 \u0433\u0438\u0444\u043a\u0438.<\/p>\n<p>  <\/li>\n<li>\n<p>28 \u043d\u043e\u044f\u0431\u0440\u044f, \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0437\u0430\u0440\u0435\u043b\u0438\u0437\u0438\u043b\u0441\u044f Apache Camel 3. \u0412 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u044b \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043f\u0430\u043b\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u043e\u0432. \u041b\u0443\u0447\u0448\u0435 \u043f\u043e\u0437\u0434\u043d\u043e, \u0447\u0435\u043c \u043d\u0438\u043a\u043e\u0433\u0434\u0430. \u0422\u0435\u043f\u0435\u0440\u044c Camel \u2014 \u044d\u0442\u043e \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 <a href=\"https:\/\/github.com\/apache\/camel\">Camel 3<\/a> (\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043d\u0430\u043c \u0432\u043e \u0432\u0441\u0435\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0431\u043e\u0447\u043a\u0430\u0445 \u0437\u0430\u0442\u044b\u0447\u043a\u0430), <a href=\"https:\/\/github.com\/apache\/camel-k\/\">Camel K<\/a> (Serverless, Kubernetes, Knative), <a href=\"https:\/\/github.com\/apache\/camel-quarkus\">Camel Quarkus<\/a>. \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f Java 11. \u042f\u0434\u0440\u043e <code>camel-core<\/code> \u0440\u0430\u0441\u043f\u0438\u043b\u0438\u043b\u0438 \u0438\u0437 \u0435\u0434\u0438\u043d\u043e\u0439 \u043c\u0435\u0433\u0430-\u043f\u043e\u043c\u043e\u0439\u043a\u0438 \u043d\u0430 33 JAR-\u0444\u0430\u0439\u043b\u0430, API \u043b\u0435\u0436\u0430\u0442 \u0432 <code>camel-api<\/code>, \u0430 \u0432 <code>camel-support<\/code> \u043b\u0435\u0436\u0438\u0442 <code>RouteBuilder<\/code> \u0438 \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432. \u0412\u0441\u0451 \u0441\u0442\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u0436\u0440\u0430\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 DSL \u0434\u043b\u044f \u0442\u0438\u043f\u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0435\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u043e\u0432 (\u0432\u043c\u0435\u0441\u0442\u043e \u0430\u0434\u0441\u043a\u0438\u0445 URI \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445). \u0412\u043d\u0443\u0442\u0440\u0438 \u0434\u0432\u0438\u0436\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u0449\u0438\u043d\u044b, \u0438 \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e Java 11 \u0441\u0442\u0430\u043d\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 (\u043d\u0430 \u044d\u0442\u0438\u0445 \u0441\u043b\u043e\u0432\u0430\u0445 \u043a\u0442\u043e-\u0442\u043e \u0437\u0430\u043a\u0430\u0448\u043b\u044f\u043b\u0441\u044f \u0438 \u0443\u043f\u0430\u043b \u0432 \u043e\u0431\u043c\u043e\u0440\u043e\u043a), \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0442\u043e\u0436\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 Java 9 <a href=\"https:\/\/docs.oracle.com\/javase\/9\/docs\/api\/java\/util\/concurrent\/Flow.html\">Flow API<\/a>. \u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0441 Microprofile \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0434\u0435\u043c\u043a\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e standalone \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Camel. \u041a\u043e\u0440\u043e\u0447\u0435, \u0436\u0438\u0442\u044c \u0441\u0442\u0430\u043b\u043e \u043b\u0443\u0447\u0448\u0435, \u0436\u0438\u0442\u044c \u0441\u0442\u0430\u043b\u043e \u0432\u0435\u0441\u0435\u043b\u0435\u0435.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0412\u044b\u0448\u043b\u0430 <a href=\"https:\/\/www.apache.org\/dist\/kafka\/2.4.0\/RELEASE_NOTES.html\">Kafka 2.4<\/a>, \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u2014 \u0431\u0440\u043e\u043a\u0435\u0440 \u0442\u0435\u043f\u0435\u0440\u044c <a href=\"https:\/\/cwiki.apache.org\/confluence\/display\/KAFKA\/KIP-392%3A+Allow+consumers+to+fetch+from+closest+replica\">\u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c<\/a> \u043d\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0443\u044e \u0440\u0435\u043f\u043b\u0438\u043a\u0443 (\u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u044d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0434\u0435\u043d\u044c\u0433\u0438). \u0417\u0430\u043f\u0438\u043b\u0438\u043b\u0438 \u043d\u043e\u0432\u043e\u0435 <a href=\"https:\/\/cwiki.apache.org\/confluence\/display\/KAFKA\/KIP-504+-+Add+new+Java+Authorizer+Interface\">Java Authorizer API<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u043e\u0439\u0442\u0438 \u0433\u043e\u043b\u043e\u0432\u043d\u044f\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u0431\u044b\u043b\u0438 \u0441 <code>kafka.security.auth.Authorizer<\/code>.<\/p>\n<p>  <\/li>\n<li>\n<p>\u041c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u0441 \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u041a\u0430\u0444\u043a\u0438, \u0432\u044b\u0448\u043b\u0430 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f <a href=\"https:\/\/spring.io\/blog\/2019\/12\/18\/spring-for-apache-kafka-2-4-release-candidate\">Spring for Kafka 2.4 RC1<\/a>. \u0412\u0441\u0451 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0434\u043b\u044f 2.3, \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438. <\/p>\n<p>  <\/li>\n<li>\n<p><a href=\"https:\/\/spring.io\/blog\/2019\/12\/23\/spring-cloud-roadmap-and-hoxton-and-greenwich-maintenance-and-eol-announcements\">\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u044b<\/a> \u0434\u0430\u0442\u044b EOL \u0434\u043b\u044f Spring Cloud Hoxton \u0438 Greenwich, \u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0430\u0436\u043e\u0440\u043d\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f Ilford. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432\u044b\u043f\u0443\u0449\u0435\u043d <a href=\"https:\/\/spring.io\/blog\/2019\/12\/21\/spring-cloud-hoxton-service-release-1-sr1-is-available\">Hoxton Service Release 1 (SR1)<\/a>. \u0422\u0430\u043c <a href=\"https:\/\/github.com\/orgs\/spring-cloud\/projects\/34\">\u043e\u0434\u043d\u0438 \u0431\u0430\u0433\u0444\u0438\u043a\u0441\u044b<\/a>, \u043d\u0430\u0434\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0415\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e Spring \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0435\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a\u0435 \u0414\u0436\u043e\u0448\u0430 \u041b\u043e\u043d\u0433\u0430. \u0415\u0441\u0442\u044c \u0432\u044b\u043f\u0443\u0441\u043a \u0437\u0430 <a href=\"https:\/\/spring.io\/blog\/2019\/12\/18\/this-week-in-spring-december-18th-2019\">18 \u0434\u0435\u043a\u0430\u0431\u0440\u044f<\/a> \u0438 \u0437\u0430 <a href=\"https:\/\/spring.io\/blog\/2019\/12\/24\/this-week-in-spring-december-24th-2019\">24 \u0434\u0435\u043a\u0430\u0431\u0440\u044f<\/a>. \u041a\u0441\u0442\u0430\u0442\u0438, \u0432 2020 \u0433\u043e\u0434\u0443 \u0414\u0436\u043e\u0448 \u043f\u0440\u0430\u0437\u0434\u043d\u0443\u0435\u0442 \u044e\u0431\u0438\u043b\u0435\u0439, 10 \u043b\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Spring, \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u2014 \u0434\u0435\u0441\u044f\u0442\u044c \u043b\u0435\u0442 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0443.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0416\u0435\u043c\u0435\u0440\u043e\u0432 <a href=\"https:\/\/blog.jetbrains.com\/idea\/2019\/12\/intellij-platform-roadmap-for-2020\/\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0440\u043e\u0430\u0434\u043c\u0430\u043f<\/a> IntelliJ Platform \u043d\u0430 2020 \u0433\u043e\u0434. <a href=\"https:\/\/habr.com\/ru\/company\/JetBrains\/blog\/481344\/\">\u0415\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a<\/a> \u0432 \u0445\u0430\u0431\u0440\u0430\u0431\u043b\u043e\u0433\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 JetBrains.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0412\u044b\u0448\u043b\u0430 <a href=\"https:\/\/blog.jetbrains.com\/idea\/2019\/12\/intellij-idea-2019-3-1-is-out\/\">IntelliJ IDEA 2019.3.1<\/a>. \u041f\u043e\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0445 \u0431\u0430\u0433\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u043e\u0432 <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/IDEA-223706\">\u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e<\/a> \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0442\u044c \u043e\u043a\u043d\u0430 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0418\u0434\u0435\u0438. \u041f\u043e\u0444\u0438\u043a\u0441\u0438\u043b\u0438 <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/IDEA-224676\">\u0447\u0443\u0434\u043e\u0432\u0438\u0449\u043d\u044b\u0439 \u0431\u0430\u0433<\/a>, \u043a\u043e\u0433\u0434\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 Tomcat \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c Maven \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0431\u043e\u0440\u043a\u0443.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0412\u044b\u0448\u0435\u043b <a href=\"https:\/\/www.youtube.com\/watch?v=OdoyCjpaQKs\">Eclipse 2019-12<\/a>. \u0418\u0437 Java 13 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 switch expressions \u0438 text blocks. <a href=\"https:\/\/www.youtube.com\/watch?v=OdoyCjpaQKs\">\u041d\u0430 YouTube \u0435\u0441\u0442\u044c \u0440\u043e\u043b\u0438\u043a<\/a> \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u044b\u0445 \u0444\u0438\u0447\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0438\u043a\u0442\u043e\u0440\u043e\u043c \u0441 \u0436\u0435\u0441\u0442\u043a\u0438\u043c \u00ab\u043d\u043e\u0432\u043e\u0441\u0442\u043d\u044b\u043c\u00bb \u0430\u043a\u0446\u0435\u043d\u0442\u043e\u043c. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u044d\u0442\u0438\u043c \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0430\u0441\u044c <a href=\"https:\/\/www.eclipse.org\/webtools\/releases\/3.16\/\">Eclipse Web Tools Platform<\/a> \u0438 \u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u2014 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043a\u043e\u043a IDE \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Eclipse \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 IDE-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 (Eclipse, Visual Studio Code, Theia) <a href=\"https:\/\/spring.io\/blog\/2019\/12\/19\/spring-tools-4-5-0-released\">\u0432\u044b\u0448\u043b\u0438 Spring Tools 4.5.0<\/a>. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 Eclipse, \u043d\u043e \u043e\u043d\u0438 \u043f\u043e\u0447\u0438\u043d\u0438\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0431\u0430\u0433\u0438 \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043a\u043e\u0441\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/li>\n<li>\n<p>Jens Reimann \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u043f\u043e\u0441\u0442\u0438\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u043f\u0440\u043e \u0441\u0442\u0430\u0442\u0443\u0441 Eclipse IoT. <a href=\"https:\/\/dentrassi.de\/2019\/12\/19\/update-on-eclipse-iot-packages\/\">\u0412 \u043d\u043e\u0432\u043e\u043c \u043f\u043e\u0441\u0442\u0435<\/a> \u043e\u043d \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043f\u0440\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 Helm Charts, \u043d\u0430\u0447\u0430\u043b\u0438 \u043e\u043d\u0438 \u0441 Ditto.<\/p>\n<p>  <\/li>\n<li>\n<p>Gregor Riegler <a href=\"https:\/\/www.youtube.com\/watch?v=0bhfWtZocF8\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0432\u0438\u0434\u0435\u043e<\/a> \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f Lift Up Conditional Refactoring. \u0421\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0435 <a href=\"https:\/\/www.reddit.com\/r\/java\/comments\/edn45c\/refactoring_java_lift_up_conditional\/\">\u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 Reddit<\/a>.<\/p>\n<p>  <\/li>\n<li>\n<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e <a href=\"https:\/\/blog.softwaremill.com\/alpakka-kafka-connector-an-open-source-reactive-enterprise-integration-library-for-java-and-scala-c5f954b66787\">\u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0441 Krzysztof Ciesielski<\/a> \u2014 \u0430\u0432\u0442\u043e\u0440\u043e\u043c Alpakka Kafka (\u043e\u0442\u043a\u0443\u0434\u0430 \u043e\u043d\u043e \u0432\u0437\u044f\u043b\u043e\u0441\u044c \u0438 \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u2014 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435).<\/p>\n<p>  <\/li>\n<li>\n<p>Google Cloud Spanner \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e <a href=\"https:\/\/in.relation.to\/2019\/12\/18\/google-cloud-spanner-dialect\/\">\u0437\u0430\u0440\u0435\u043b\u0438\u0437\u0438\u043b\u0438<\/a> \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0430\u043b\u0435\u043a\u0442 \u0434\u043b\u044f Hibernate. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 GitHub, \u0433\u0434\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Quarkus.<\/p>\n<p>  <\/li>\n<li>\n<p>Google Cloud \u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a <a href=\"https:\/\/cloud.google.com\/blog\/products\/ai-machine-learning\/machine-learning-feature-automl-natural-language-generally-available\">AutoML Natural Language<\/a>. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0438\u0445 \u0434\u0435\u0448\u0435\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u0432 \u043e\u0442\u0447\u0435\u0442\u0435 <a href=\"https:\/\/info.algorithmia.com\/hubfs\/2019\/Whitepapers\/The-State-of-Enterprise-ML-2020\/Algorithmia_2020_State_of_Enterprise_ML.pdf?hsLang=en-us\">2020 state of enterprise machine learning<\/a> \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0432 2020 \u0433\u043e\u0434\u0443.<\/p>\n<p>  <\/li>\n<li>\n<p>Square (\u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0435\u0440\u0447\u0430\u043d\u0442-\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440) \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 <a href=\"https:\/\/developer.squareup.com\/blog\/announcing-squares-new-java-sdk\/\">\u043d\u043e\u0432\u043e\u0435 SDK \u0434\u043b\u044f Java<\/a>. <\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"habr\">Habr<\/h2>\n<p>  <\/p>\n<ul>\n<li>\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0416\u0435\u043c\u0435\u0440\u043e\u0432 <a href=\"https:\/\/habr.com\/ru\/company\/JetBrains\/blog\/481344\/\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0440\u043e\u0430\u0434\u043c\u0430\u043f<\/a> IntelliJ Platform \u043d\u0430 2020 \u0433\u043e\u0434.<\/li>\n<li>\u0421\u0442\u0430\u0442\u044c\u044f <a href=\"https:\/\/habr.com\/ru\/users\/ashofthedream\/\" class=\"user_link\">ashofthedream<\/a> \u043f\u0440\u043e <a href=\"https:\/\/habr.com\/ru\/post\/481716\/\">\u0443\u0436\u0430\u0441\u044b \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/a> \u0441 \u043a\u0443\u0447\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043a\u043e\u0434\u043e\u043c.<\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/post\/481260\/\">\u00ab\u0418\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u0430\u0439\u0442\u043a\u043e\u0434\u0430 .class \u0444\u0430\u0439\u043b\u0430\u00bb<\/a> <a href=\"https:\/\/habr.com\/ru\/users\/esavin\/\" class=\"user_link\">esavin<\/a>. \u041b\u044e\u0442\u044b\u0439 \u0436\u0435\u0441\u0442\u043a\u0430\u0447. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0440\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u0440\u0435\u043c\u0435\u043d Java 6, \u043f\u043e\u0434\u0445\u043e\u0434 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439: \u0430\u0432\u0442\u043e\u0440 \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 \u0432\u0438\u0434\u0430 <code>@FieldOrder(index = 1)<\/code> \u0438 \u043f\u043e\u0442\u043e\u043c \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0435.<\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/post\/481354\/\">\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/a> \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 Telegram-\u0431\u043e\u0442\u0430 \u043e\u0442 <a href=\"https:\/\/habr.com\/ru\/users\/dp_ua\/\" class=\"user_link\">dp_ua<\/a>. \u041f\u0435\u0440\u0432\u0430\u044f \u0431\u044b\u043b\u0430 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 4 \u0434\u0435\u043a\u0430\u0431\u0440\u044f, <a href=\"https:\/\/habr.com\/ru\/post\/476306\/\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a>.<\/li>\n<li>\u00ab<a href=\"https:\/\/habr.com\/ru\/company\/tinkoff\/blog\/481784\/\">\u041a\u0430\u043a Kafka \u0441\u0442\u0430\u043b\u0430 \u0431\u043e\u043b\u044c\u044e<\/a>\u00bb \u2014 \u0441\u0442\u0430\u0442\u044c\u044f \u0438\u0437 \u0431\u043b\u043e\u0433\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0422\u0438\u043d\u044c\u043a\u043e\u0444\u0444 \u0411\u0430\u043d\u043a \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043e\u043d\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0438 IBM MQ \u043d\u0430 Kafka \u0438 \u043d\u0430\u0447\u0430\u043b\u0438 \u0436\u0438\u0442\u044c \u0441 exactly once delivery.<\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/pvs-studio\/blog\/481186\/\">\u0422\u043e\u043f 10 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 Java \u0437\u0430 2019 \u0433\u043e\u0434<\/a> \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0412\u0430\u043b\u0435\u0440\u0438\u0435\u043c \u041a\u043e\u043c\u0430\u0440\u043e\u0432\u044b\u043c \u0432 \u0431\u043b\u043e\u0433\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 PVS-Studio. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043f\u0440\u0438\u0448\u0435\u043b <a href=\"https:\/\/habr.com\/ru\/users\/lany\/\" class=\"user_link\">lany<\/a> \ud83d\ude42<\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/480412\/\">\u041e\u0442\u0447\u0435\u0442 \u043f\u0440\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0443 jug.msk.ru<\/a> \u0441 \u0410\u043b\u0435\u043a\u0441\u0435\u0435\u043c \u0420\u0430\u0433\u043e\u0437\u0438\u043d\u044b\u043c, \u043f\u0440\u043e \u043d\u043e\u0432\u044b\u0435 \u0438 \u0441\u0442\u0430\u0440\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Java Flight Recorder \u0432 OpenJDK 11.<\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/users\/agregory\/\" class=\"user_link\">AGregory<\/a> \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442\u044b \u043a\u043d\u0438\u0433\u0438 \u0427\u0435\u0434\u0430 \u0424\u0430\u0443\u043b\u0435\u0440\u0430 \u00ab\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442-\u0444\u0430\u043d\u0430\u0442\u0438\u043a\u00bb. <a href=\"https:\/\/habr.com\/ru\/post\/481254\/\">\u041f\u0435\u0440\u0432\u0430\u044f<\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/481458\/\">\u0432\u0442\u043e\u0440\u0430\u044f<\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/481500\/\">\u0442\u0440\u0435\u0442\u044c\u044f<\/a> \u0447\u0430\u0441\u0442\u0438.<\/li>\n<li>\u0412 \u0431\u043b\u043e\u0433\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 OTUS <a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/481804\/\">\u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439<\/a> \u0441\u0442\u0430\u0442\u044c\u044e Grzegorz Piwowarek \u043f\u0440\u043e <code>allOf<\/code> \u0438 <code>anyOf<\/code> \u0432 CompletableFuture \u2014 \u0447\u0442\u043e \u0441 \u043d\u0438\u043c\u0438 \u043d\u0435 \u0442\u0430\u043a \u0438 \u043a\u0430\u043a \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c\u0438.<\/li>\n<li>FunCorp <a href=\"https:\/\/habr.com\/ru\/company\/funcorp\/blog\/481814\/\">\u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0441<\/a> \u0434\u043b\u044f \u0431\u044d\u043a\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u00abFunCode Java\/Kotlin challenge\u00bb \u0441 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u044b\u043c \u043f\u0440\u0438\u0437\u043e\u0432\u044b\u043c \u0444\u043e\u043d\u0434\u043e\u043c \u0432 550 000 \u0440\u0443\u0431\u043b\u0435\u0439.<\/li>\n<\/ul>\n<p>  <\/p>\n<p><em>\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0414\u043b\u044f \u041f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u044f<\/em> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u043c Bryson Hammer \u0438 \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u0432 \u043a\u0430\u043d\u0430\u0434\u0441\u043a\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0435 \u041a\u043e\u043a\u0440\u0430\u043d, \u043d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 Bow Valley High School. Bryson \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f\u0445 \u0445\u043e\u043b\u043e\u0434\u043d\u044b\u0445 \u0441\u0435\u0432\u0435\u0440\u043d\u044b\u0445 \u043e\u043a\u0440\u0430\u0438\u043d, \u0433\u043e\u0440 \u0438 \u0436\u0438\u0432\u0443\u0449\u0435\u0439 \u0442\u0430\u043c \u0436\u0438\u0432\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/div>\n<p>               <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d() } } }t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>      <br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/482218\/\"> https:\/\/habr.com\/ru\/company\/jugru\/blog\/482218\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/482218\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dz\/jh\/nm\/dzjhnmofxu1e-0hrybontvisn0g.jpeg\"><\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u0420\u043e\u043d \u041f\u0440\u0435\u0441\u0441\u043b\u0435\u0440 \u0441\u043e\u0431\u0440\u0430\u043b \u0438 \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u043d\u043e\u0432\u044b\u0439 \u00ab\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439\u00bb \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f Project Loom (\u0444\u0430\u0439\u0431\u0435\u0440\u044b \u0434\u043b\u044f Java). \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f JDK 14. \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/jdk.java.net\/loom\/\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0430\u043d\u043e\u043dc \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/loom-dev\/2019-December\/000931.html\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u041b\u044e\u0434\u0438 \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0432\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u0443, \u0438 \u043d\u0430 GitHub \u0443\u0436\u0435 \u043b\u0435\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 Loom: <a href=\"https:\/\/github.com\/vishpat\/loom-date-server\">Loom Date Server<\/a>, <a href=\"https:\/\/github.com\/lucav76\/Fibry\">Fibry<\/a> (\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0444\u0430\u0439\u0431\u0435\u0440\u043e\u0432), <a href=\"https:\/\/github.com\/akarnokd\/RxJavaFiberInterop\">RxJavaFiberInterop<\/a> (\u043c\u043e\u0441\u0442 \u043c\u0435\u0436\u0434\u0443 RxJava 3 \u0438 Loom), \u0438 \u043f\u0430\u0440\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Loom (<a href=\"https:\/\/github.com\/nazmulidris\/loomexample\">\u0440\u0430\u0437<\/a>, <a href=\"https:\/\/github.com\/c9katayama\/project-loom-examples\">\u0434\u0432\u0430<\/a>). \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0447\u0442\u043e \u0420\u043e\u043d <a href=\"https:\/\/www.reddit.com\/user\/pron98\">\u0435\u0441\u0442\u044c \u043d\u0430 Reddit<\/a>, \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c\u0438 \u043e\u043d \u043f\u0438\u0448\u0435\u0442 \u0442\u0443\u0434\u0430 \u0430\u043d\u043e\u043d\u0441\u044b \u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>  <\/li>\n<li>\n<p>InfernoPlus <a href=\"https:\/\/www.youtube.com\/watch?v=kJGcDU4esUY\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u0432\u0438\u0434\u0435\u043e<\/a> \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0444\u0430\u043d\u0430\u0442\u0441\u043a\u0443\u044e \u0438\u0433\u0440\u0443 \u0432 \u0436\u0430\u043d\u0440\u0435 Battle Royale \u043f\u0440\u043e Super Mario, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0445\u0430\u0439\u043f\u0430\u043d\u0443\u043b\u0430. \u041d\u0430 \u0431\u044d\u043a\u0435 \u0442\u0430\u043c \u0431\u044b\u043b\u0438 Java + Tomcat. \u041a\u043e\u043d\u0435\u0446 \u0438\u0441\u0442\u043e\u0440\u0438\u0438: \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u043f\u043e\u0437\u0432\u043e\u043d\u0438\u043b\u0438 \u0438\u0437 Nintendo \u0438 \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b\u0438 \u0437\u0430\u0441\u0443\u0434\u0438\u0442\u044c, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0438\u0433\u0440\u0443\u0448\u043a\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0443\u0431\u0438\u0442\u044c.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-296512","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/296512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=296512"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/296512\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=296512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=296512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=296512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}