日別アーカイブ: 2019年7月1日

Moving Jakarta Forward: Jakarta NoSQL Approved as an EE4J Project

このエントリは以下のエントリをベースにしています。
This entry is based on the following one written by Otavio Santana (Software Engineer, SouJava/Platform.sh).
https://dzone.com/articles/moving-jakarta-forward-jakarta-nosql-has-approved

Jakarta NoSQLがこれまでの1年のコミュニティによる作業の結果、EE4Jとして承認されました。

Jakarta NoSQL
https://projects.eclipse.org/projects/ee4j.nosql

この仕様に関する主な質問への説明を書いたエントリがいくつか出ています。

The first step in Jakarta NoSQLの技術的な最初の一歩はAPIの作成です。APIにはモジュール性があり、それはEclipse JNoSQLに由来します。したがって、Jakarta NoSQLがAPIとTCKであり、EclipseJNoSQLがそれに対する参照実装です。

Eclipse JNoSQL
http://www.jnosql.org/

最初のスコープのプロジェクトが存在し、Jakarta NoSQLとしてEclipse Foundationに移行するための法的プロセスがあります。基本的にEclipse JNoSQLからの移行に関するものです。新しいパッケージ名は “jakarta.nosql”です。以下のコードは、将来のAPIの使い方の例です。

Eclipse JNoSQL
http://www.jnosql.org/
https://github.com/eclipse-ee4j/nosql

import jakarta.nosql.document.DocumentCollectionManager;
import jakarta.nosql.document.DocumentCollectionManagerFactory;
import jakarta.nosql.document.DocumentConfiguration;
import jakarta.nosql.document.DocumentDeleteQuery;
import jakarta.nosql.document.DocumentEntity;
import jakarta.nosql.document.DocumentQuery;
import java.util.Arrays;
import java.util.List;

public class App {

    public static void main(String[] args) {
        //it loads from Service loader
        DocumentConfiguration configuration = DocumentConfiguration.getConfiguration();
        try (DocumentCollectionManagerFactory managerFactory = configuration.get()) {
            final DocumentCollectionManager manager = managerFactory.get("database");
            DocumentEntity entity = DocumentEntity.of("God");
            entity.add("name", "Diana");
            entity.add("age", 10);
            entity.add("versions", Arrays.asList("0.0.1", "0.0.2", "0.0.3"));
            manager.insert(entity);
            List<DocumentEntity&gt; entities = DocumentQuery.select().from("God")
                    .where("name").eq("Diana").execute(manager);
            DocumentDeleteQuery.delete().from("God")
                    .where("age").gte(10).execute(manager);
        }
    }
}

Jakarta NoSQLはEclipse JNoSQLと同じアプローチを使う予定です。言い換えると、NoSQLタイプ(Key-Value、カラム、ドキュメント、グラフ)ごとに1つのAPIがあります。マッピングでは、Entity、Column、IdなどのMappingアノテーションを含む、すべてのNoSQLデータベースに共有されるクラスを持つ共通APIを伴う同じパスを使用します。

import jakarta.nosql.mapping.Column;
import jakarta.nosql.mapping.Entity;
import jakarta.nosql.mapping.Id;
import java.util.List;

@Entity
public class Person {
    @Id
    private Long id;
    @Column
    private String name;
    @Column
    private List<String&gt; phones;
    //getter and setter
}

import jakarta.nosql.document.DocumentQuery;
import jakarta.nosql.mapping.document.DocumentTemplate;
import javax.enterprise.inject.se.SeContainer;
import javax.enterprise.inject.se.SeContainerInitializer;
import java.util.Arrays;
import java.util.Optional;
import java.util.concurrent.ThreadLocalRandom;
import static jakarta.nosql.document.DocumentQuery.select;

public class App2 {

    public static void main(String[] args) {
        ThreadLocalRandom random = ThreadLocalRandom.current();
        Long id = random.nextLong();
        try (SeContainer container = SeContainerInitializer.newInstance().initialize()) {
            Person person = new Person();
            person.setPhones(Arrays.asList("234", "432"));
            person.setName("Name");
            person.setId(id);
            DocumentTemplate template = container.select(DocumentTemplate.class).get();
            Person saved = template.insert(person);
            System.out.println("Person saved" + saved);
            DocumentQuery query = select().from("Person")
                    .where("_id").eq(id).build();
            Optional<Person&gt; personOptional = template.singleResult(query);
            System.out.println("Entity found: " + personOptional);
        }
    }
}

