SlideShare a Scribd company logo
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK: How to Join In on All the Fun
CCC E2
David Buck
Principal Member of Technical Staff
Java Platform Group
November 18th, 2017
Confidential – Oracle Internal/Restricted/Highly Restricted 3
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
Confidential – Oracle Internal/Restricted/Highly Restricted 4
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• JVM Sustaining Engineer
• OpenJDK 8 Update Project
Maintainer
• JavaOne Rock Star
• Co-author of Oracle WebLogic
Server 11g 構築・運用ガイド
• @DavidBuckJP
• https://blogs.oracle.com/buck/
Who am I?
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Who are you?
• OpenJDK に貢献したい人
• OpenJDK の玄人
– fastdebug ビルド
– カスタム ビルド
Confidential – Oracle Internal/Restricted/Highly Restricted 6
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
セッションの目的
• JDK コードを弄て、ビルドする
• OpenJDK へコードを貢献する
• OpenJDK の進捗を追跡する
Confidential – Oracle Internal/Restricted/Highly Restricted 7
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Agenda
• OpenJDK プロジェクト
– 歴史、目的、単語
• ツールや技術
– ソースの入手、ビルド、テスト、レビューの準備など
• プロセス
– コード レビュー、プロジェクト、ロールなど
Confidential – Oracle Internal/Restricted/Highly Restricted 8
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK プロジェクト
Confidential – Oracle Internal/Restricted/Highly Restricted 9
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK とは?
• Java SE のオープンソースの実装Open source (GPL2 / L.E.) implementation
of Java SE
• JDK 7 以降の Reference implementation
• 多数の単体プロジェクトで構造
Confidential – Oracle Internal/Restricted/Highly Restricted 10
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
なぜ?
• Java の普及の推進
• ハードの売り上げの推進
Confidential – Oracle Internal/Restricted/Highly Restricted 11
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK プロジェクト
歴史
Confidential – Oracle Internal/Restricted/Highly Restricted 12
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK の前
• Sun Community Source License (SCSL)
• Java Research License (JRL)
Confidential – Oracle Internal/Restricted/Highly Restricted 13
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
The Java Trap (Java の罠)
Confidential – Oracle Internal/Restricted/Highly Restricted 14
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
タイムライン
• JavaOne 2006 で発表された
• 2006年11月 javac と HotSpot のコードのリリース
• 2007年の5月で殆どの残りがリリースされた
Confidential – Oracle Internal/Restricted/Highly Restricted 15
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
殆ど?
• フォントレンダリング -> freetype
• カラー管理システム-> lcms
• 音 -> Gervill
• アンチエリアジング -> (Ductus -> Marlin)
Confidential – Oracle Internal/Restricted/Highly Restricted 16
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
殆ど?
• OpenJDK 6 b10 から本当の OSS でビルドすることが出来た
Confidential – Oracle Internal/Restricted/Highly Restricted 17
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
二バージョン物語
• 初めての OpenJDK のリリース: JDK 7
• OpenJDK 6 は?
• 2006年の12月に Sun JDK 6 がリリースされた
Confidential – Oracle Internal/Restricted/Highly Restricted 18
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 19
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK とは?
Confidential – Oracle Internal/Restricted/Highly Restricted 20
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK ではない物
Confidential – Oracle Internal/Restricted/Highly Restricted 21
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK != IcedTea
• まだリリースされていない部分を OSS でカバー
– Java SE
– デプロイ機能
• Java Web Start
• Browser plugins
• 鶏が先か卵が先か
– OpenJDK をビルドするには SunJDK が必要
Confidential – Oracle Internal/Restricted/Highly Restricted 22
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK != Java Community Process
• JCPは 1998 年からあった
• 仕様を確定するプロセス (JSRs)
Confidential – Oracle Internal/Restricted/Highly Restricted 23
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK != OracleJDK
• OracleJDK
– OpenJDK + クローズドソース ★
– オラクルからサポートを購入出来る
★ クローズドソースとは
– デプロイの技術(Plug-in, Java Web Start)
– 有料機能 (Flight Recorder, usage tracker, MSI installer)
Confidential – Oracle Internal/Restricted/Highly Restricted 24
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK Projects
• ポート
• 新たな機能
• 将来のJDKのメージャーバージョン
• リリース済みのアップデート
• その他
Confidential – Oracle Internal/Restricted/Highly Restricted 25
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK Projects
Confidential – Oracle Internal/Restricted/Highly Restricted 26
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
ツール / 技術
Confidential – Oracle Internal/Restricted/Highly Restricted 27
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Mercurial のイロハ
Confidential – Oracle Internal/Restricted/Highly Restricted 28
By Cali Mastny and Matt Mackall (http://www.selenic.com/hg-logo/) [GPLv2 (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)], via Wikimedia Commons
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Mercurial とは?
Confidential – Oracle Internal/Restricted/Highly Restricted 29
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
“Mercurial is a free, distributed source
control management tool.“
(Mercurial は無料の分散型のソース
管理システムである。)
– https://www.mercurial-scm.org/
Confidential – Oracle Internal/Restricted/Highly Restricted 30
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
名前の意味は?
Confidential – Oracle Internal/Restricted/Highly Restricted 31
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
早い、液体、柔軟性
Confidential – Oracle Internal/Restricted/Highly Restricted 32
By Bionerd (Own work) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC BY 3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
悪い知らせ
GIT ではない
良い知らせ
GITとあまり変わらない
Confidential – Oracle Internal/Restricted/Highly Restricted 33
良い知らせと悪い知らせ
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
hg ≈ git
Confidential – Oracle Internal/Restricted/Highly Restricted 34
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
分散バージョン管理
Confidential – Oracle Internal/Restricted/Highly Restricted 35
By Axaluss - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=20053251
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• clone
• commit
• log
• push
• pull
• defpath
• status
• diff
• out
• add
Confidential – Oracle Internal/Restricted/Highly Restricted 36
上位の10つのコマンド
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Revision IDs
13365:862767b4c105
Confidential – Oracle Internal/Restricted/Highly Restricted 37
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Revision IDs
13365:862767b4c105
ローカル グローバル
Confidential – Oracle Internal/Restricted/Highly Restricted 38
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
自分の貢献を上へ push
Confidential – Oracle Internal/Restricted/Highly Restricted 39
By Pearson Scott Foresman - Archives of Pearson Scott Foresman, donated to the Wikimedia Foundation
This file has been extracted from another file: PSF P-730002.png, Public Domain,
https://commons.wikimedia.org/w/index.php?curid=3947194
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
他の人の変更を pull
Confidential – Oracle Internal/Restricted/Highly Restricted 40
Viking-nl at Dutch Wikipedia [GFDL (http://www.gnu.org/copyleft/fdl.html)
or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)],via Wikimedia Commons
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
ソースツリー
Confidential – Oracle Internal/Restricted/Highly Restricted 41
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
ソースツリー
Confidential – Oracle Internal/Restricted/Highly Restricted 42
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
ソースツリー
Confidential – Oracle Internal/Restricted/Highly Restricted 43
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Forests (森)
Confidential – Oracle Internal/Restricted/Highly Restricted 44
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Forests
Confidential – Oracle Internal/Restricted/Highly Restricted 45
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Forests
Confidential – Oracle Internal/Restricted/Highly Restricted 46
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Forest
• JDK をビルド出来る
• Forest の入手
– Forest のロートを clone
– get_source.sh スクリプトを実行
Confidential – Oracle Internal/Restricted/Highly Restricted 47
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 48
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JDK 8 以降
素晴らしい!
JDK 6 と JDK 7
素晴らしくない。。。
Confidential – Oracle Internal/Restricted/Highly Restricted 49
ビルド方法
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
ビルド(JDK8 以降)
sh configure
make
Confidential – Oracle Internal/Restricted/Highly Restricted 50
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Configure を実行
• 足りないパッケージを検出して、入手方法を教えてくれる
• すべてのプラットフォーム (はい、Windows でも)
• 重要なオプション
– Debug ビルド (--enable-debug)
– ccache 無効化(--disable-ccache)
– Bookstrap JDK のパース (--with-boot-jdk)
– configure スクリプトの debug 出力 (--debug-configure)
Confidential – Oracle Internal/Restricted/Highly Restricted 51
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
何かたりない?
Confidential – Oracle Internal/Restricted/Highly Restricted 52
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ build/linux-x86_64-normal-
server-release/jdk/bin/java -
version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment
(build 1.8.0-internal-
dbuck_2017_10_02_10_55-b00)
OpenJDK 64-Bit Server VM (build
25.71-b00, mixed mode)
$ build/linux-x86_64-normal-
server-release/jdk/bin/java -
version
Hello JavaOne 2017!
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment
(build 1.8.0-internal-
dbuck_2017_10_02_10_55-b00)
OpenJDK 64-Bit Server VM (build
25.71-b00, mixed mode)
Confidential – Oracle Internal/Restricted/Highly Restricted 53
何か変更しよう!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ build/linux-x86_64-normal-
server-release/jdk/bin/java -
version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment
(build 1.8.0-internal-
dbuck_2017_10_02_10_55-b00)
OpenJDK 64-Bit Server VM (build
25.71-b00, mixed mode)
$ build/linux-x86_64-normal-
server-release/jdk/bin/java -
version
Hello JavaOne 2017!
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment
(build 1.8.0-internal-
dbuck_2017_10_02_10_55-b00)
OpenJDK 64-Bit Server VM (build
25.71-b00, mixed mode)
Confidential – Oracle Internal/Restricted/Highly Restricted 54
何か変更しよう!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
テストケース
• 殆どの変更はテストケースが必要となる
– 新しい機能をテストする
– バグの修正をテストする
• Jtreg というテストフレームワークが一番利用されている
• 既存のテストを変更するだけで十分である場合が多い
Confidential – Oracle Internal/Restricted/Highly Restricted 55
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
プロセス / ルール
Confidential – Oracle Internal/Restricted/Highly Restricted 56
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
何をしたい?
• バグを直す?
• 新しい機能を追加する?
Confidential – Oracle Internal/Restricted/Highly Restricted 57
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
何をしたい?
• バグを直す?
• 新しい機能を追加する?
Confidential – Oracle Internal/Restricted/Highly Restricted 58
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
2バグシステムの物語
• bugs.java.com
• JDK Bug System
Confidential – Oracle Internal/Restricted/Highly Restricted 59
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
2バグシステムのインタフェースの物語
• bugs.java.com
• JDK Bug System
Confidential – Oracle Internal/Restricted/Highly Restricted 60
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
bugs.java.com
Confidential – Oracle Internal/Restricted/Highly Restricted 61
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
bugs.java.com
• ユーザ向け(貢献する人ではなく)
• 単純
– 検索機能が乏しい
– 情報の一部しか表示されない
• バグの登録は誰でも出来る
Confidential – Oracle Internal/Restricted/Highly Restricted 62
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JDK Bug System (JBS)
Confidential – Oracle Internal/Restricted/Highly Restricted 63
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JDK Bug System (JBS)
二つのユーザの種類に利用されている
• OpenJDK のコミュニティ
• Oracle Corporation
Confidential – Oracle Internal/Restricted/Highly Restricted 64
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JDK Bug System (JBS)
Confidential – Oracle Internal/Restricted/Highly Restricted 65
Oracle OpenJDK
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Jira ベース
• カスタマイズを避けた
• 重要な違い
– Backports / Fixed Version
– Bug 検索機能の拡張
Confidential – Oracle Internal/Restricted/Highly Restricted 66
JDK Bug System (JBS)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JDK Bug System (JBS)
Confidential – Oracle Internal/Restricted/Highly Restricted 67
Backports / Fixed Version
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JDK Bug System (JBS)
Confidential – Oracle Internal/Restricted/Highly Restricted 68
Backports / Fixed Version
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JDK Bug System (JBS)
• regexVersion
– fixVersion in regexVersion("8.*")
– fixVersion in regexVersion("[5-8].*|tbd.*")
• regexLabel
– regexlabel("7u60-critical.*")
– regexLabel("release-note.*")
Confidential – Oracle Internal/Restricted/Highly Restricted 69
Bug Search Extensions
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Jiraは誰アクセス出来る?
Confidential – Oracle Internal/Restricted/Highly Restricted 70
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Jiraは誰アクセス出来る?
誰でも!
Confidential – Oracle Internal/Restricted/Highly Restricted 71
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• OpenJDK の ID がない場合Read-
only
• Oracle の社内のバグ
– セキュリティの脆弱性
– 有料機能
– お客様情報を含むレポート
Confidential – Oracle Internal/Restricted/Highly Restricted 72
でも、やっぱり人によって…
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
新規のレポートを作るには?
OpenJDK ID がない場合
• OpenJDK のメールエイリアスで要求する
• bugs.java.com でレポートを登録する
Confidential – Oracle Internal/Restricted/Highly Restricted 73
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Java Incidents
• “web bugs”
• チェックされていない
• 公開されていない
JDK
• 公開されている
• チェック済み
Confidential – Oracle Internal/Restricted/Highly Restricted 74
Java Incidents プロジェクト
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Java Incidents
• “web bugs”
• チェックされていない
• 公開されていない
JDK
• 公開されている
• チェック済み
Confidential – Oracle Internal/Restricted/Highly Restricted 75
Java Incidents プロジェクト
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
悩んでいれば
適切なメールエイリアスで質問すること!
Confidential – Oracle Internal/Restricted/Highly Restricted 76
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
悩んでいれば
適切なメールエイリアスで質問すること!
Confidential – Oracle Internal/Restricted/Highly Restricted 77
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK メースエイリアス
• オープン参加
• アーカイブされている
• Digest (まとめ)の機能
• メールを送る前に登録することが推奨
Confidential – Oracle Internal/Restricted/Highly Restricted 78
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
悩んでいれば
適切なメールエイリアスで質問すること!
Confidential – Oracle Internal/Restricted/Highly Restricted 79
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
悩んでいれば
適切なメールエイリアスで質問すること!
Confidential – Oracle Internal/Restricted/Highly Restricted 80
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
適切なメールエイリアス
Confidential – Oracle Internal/Restricted/Highly Restricted 81
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
適切なメールエイリアス
遠慮せずにエイリアスで聞いて下さい。
必要に応じて妥当なエイリアスを教えます。
Confidential – Oracle Internal/Restricted/Highly Restricted 82
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
8u-dev の返事を待っている人
Confidential – Oracle Internal/Restricted/Highly Restricted 83
By Sklmsta - Own work, CC0, https://commons.wikimedia.org/w/index.php?curid=9896470
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
ソースを pull して、バグを直す!
Confidential – Oracle Internal/Restricted/Highly Restricted 84
By Everaldo Coelho and YellowIcon; - All Crystal Clear icons were posted by the author as LGPL on kde-look;,
LGPL, https://commons.wikimedia.org/w/index.php?curid=664637
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK へ修正を貢献する
• パブリックのコードレビュー
• 修正を Push (或いは 誰かに Push して貰う)
Confidential – Oracle Internal/Restricted/Highly Restricted 85
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
コードレビュー
• Webrev を作成する
• cr.openjdk.java.net で webrev を公開する
• 適切なエイリアスへコードレビューの要求を送る
• 質問を回答し、コメントにお応じて修正を変更する
• Reviewer から承認を貰ったら、push
Confidential – Oracle Internal/Restricted/Highly Restricted 86
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
コードレビュー
• Webrev を作成する
• cr.openjdk.java.net で webrev を公開する
• 適切なエイリアスへコードレビューの要求を送る
• 質問を回答し、コメントにお応じて修正を変更する
• Reviewer から承認を貰ったら、push
Confidential – Oracle Internal/Restricted/Highly Restricted 87
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
コードレビュー
• Webrev を作成する
• cr.openjdk.java.net で webrev を公開する
• 適切なエイリアスへコードレビューの要求を送る
• 質問を回答し、コメントにお応じて修正を変更する
• Reviewer から承認を貰ったら、push
Confidential – Oracle Internal/Restricted/Highly Restricted 88
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Reviewers
• “reviewer” != “Reviewer”
• プロジェクトやチームによって、必要な Reviewer の数が異なる
ヒント:コードレビューを要求するとき、必要な Reviewer の人数を確認出来る
Confidential – Oracle Internal/Restricted/Highly Restricted 89
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
変更(修正)を push する
• 直接に push するには committer 権限が必要
• Committer 権限を取得しても、オラクルの社員しか push 出来ないプロジェ
クトがある (JPRT)
• 必要に応じて sponsor (プッシュしてくれる人)を頼める
Confidential – Oracle Internal/Restricted/Highly Restricted 90
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Committer?
Reviewer?
Confidential – Oracle Internal/Restricted/Highly Restricted 91
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK のロール
• Contributor
• Author
• Committer
• Reviewer
• Project lead
Confidential – Oracle Internal/Restricted/Highly Restricted 92
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Contributor
• Oracle Contributor Agreement に同意した
• プッシュされた貢献が “Contributed-by”
Confidential – Oracle Internal/Restricted/Highly Restricted 93
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Oracle Contributor Agreement
• http://www.oracle.com/technetwork/community/oca-486395.html からダ
ウンロード
• 印刷
• 記入
• サイン
• スキャン
• oracle-ca_us@oracle.com へ送る
Confidential – Oracle Internal/Restricted/Highly Restricted 94
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Author
• 1つのプロジェクトに3以上の新しい貢献を出した
• プロジェクトのリーダに要求する
• 投票はない
• OpenJDK ID が発行される
– JBS 書き込みアクセス
– cr.openjdk.java.net の home ディレクトリ
Confidential – Oracle Internal/Restricted/Highly Restricted 95
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Committer
• 殆どの HG repository へ push することが出来る
• 既存の committer にノミネートされる
• 投票が必要
• 目安: 12 新しい / 大きいな貢献
Confidential – Oracle Internal/Restricted/Highly Restricted 96
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Reviewer
• コードレビューで変更を承認することが出来る
• 既存の Reviewer にノミネートされる
– 目安: 40 新しい / 大きな貢献
– 結構難しい
Confidential – Oracle Internal/Restricted/Highly Restricted 97
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
OpenJDK Members
• OpenJDK のグループ
• 新規プロジェクトの作成や委員会などの件について投票出来る
• OpenJDK ID の有無と違う話
Confidential – Oracle Internal/Restricted/Highly Restricted 98
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Committer であっても
Oracle の社員ではなければプッシュ出来ない HG repository がある
Confidential – Oracle Internal/Restricted/Highly Restricted 99
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JPRT
• “JDK Product Reliability Testing”
• ビルドと検証のインフラ
• JPRT でしか push 出来ない HG repository がある
• オラクルの社外からアクセスが不可能
• 必ずビルドが出来ることを保証する
• 公開されていないテストも多い
• いろいろなプラットフォームがある
• すべてのプラットフォームがあるわけではない
Confidential – Oracle Internal/Restricted/Highly Restricted 100
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JPRT
• “JDK Product Reliability Testing”
• ビルドと検証のインフラ
• JPRT でしか push 出来ない HG repository がある
• オラクルの社外からアクセスが不可能
• 必ずビルドが出来ることを保証する
• 公開されていないテストも多い
• いろいろなプラットフォームがある
• すべてのプラットフォームがあるわけではない
Confidential – Oracle Internal/Restricted/Highly Restricted 101
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Backports
• メインラインの開発プロジェクトに先に入れる必要がある
– (最新版で問題が再現する場合)
• Backports は committer / reviewer の資格としてカウントしない
• Update プロジェクトによって、管理する人(会社)がことなる
– JDK 6 -> Andrew Brygin <abrygin@azul.com>
– JDK 7 -> Andrew Haley <aph@redhat.com>
– JDK 8 -> and Sean Coffey and Robert Mckenna
Confidential – Oracle Internal/Restricted/Highly Restricted 102
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JDK 8 への Backport
すべての変更は承認が必要となる
• 要求テンプレートがある
• RFA != RFR
Confidential – Oracle Internal/Restricted/Highly Restricted 103
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Jigsaw パースの変更
• ファイルのパースだけが変更された
• JDK 9 のパッチが自動的に JDK 8 用に変換するスクリプト (unshuffled)
Confidential – Oracle Internal/Restricted/Highly Restricted 104
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
まとめ
• 遠慮なく質問してください
• お時間を頂く場合もございますが、ご了承ください
– 巨大のプロジェクト
– 変動が激しい
– 常にプロセスの最適化に最大限努力している
• 修正やコードを貢献しなくてもいい
Confidential – Oracle Internal/Restricted/Highly Restricted 105
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
ありがとうございます!
Confidential – Oracle Internal/Restricted/Highly Restricted 106
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• OpenJDK Home Page
http://openjdk.java.net/
• FAQ
http://openjdk.java.net/faq/
• Developer's Guide
http://openjdk.java.net/guide/
• Mailing Lists
http://mail.openjdk.java.net/mailman/listinfo
• Bylaws
http://openjdk.java.net/bylaws
• Census
http://openjdk.java.net/census
• Mercurial: The Definitive Guide
http://hgbook.red-bean.com/read/
Confidential – Oracle Internal/Restricted/Highly Restricted 107
参考資料
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The preceding is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
Confidential – Oracle Internal/Restricted/Highly Restricted 108
OpenJDK 参加入門 [JJUG CCC 2017 Fall E2]
OpenJDK 参加入門 [JJUG CCC 2017 Fall E2]

More Related Content

What's hot

JCP 20 Year Anniversary
JCP 20 Year AnniversaryJCP 20 Year Anniversary
JCP 20 Year Anniversary
Heather VanCura
 
Getting Started: Developing Tropo Applications
Getting Started: Developing Tropo ApplicationsGetting Started: Developing Tropo Applications
Getting Started: Developing Tropo Applications
Cisco DevNet
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Ed Burns
 
Coding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCoding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using Spark
Cisco DevNet
 
OpenDaylight: an open source SDN for your OpenStack cloud
OpenDaylight: an open source SDN for your OpenStack cloudOpenDaylight: an open source SDN for your OpenStack cloud
OpenDaylight: an open source SDN for your OpenStack cloud
Anees Shaikh
 
Artifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrogArtifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrog
Cloud Study Network
 
Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)
Logico
 
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
Oracle Developers
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
mfrancis
 