Jakarta EEには明るい未来があります。オープンソースであり、重要な統合の機能が含まれており、そして最も重要なのはコミュニティです。結局のところ、透明性を高めることがJakartaの最も強力な側面です。つまりテクノロジ自体ではなく、コミュニティの中心の透明性です。したがって、成功は各開発者の手に委ねられています。 この最初のJakarta EEの仕様で両方を提供したいと思っています。

Update for Jakarta EE community: June 2019

このエントリは以下のエントリをベースにしています。
This entry is based on the following one written by Tanja Obradovic (Jakarta EE Program Manager at Eclipse Foundation).
https://blogs.eclipse.org/post/tanja-obradovic/update-jakarta-ee-community-june-2019

先月、Jakarta EEコミュニティ向けに毎月のEメールでのアップデートを開始したのとともに、これらの最新情報をブログとして公開し情報を共有することにしました。以後で、先月の出来事を確認まとめます。

Jakarta EE 8 release and progress

Jakarta EE 8は、javax名前空間の使用も含めて、Java EE 8と完全に互換性があります。 Jakarta EE 8仕様、Jakarta EE 8 TCKのデリバリ、およびJakarta EE 8互換のインプリメンテーションの作成プロセスでは、透明性を担保します。

Mike MilinkovichがJakarta EE 8に関するFAQを公開しました。

  • Jakarta EE 8は、javax APIに依存する既存のJava EEアプリケーションを壊すのか?
  • Jakarta EE 8の構成要素
  • Jakarta EE 8の互換実装
  • Jakarta EE 8のデリバリプロセス
  • Jakarta EE 8のリリース時期

Mikeのエントリをぜひご一読ください。

Frequently Asked Questions About Jakarta EE 8
https://eclipse-foundation.blog/2019/05/08/jakarta-ee-8-faq/
https://logico-jp.io/2019/05/14/faq-about-jakarta-ee-8/

Jakarta EE 8リリースの作業に皆様のご支援が必要です。プロジェクトチームはEclipse EE4Jプロジェクトに参加して、 Jakarta Specification Project NamesとJakarta Specification Scope Statementsの支援をお願いします。

EE4J Projects (Eclipse Enterprise for Java)
https://github.com/orgs/eclipse-ee4j/projects
Jakarta Specification Project Names
https://github.com/orgs/eclipse-ee4j/projects/11
Jakarta Specification Scope Statements
https://github.com/orgs/eclipse-ee4j/projects/10

Jakarta EE Platformの作業に参加したい場合、以下の3プロジェクトに対して注意しておくべきでしょう。現時点では、Jakarta EE 9の計画や準備について発言するのであれば、Jakarta EE.Next Roadmap Planningに参加するのがよいでしょう。

プロジェクト名プロジェクトの目的
Jakarta EE 8 Platform SpecificationJakarta EE 8のプラットフォーム仕様作成に関連する作業をトラックすること
Jakarta EE 9 Platform SpecificationJakarta EE 9のプラットフォーム仕様の作成に関連する作業をトラックすること
Jakarta EE.Next Roadmap PlanningJakarta EE 9リリースのロードマップおよび計画を定めること

jakartaee-platform
https://github.com/eclipse-ee4j/jakartaee-platform/projects
Jakarta EE.Next Roadmap Planning
https://github.com/eclipse-ee4j/jakartaee-platform/projects/1

Election schedule for Jakarta EE working group committees

3つの主要委員会(Committee、Steering Committee、Specification Committee、Marketing and Brand Committee)がJakarta EE Working Groupのさまざまな役割を推進していきますが、そのメンバーは選挙で選ばれます。選出された人は、Enterprise Members、Participant Members、Committer Membersのそれぞれを代表します。Strategic Membersにはそれぞれこれらの委員会に任命された代表がいます。