HTTP/2 comes to Java
HTTP/2 comes to JavaHTTP/2 comes to Java
HTTP/2 comes to Java
David Delabassee
 
Владимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееВладимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущее
Olga Lavrentieva
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka
Takashi Ito
 
360° Kubernetes Security: From Source Code to K8s Configuration Security
360° Kubernetes Security: From Source Code to K8s Configuration Security360° Kubernetes Security: From Source Code to K8s Configuration Security
360° Kubernetes Security: From Source Code to K8s Configuration Security
DevOps.com
 

What's hot (13)

JCP 20 Year Anniversary
JCP 20 Year AnniversaryJCP 20 Year Anniversary
JCP 20 Year Anniversary
 
Getting Started: Developing Tropo Applications
Getting Started: Developing Tropo ApplicationsGetting Started: Developing Tropo Applications
Getting Started: Developing Tropo Applications
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
 
Coding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCoding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using Spark
 
OpenDaylight: an open source SDN for your OpenStack cloud
OpenDaylight: an open source SDN for your OpenStack cloudOpenDaylight: an open source SDN for your OpenStack cloud
OpenDaylight: an open source SDN for your OpenStack cloud
 
Artifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrogArtifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrog
 
Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)
 
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
 
HTTP/2 comes to Java
HTTP/2 comes to JavaHTTP/2 comes to Java
HTTP/2 comes to Java
 
Владимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееВладимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущее
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka
 
360° Kubernetes Security: From Source Code to K8s Configuration Security
360° Kubernetes Security: From Source Code to K8s Configuration Security360° Kubernetes Security: From Source Code to K8s Configuration Security
360° Kubernetes Security: From Source Code to K8s Configuration Security
 

Similar to OpenJDK 参加入門 [JJUG CCC 2017 Fall E2]

Jfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and ContainersJfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and Containers
Mika Rinne
 
Cloud Native Java:GraalVM
Cloud Native Java:GraalVMCloud Native Java:GraalVM
Cloud Native Java:GraalVM
Taewan alvin Kim
 
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
Oracle Korea
 
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data CenterMigrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Jingnan Zhou
 
Oracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud ResourceOracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud Resource
Taewan Kim
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
Jupil Hwang
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
CodeOps Technologies LLP
 
Oracle meetup kubernetes_171118
Oracle meetup kubernetes_171118Oracle meetup kubernetes_171118
Oracle meetup kubernetes_171118
Oracle Korea
 
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
David Buck
 
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor TopicJavantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineBuilding microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipeline
DonghuKIM2
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
Bruno Borges
 
Api design and prototype
Api design and prototypeApi design and prototype
Api design and prototype
DonghuKIM2
 
Using MySQL Containers
Using MySQL ContainersUsing MySQL Containers
Using MySQL Containers
Matt Lord
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
Christopher Jones
 
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQLMySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
Miguel Araújo
 
Contributing to JDK Mission Control
Contributing to JDK Mission ControlContributing to JDK Mission Control
Contributing to JDK Mission Control
Marcus Hirt
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
Oracle Developers
 
Develop PHP Applications with MySQL X DevAPI
Develop PHP Applications with MySQL X DevAPIDevelop PHP Applications with MySQL X DevAPI
Develop PHP Applications with MySQL X DevAPI
Dave Stokes
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Bruno Borges
 

Similar to OpenJDK 参加入門 [JJUG CCC 2017 Fall E2] (20)

Jfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and ContainersJfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and Containers
 
Cloud Native Java:GraalVM
Cloud Native Java:GraalVMCloud Native Java:GraalVM
Cloud Native Java:GraalVM
 
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
 
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data CenterMigrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
 
Oracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud ResourceOracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud Resource
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
Oracle meetup kubernetes_171118
Oracle meetup kubernetes_171118Oracle meetup kubernetes_171118
Oracle meetup kubernetes_171118
 
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
 
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor TopicJavantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
 
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineBuilding microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipeline
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
Api design and prototype
Api design and prototypeApi design and prototype
Api design and prototype
 