Eclipse FoundationはJakarta EE Working Groupに代わり、以下のタイムテーブルで選挙を実施しました。

  • 推薦期間:5月24日 – 6月4日(自己推薦は大歓迎)
  • 選挙期間:6月11日 – 6月25日
  • 当選者発表:6月27日

すべてのメンバーは、誰かを推薦するよう検討することが奨励されており、自薦も歓迎します。推薦期間は6月4日までです。推薦者がいる場合はelections@eclipse.orgに送ってください。

推薦期間が終了すると、全Working Groupメンバーに対し、候補者と投票のお知らせをメールで選挙権のあるメンバーに通知する旨の知らせが届きます。選挙プロセスは、Eclipse細則で定義されているように、Eclipseの “Single Transferable Vote”方式に従います。

Eclipse Foundation Governance Documents
https://www.eclipse.org/org/documents/

選挙終了後すみやかにこのメーリングリストで当選者を発表します。

以下のポジションがこの選挙で決まる予定です(訳注:Enterprise Member以外は決まったため、以下に追記してあります)。

Steering Committee
  • Enterprise Membersで2席
  • Martijn Verburg (London Java Community)
  • Ivar Grimstad
Specification Committee
  • Enterprise Membersで2席
  • Alex Theedom (London Java Community)
  • Werner Keil
Marketing and Brand Committee
  • Enterprise Membersで2席
  • Theresa Nguyen (Microsoft)
  • 空席
Transitioning Jakarta EE to the jakarta namespace

Java EEからEclipse Foundationへの移行プロセスはEclipse Foundationのスタッフや参加している多くのコントリビュータ、コミッター、メンバー、ステークホルダーが共同作業してきたものです。先月、javaxパッケージの名前空間はJakarta EEコミュニティが今後進化させることはないこと、そして既存の仕様名のようなJavaの商標をJakarta EEの仕様が利用してはいけないことが明らかになりました。これらの制限は当初想定されていたものではありませんが、javaxの変更には常に長期的な法的および商標の制限が含まれているため、Jakarta EEの最大の関心事になる可能性があります。

Jakarta EEを進化させるためには、新しい名前空間に移行する必要があります。会話をはじめるために、Jakarta EE仕様委員会はスムーズな移行を進めるため、新しい名前空間への移行方法に関する2つの提案(Jakarta EE 9でのビッグバン的な変更、Jakarta EE 10の新機能とJakarta EE 9以後の変更の都度の段階的な変更)を準備しました。これらの提案は出発点にすぎず、コミュニティからのより多くの提案を期待しています。

jakarta名前空間への移行方法に関するコミュニティでの議論は2019年6月9日に終了しました。

このトピックに関する以下のエントリを是非ご覧ください。

2019 Jakarta EE Developer Survey Results

Eclipse Foundationは最近、2019年のJakarta EE開発者調査の結果を発表しました。これは、エンタープライズJavaプログラミングのトレンドとクラウドネイティブテクノロジの採用についての調査で、1,800人近くのJava開発者を対象としたものです。 London Java CommunityやJava User Groupsを含むメンバー企業やパートナーと協力して2019年3月にEclipse Foundationが実施したこの調査の目的は、JavaエコシステムのステークホルダーがエンタープライズJava開発者コミュニティのもつ要件、優先順位、認識の理解を進めるためです。 結果は以下からご覧頂けます。

2019 Jakarta EE developer survey
https://jakarta.ee/documents/insights/2019-jakarta-ee-developer-survey.pdf

調査対象の1/3の開発者が現在クラウドネイティブアーキテクチャを開発しており、別の30%の人たちが翌年までには携わる予定があると答えています。さらに、クラウドで稼働するJavaアプリケーションの個数は来る2年で激増することが想定されており、32%の回答者が、この2年の間に自身が携わったJavaアプリケーションの2/3はクラウドで稼働すると考えています。また、回答者の40%以上が、Javaをクラウドで実装するためにマイクロサービスアーキテクチャを使用しています。

Community engagement

Jakarta EEコミュニティは非常に活発なものになるでしょう。特に、最新かつ最高のもので常に最新の状態に保つために使われるさまざまなチャネルではそうでしょう。Tanja Obradovicのブログでは、コミュニティエンゲージメントプランをチラ見せしています。