Using MySQL Containers
Using MySQL ContainersUsing MySQL Containers
Using MySQL Containers
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
 
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQLMySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
 
Contributing to JDK Mission Control
Contributing to JDK Mission ControlContributing to JDK Mission Control
Contributing to JDK Mission Control
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
 
Develop PHP Applications with MySQL X DevAPI
Develop PHP Applications with MySQL X DevAPIDevelop PHP Applications with MySQL X DevAPI
Develop PHP Applications with MySQL X DevAPI
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
 

More from David Buck

JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
David Buck
 
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
David Buck
 
Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]
David Buck
 
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
David Buck
 
invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]
David Buck
 
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
David Buck
 
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
David Buck
 
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
David Buck
 
Z Garbage Collector
Z Garbage CollectorZ Garbage Collector
Z Garbage Collector
David Buck
 
Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019
David Buck
 
Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018
David Buck
 
JDK 10 へようこそ
JDK 10 へようこそJDK 10 へようこそ
JDK 10 へようこそ
David Buck
 
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
David Buck
 
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]
David Buck
 
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
David Buck
 
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
David Buck
 
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
David Buck
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
David Buck
 
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
David Buck
 
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
David Buck
 

More from David Buck (20)

JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
 
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
 
Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]
 
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
 
invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]
 
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
 
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
 
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
 
Z Garbage Collector
Z Garbage CollectorZ Garbage Collector
Z Garbage Collector
 
Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019
 
Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018
 
JDK 10 へようこそ
JDK 10 へようこそJDK 10 へようこそ
JDK 10 へようこそ
 
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
 
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]
 
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
 
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
 
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
 
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
 

Recently uploaded

Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 

Recently uploaded (20)

Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 

OpenJDK 参加入門 [JJUG CCC 2017 Fall E2]

  • 1.
  • 2.
  • 3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK: How to Join In on All the Fun CCC E2 David Buck Principal Member of Technical Staff Java Platform Group November 18th, 2017 Confidential – Oracle Internal/Restricted/Highly Restricted 3
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Confidential – Oracle Internal/Restricted/Highly Restricted 4
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • JVM Sustaining Engineer • OpenJDK 8 Update Project Maintainer • JavaOne Rock Star • Co-author of Oracle WebLogic Server 11g 構築・運用ガイド • @DavidBuckJP • https://blogs.oracle.com/buck/ Who am I?
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Who are you? • OpenJDK に貢献したい人 • OpenJDK の玄人 – fastdebug ビルド – カスタム ビルド Confidential – Oracle Internal/Restricted/Highly Restricted 6
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | セッションの目的 • JDK コードを弄て、ビルドする • OpenJDK へコードを貢献する • OpenJDK の進捗を追跡する Confidential – Oracle Internal/Restricted/Highly Restricted 7
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Agenda • OpenJDK プロジェクト – 歴史、目的、単語 • ツールや技術 – ソースの入手、ビルド、テスト、レビューの準備など • プロセス – コード レビュー、プロジェクト、ロールなど Confidential – Oracle Internal/Restricted/Highly Restricted 8
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK プロジェクト Confidential – Oracle Internal/Restricted/Highly Restricted 9
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK とは? • Java SE のオープンソースの実装Open source (GPL2 / L.E.) implementation of Java SE • JDK 7 以降の Reference implementation • 多数の単体プロジェクトで構造 Confidential – Oracle Internal/Restricted/Highly Restricted 10
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | なぜ? • Java の普及の推進 • ハードの売り上げの推進 Confidential – Oracle Internal/Restricted/Highly Restricted 11
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK プロジェクト 歴史 Confidential – Oracle Internal/Restricted/Highly Restricted 12
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK の前 • Sun Community Source License (SCSL) • Java Research License (JRL) Confidential – Oracle Internal/Restricted/Highly Restricted 13
  • 14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | The Java Trap (Java の罠) Confidential – Oracle Internal/Restricted/Highly Restricted 14
  • 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | タイムライン • JavaOne 2006 で発表された • 2006年11月 javac と HotSpot のコードのリリース • 2007年の5月で殆どの残りがリリースされた Confidential – Oracle Internal/Restricted/Highly Restricted 15
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 殆ど? • フォントレンダリング -> freetype • カラー管理システム-> lcms • 音 -> Gervill • アンチエリアジング -> (Ductus -> Marlin) Confidential – Oracle Internal/Restricted/Highly Restricted 16
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 殆ど? • OpenJDK 6 b10 から本当の OSS でビルドすることが出来た Confidential – Oracle Internal/Restricted/Highly Restricted 17
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 二バージョン物語 • 初めての OpenJDK のリリース: JDK 7 • OpenJDK 6 は? • 2006年の12月に Sun JDK 6 がリリースされた Confidential – Oracle Internal/Restricted/Highly Restricted 18
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 19
  • 20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK とは? Confidential – Oracle Internal/Restricted/Highly Restricted 20
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK ではない物 Confidential – Oracle Internal/Restricted/Highly Restricted 21
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK != IcedTea • まだリリースされていない部分を OSS でカバー – Java SE – デプロイ機能 • Java Web Start • Browser plugins • 鶏が先か卵が先か – OpenJDK をビルドするには SunJDK が必要 Confidential – Oracle Internal/Restricted/Highly Restricted 22
  • 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK != Java Community Process • JCPは 1998 年からあった • 仕様を確定するプロセス (JSRs) Confidential – Oracle Internal/Restricted/Highly Restricted 23
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK != OracleJDK • OracleJDK – OpenJDK + クローズドソース ★ – オラクルからサポートを購入出来る ★ クローズドソースとは – デプロイの技術(Plug-in, Java Web Start) – 有料機能 (Flight Recorder, usage tracker, MSI installer) Confidential – Oracle Internal/Restricted/Highly Restricted 24
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK Projects • ポート • 新たな機能 • 将来のJDKのメージャーバージョン • リリース済みのアップデート • その他 Confidential – Oracle Internal/Restricted/Highly Restricted 25
  • 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK Projects Confidential – Oracle Internal/Restricted/Highly Restricted 26
  • 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ツール / 技術 Confidential – Oracle Internal/Restricted/Highly Restricted 27
  • 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Mercurial のイロハ Confidential – Oracle Internal/Restricted/Highly Restricted 28 By Cali Mastny and Matt Mackall (http://www.selenic.com/hg-logo/) [GPLv2 (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)], via Wikimedia Commons
  • 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Mercurial とは? Confidential – Oracle Internal/Restricted/Highly Restricted 29
  • 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | “Mercurial is a free, distributed source control management tool.“ (Mercurial は無料の分散型のソース 管理システムである。) – https://www.mercurial-scm.org/ Confidential – Oracle Internal/Restricted/Highly Restricted 30
  • 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 名前の意味は? Confidential – Oracle Internal/Restricted/Highly Restricted 31
  • 32. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 早い、液体、柔軟性 Confidential – Oracle Internal/Restricted/Highly Restricted 32 By Bionerd (Own work) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC BY 3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons
  • 33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悪い知らせ GIT ではない 良い知らせ GITとあまり変わらない Confidential – Oracle Internal/Restricted/Highly Restricted 33 良い知らせと悪い知らせ
  • 34. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | hg ≈ git Confidential – Oracle Internal/Restricted/Highly Restricted 34
  • 35. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 分散バージョン管理 Confidential – Oracle Internal/Restricted/Highly Restricted 35 By Axaluss - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=20053251
  • 36. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • clone • commit • log • push • pull • defpath • status • diff • out • add Confidential – Oracle Internal/Restricted/Highly Restricted 36 上位の10つのコマンド
  • 37. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Revision IDs 13365:862767b4c105 Confidential – Oracle Internal/Restricted/Highly Restricted 37
  • 38. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Revision IDs 13365:862767b4c105 ローカル グローバル Confidential – Oracle Internal/Restricted/Highly Restricted 38
  • 39. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 自分の貢献を上へ push Confidential – Oracle Internal/Restricted/Highly Restricted 39 By Pearson Scott Foresman - Archives of Pearson Scott Foresman, donated to the Wikimedia Foundation This file has been extracted from another file: PSF P-730002.png, Public Domain, https://commons.wikimedia.org/w/index.php?curid=3947194
  • 40. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 他の人の変更を pull Confidential – Oracle Internal/Restricted/Highly Restricted 40 Viking-nl at Dutch Wikipedia [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)],via Wikimedia Commons
  • 41. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ソースツリー Confidential – Oracle Internal/Restricted/Highly Restricted 41
  • 42. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ソースツリー Confidential – Oracle Internal/Restricted/Highly Restricted 42
  • 43. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ソースツリー Confidential – Oracle Internal/Restricted/Highly Restricted 43
  • 44. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Forests (森) Confidential – Oracle Internal/Restricted/Highly Restricted 44
  • 45. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Forests Confidential – Oracle Internal/Restricted/Highly Restricted 45
  • 46. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Forests Confidential – Oracle Internal/Restricted/Highly Restricted 46
  • 47. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Forest • JDK をビルド出来る • Forest の入手 – Forest のロートを clone – get_source.sh スクリプトを実行 Confidential – Oracle Internal/Restricted/Highly Restricted 47
  • 48. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 48
  • 49. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK 8 以降 素晴らしい! JDK 6 と JDK 7 素晴らしくない。。。 Confidential – Oracle Internal/Restricted/Highly Restricted 49 ビルド方法
  • 50. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ビルド(JDK8 以降) sh configure make Confidential – Oracle Internal/Restricted/Highly Restricted 50
  • 51. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Configure を実行 • 足りないパッケージを検出して、入手方法を教えてくれる • すべてのプラットフォーム (はい、Windows でも) • 重要なオプション – Debug ビルド (--enable-debug) – ccache 無効化(--disable-ccache) – Bookstrap JDK のパース (--with-boot-jdk) – configure スクリプトの debug 出力 (--debug-configure) Confidential – Oracle Internal/Restricted/Highly Restricted 51
  • 52. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 何かたりない? Confidential – Oracle Internal/Restricted/Highly Restricted 52
  • 53. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ build/linux-x86_64-normal- server-release/jdk/bin/java - version openjdk version "1.8.0-internal" OpenJDK Runtime Environment (build 1.8.0-internal- dbuck_2017_10_02_10_55-b00) OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode) $ build/linux-x86_64-normal- server-release/jdk/bin/java - version Hello JavaOne 2017! openjdk version "1.8.0-internal" OpenJDK Runtime Environment (build 1.8.0-internal- dbuck_2017_10_02_10_55-b00) OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode) Confidential – Oracle Internal/Restricted/Highly Restricted 53 何か変更しよう!
  • 54. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ build/linux-x86_64-normal- server-release/jdk/bin/java - version openjdk version "1.8.0-internal" OpenJDK Runtime Environment (build 1.8.0-internal- dbuck_2017_10_02_10_55-b00) OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode) $ build/linux-x86_64-normal- server-release/jdk/bin/java - version Hello JavaOne 2017! openjdk version "1.8.0-internal" OpenJDK Runtime Environment (build 1.8.0-internal- dbuck_2017_10_02_10_55-b00) OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode) Confidential – Oracle Internal/Restricted/Highly Restricted 54 何か変更しよう!
  • 55. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | テストケース • 殆どの変更はテストケースが必要となる – 新しい機能をテストする – バグの修正をテストする • Jtreg というテストフレームワークが一番利用されている • 既存のテストを変更するだけで十分である場合が多い Confidential – Oracle Internal/Restricted/Highly Restricted 55
  • 56. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | プロセス / ルール Confidential – Oracle Internal/Restricted/Highly Restricted 56
  • 57. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 何をしたい? • バグを直す? • 新しい機能を追加する? Confidential – Oracle Internal/Restricted/Highly Restricted 57
  • 58. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 何をしたい? • バグを直す? • 新しい機能を追加する? Confidential – Oracle Internal/Restricted/Highly Restricted 58
  • 59. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 2バグシステムの物語 • bugs.java.com • JDK Bug System Confidential – Oracle Internal/Restricted/Highly Restricted 59
  • 60. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 2バグシステムのインタフェースの物語 • bugs.java.com • JDK Bug System Confidential – Oracle Internal/Restricted/Highly Restricted 60
  • 61. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | bugs.java.com Confidential – Oracle Internal/Restricted/Highly Restricted 61
  • 62. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | bugs.java.com • ユーザ向け(貢献する人ではなく) • 単純 – 検索機能が乏しい – 情報の一部しか表示されない • バグの登録は誰でも出来る Confidential – Oracle Internal/Restricted/Highly Restricted 62
  • 63. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) Confidential – Oracle Internal/Restricted/Highly Restricted 63
  • 64. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) 二つのユーザの種類に利用されている • OpenJDK のコミュニティ • Oracle Corporation Confidential – Oracle Internal/Restricted/Highly Restricted 64
  • 65. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) Confidential – Oracle Internal/Restricted/Highly Restricted 65 Oracle OpenJDK
  • 66. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Jira ベース • カスタマイズを避けた • 重要な違い – Backports / Fixed Version – Bug 検索機能の拡張 Confidential – Oracle Internal/Restricted/Highly Restricted 66 JDK Bug System (JBS)
  • 67. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) Confidential – Oracle Internal/Restricted/Highly Restricted 67 Backports / Fixed Version
  • 68. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) Confidential – Oracle Internal/Restricted/Highly Restricted 68 Backports / Fixed Version
  • 69. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) • regexVersion – fixVersion in regexVersion("8.*") – fixVersion in regexVersion("[5-8].*|tbd.*") • regexLabel – regexlabel("7u60-critical.*") – regexLabel("release-note.*") Confidential – Oracle Internal/Restricted/Highly Restricted 69 Bug Search Extensions
  • 70. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Jiraは誰アクセス出来る? Confidential – Oracle Internal/Restricted/Highly Restricted 70
  • 71. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Jiraは誰アクセス出来る? 誰でも! Confidential – Oracle Internal/Restricted/Highly Restricted 71
  • 72. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • OpenJDK の ID がない場合Read- only • Oracle の社内のバグ – セキュリティの脆弱性 – 有料機能 – お客様情報を含むレポート Confidential – Oracle Internal/Restricted/Highly Restricted 72 でも、やっぱり人によって…
  • 73. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 新規のレポートを作るには? OpenJDK ID がない場合 • OpenJDK のメールエイリアスで要求する • bugs.java.com でレポートを登録する Confidential – Oracle Internal/Restricted/Highly Restricted 73
  • 74. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Incidents • “web bugs” • チェックされていない • 公開されていない JDK • 公開されている • チェック済み Confidential – Oracle Internal/Restricted/Highly Restricted 74 Java Incidents プロジェクト
  • 75. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Incidents • “web bugs” • チェックされていない • 公開されていない JDK • 公開されている • チェック済み Confidential – Oracle Internal/Restricted/Highly Restricted 75 Java Incidents プロジェクト
  • 76. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悩んでいれば 適切なメールエイリアスで質問すること! Confidential – Oracle Internal/Restricted/Highly Restricted 76
  • 77. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悩んでいれば 適切なメールエイリアスで質問すること! Confidential – Oracle Internal/Restricted/Highly Restricted 77
  • 78. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK メースエイリアス • オープン参加 • アーカイブされている • Digest (まとめ)の機能 • メールを送る前に登録することが推奨 Confidential – Oracle Internal/Restricted/Highly Restricted 78
  • 79. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悩んでいれば 適切なメールエイリアスで質問すること! Confidential – Oracle Internal/Restricted/Highly Restricted 79
  • 80. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悩んでいれば 適切なメールエイリアスで質問すること! Confidential – Oracle Internal/Restricted/Highly Restricted 80
  • 81. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 適切なメールエイリアス Confidential – Oracle Internal/Restricted/Highly Restricted 81
  • 82. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 適切なメールエイリアス 遠慮せずにエイリアスで聞いて下さい。 必要に応じて妥当なエイリアスを教えます。 Confidential – Oracle Internal/Restricted/Highly Restricted 82
  • 83. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 8u-dev の返事を待っている人 Confidential – Oracle Internal/Restricted/Highly Restricted 83 By Sklmsta - Own work, CC0, https://commons.wikimedia.org/w/index.php?curid=9896470
  • 84. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ソースを pull して、バグを直す! Confidential – Oracle Internal/Restricted/Highly Restricted 84 By Everaldo Coelho and YellowIcon; - All Crystal Clear icons were posted by the author as LGPL on kde-look;, LGPL, https://commons.wikimedia.org/w/index.php?curid=664637
  • 85. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK へ修正を貢献する • パブリックのコードレビュー • 修正を Push (或いは 誰かに Push して貰う) Confidential – Oracle Internal/Restricted/Highly Restricted 85
  • 86. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | コードレビュー • Webrev を作成する • cr.openjdk.java.net で webrev を公開する • 適切なエイリアスへコードレビューの要求を送る • 質問を回答し、コメントにお応じて修正を変更する • Reviewer から承認を貰ったら、push Confidential – Oracle Internal/Restricted/Highly Restricted 86
  • 87. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | コードレビュー • Webrev を作成する • cr.openjdk.java.net で webrev を公開する • 適切なエイリアスへコードレビューの要求を送る • 質問を回答し、コメントにお応じて修正を変更する • Reviewer から承認を貰ったら、push Confidential – Oracle Internal/Restricted/Highly Restricted 87
  • 88. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | コードレビュー • Webrev を作成する • cr.openjdk.java.net で webrev を公開する • 適切なエイリアスへコードレビューの要求を送る • 質問を回答し、コメントにお応じて修正を変更する • Reviewer から承認を貰ったら、push Confidential – Oracle Internal/Restricted/Highly Restricted 88
  • 89. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Reviewers • “reviewer” != “Reviewer” • プロジェクトやチームによって、必要な Reviewer の数が異なる ヒント:コードレビューを要求するとき、必要な Reviewer の人数を確認出来る Confidential – Oracle Internal/Restricted/Highly Restricted 89
  • 90. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 変更(修正)を push する • 直接に push するには committer 権限が必要 • Committer 権限を取得しても、オラクルの社員しか push 出来ないプロジェ クトがある (JPRT) • 必要に応じて sponsor (プッシュしてくれる人)を頼める Confidential – Oracle Internal/Restricted/Highly Restricted 90
  • 91. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Committer? Reviewer? Confidential – Oracle Internal/Restricted/Highly Restricted 91
  • 92. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK のロール • Contributor • Author • Committer • Reviewer • Project lead Confidential – Oracle Internal/Restricted/Highly Restricted 92
  • 93. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Contributor • Oracle Contributor Agreement に同意した • プッシュされた貢献が “Contributed-by” Confidential – Oracle Internal/Restricted/Highly Restricted 93
  • 94. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle Contributor Agreement • http://www.oracle.com/technetwork/community/oca-486395.html からダ ウンロード • 印刷 • 記入 • サイン • スキャン • oracle-ca_us@oracle.com へ送る Confidential – Oracle Internal/Restricted/Highly Restricted 94
  • 95. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Author • 1つのプロジェクトに3以上の新しい貢献を出した • プロジェクトのリーダに要求する • 投票はない • OpenJDK ID が発行される – JBS 書き込みアクセス – cr.openjdk.java.net の home ディレクトリ Confidential – Oracle Internal/Restricted/Highly Restricted 95
  • 96. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Committer • 殆どの HG repository へ push することが出来る • 既存の committer にノミネートされる • 投票が必要 • 目安: 12 新しい / 大きいな貢献 Confidential – Oracle Internal/Restricted/Highly Restricted 96
  • 97. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Reviewer • コードレビューで変更を承認することが出来る • 既存の Reviewer にノミネートされる – 目安: 40 新しい / 大きな貢献 – 結構難しい Confidential – Oracle Internal/Restricted/Highly Restricted 97
  • 98. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK Members • OpenJDK のグループ • 新規プロジェクトの作成や委員会などの件について投票出来る • OpenJDK ID の有無と違う話 Confidential – Oracle Internal/Restricted/Highly Restricted 98
  • 99. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Committer であっても Oracle の社員ではなければプッシュ出来ない HG repository がある Confidential – Oracle Internal/Restricted/Highly Restricted 99
  • 100. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JPRT • “JDK Product Reliability Testing” • ビルドと検証のインフラ • JPRT でしか push 出来ない HG repository がある • オラクルの社外からアクセスが不可能 • 必ずビルドが出来ることを保証する • 公開されていないテストも多い • いろいろなプラットフォームがある • すべてのプラットフォームがあるわけではない Confidential – Oracle Internal/Restricted/Highly Restricted 100
  • 101. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JPRT • “JDK Product Reliability Testing” • ビルドと検証のインフラ • JPRT でしか push 出来ない HG repository がある • オラクルの社外からアクセスが不可能 • 必ずビルドが出来ることを保証する • 公開されていないテストも多い • いろいろなプラットフォームがある • すべてのプラットフォームがあるわけではない Confidential – Oracle Internal/Restricted/Highly Restricted 101
  • 102. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Backports • メインラインの開発プロジェクトに先に入れる必要がある – (最新版で問題が再現する場合) • Backports は committer / reviewer の資格としてカウントしない • Update プロジェクトによって、管理する人(会社)がことなる – JDK 6 -> Andrew Brygin <abrygin@azul.com> – JDK 7 -> Andrew Haley <aph@redhat.com> – JDK 8 -> and Sean Coffey and Robert Mckenna Confidential – Oracle Internal/Restricted/Highly Restricted 102
  • 103. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK 8 への Backport すべての変更は承認が必要となる • 要求テンプレートがある • RFA != RFR Confidential – Oracle Internal/Restricted/Highly Restricted 103
  • 104. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Jigsaw パースの変更 • ファイルのパースだけが変更された • JDK 9 のパッチが自動的に JDK 8 用に変換するスクリプト (unshuffled) Confidential – Oracle Internal/Restricted/Highly Restricted 104
  • 105. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | まとめ • 遠慮なく質問してください • お時間を頂く場合もございますが、ご了承ください – 巨大のプロジェクト – 変動が激しい – 常にプロセスの最適化に最大限努力している • 修正やコードを貢献しなくてもいい Confidential – Oracle Internal/Restricted/Highly Restricted 105
  • 106. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ありがとうございます! Confidential – Oracle Internal/Restricted/Highly Restricted 106
  • 107. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • OpenJDK Home Page http://openjdk.java.net/ • FAQ http://openjdk.java.net/faq/ • Developer's Guide http://openjdk.java.net/guide/ • Mailing Lists http://mail.openjdk.java.net/mailman/listinfo • Bylaws http://openjdk.java.net/bylaws • Census http://openjdk.java.net/census • Mercurial: The Definitive Guide http://hgbook.red-bean.com/read/ Confidential – Oracle Internal/Restricted/Highly Restricted 107 参考資料
  • 108. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Confidential – Oracle Internal/Restricted/Highly Restricted 108