Jakarta EE Community Engagement
https://blogs.eclipse.org/post/tanja-obradovic/jakarta-ee-community-engagement

コミュニティエンゲージメントについては、Tanja Obradovicのエントリをご覧ください。

Jakarta EE Wiki

もうJakarta EE Wikiをチェックされましたか?このWikiには重要な情報が記載されています。例えばプロセスガイドラインやドキュメント、Eclipseガイドやメーリングリスト、Jakarta EE Workling Groupの重要事項などなどです。

Jakarta EE Wiki
https://wiki.eclipse.org/Jakarta_EE

このページはまだ作成途中であり、来る数週間、数ヶ月で進化していく予定です。コミュニティからのインプットやご提案を承っております。

Jakarta EE Community Update: May video call

直近のJakarta EE Community Updateミーティングは5月に開催されました。この中では以下のことが取り上げられました。

  • Jakarta EEの進捗状況
  • Java商標に対するJakarta EEの権利
  • javax名前空間からjakarta名前空間への移行(javaxからjakartaへのマッピング、再パッケージ化が必要な場合と名前空間への移行が不要な場合について)
  • 技術革新を妨げずに将来のバージョンでJava EE 8およびJakarta EEとの互換性を最大限に高める方法
  • Jakarta EE 8のリリース
  • PMC/Projectsアップデート、など。

Jakarta EEコミュニティアップグレードミーティングの議事録、ならびに動画がありますのでご利用ください。

Jakarta EE presence at conferences: May overview

5月はクラウドネイティブが街の話題になっていました。JAX 2019、Red Hat Summit 2019、KubeCon + CloudNativeCon Europe 2019などのコンファレンスの内容はクラウドネイティブとITモダナイゼーション成功のためのこの重要なアプローチの活用方法で埋め尽くされていました。Eclipse Foundationはクラウドネイティブテクノロジーの採用をより理解するため、コミュニティの意向を探るべくそこにいました。

JAX 2019
https://jax.de/en/
Red Hat Summit 2019
https://www.redhat.com/en/summit/2019
KubeCon + CloudNativeCon Europe 2019
https://events.linuxfoundation.org/events/kubecon-cloudnativecon-europe-2019/

JAX 2019におけるJakarta EEの将来に関するTanja Obradovicの動画インタビューもチェックしてください。

EclipseCon Europe 2019: Call for Papers open until July 15

またこの時期がやってきました。EclipseCon Europe 2019のスピーカーの一員となるべくCfPを出してください。コンファレンスはドイツのLudwigsburgで2019年10月21日から24日に開催されます。CfPのEarly Bird submissionは7月1日まで、最終締め切りは7月15日です。Jamekaのブログエントリをご覧になって、すぐにCfPを出してください!

EclipseCon Europe 2019: Call for Papers open until July 15 – Submit a talk today!
https://blogs.eclipse.org/post/jameka-woodberry/eclipsecon-europe-2019-call-papers-open-until-july-15-submit-talk-today
Call for Papers
https://www.eclipsecon.org/europe2019/cfp

9月10日に予定しているJakartaOneライブストリーミングコンファレンスに向けて鋭意作業中です。Call for Paperの締め切りは、7月15日13時07分(UTC、JSTでは同日22時07分)までです(訳注:本文では7月1日でしたが、延長されています)。

JakartaOne
http://jakartaone.org/

Jakarta EEに興味を持っていただきありがとうございます。  jakarta.ee-wg@eclipse.org  メーリングリストをサブスクライブし、Jakarta EE Working Groupに参加して、わくわくする未来に向けてJakarta EEを導く支援をお願いします。

これからのクラウド向けエンタープライズJavaプラットフォームを一緒に作っていくことに興味がある方は、ブログをご覧になって、月例のJakarta Tech Talksにご参加ください。Eclipse newsletterのサブスクライブもお忘れなく。

Jakarta EE Blogs
https://jakartablogs.ee/
Jakarta EE Tech Talks
https://www.meetup.com/ja-JP/jakartatechtalks_/
Eclipse Newsletter
https://www.eclipse.org/community/eclipse_newsletter/