Editor's Notes

  1. This is a Safe Harbor Front slide, one of two Safe Harbor Statement slides included in this template. One of the Safe Harbor slides must be used if your presentation covers material affected by Oracle’s Revenue Recognition Policy To learn more about this policy, e-mail: Revrec-americasiebc_us@oracle.com For internal communication, Safe Harbor Statements are not required. However, there is an applicable disclaimer (Exhibit E) that should be used, found in the Oracle Revenue Recognition Policy for Future Product Communications. Copy and paste this link into a web browser, to find out more information. http://my.oracle.com/site/fin/gfo/GlobalProcesses/RevRec/Policies/cnt2321729.pdf For all external communications such as press release, roadmaps, PowerPoint presentations, Safe Harbor Statements are required. You can refer to the link mentioned above to find out additional information/disclaimers required depending on your audience.
  2. This is a Safe Harbor Front slide, one of two Safe Harbor Statement slides included in this template. One of the Safe Harbor slides must be used if your presentation covers material affected by Oracle’s Revenue Recognition Policy To learn more about this policy, e-mail: Revrec-americasiebc_us@oracle.com For internal communication, Safe Harbor Statements are not required. However, there is an applicable disclaimer (Exhibit E) that should be used, found in the Oracle Revenue Recognition Policy for Future Product Communications. Copy and paste this link into a web browser, to find out more information. http://my.oracle.com/site/fin/gfo/GlobalProcesses/RevRec/Policies/cnt2321729.pdf For all external communications such as press release, roadmaps, PowerPoint presentations, Safe Harbor Statements are required. You can refer to the link mentioned above to find out additional information/disclaimers required depending on your audience.