#翻訳 https://www.scalyr.com/blog/the-10-commandments-of-logging/ CC BY 4.0 @Brice Figureau 1.自分でログの書き出しをしない printfをつかったり、ログエントリを自分でファイルに書き出したり、ログローテションを自分でやったりしてはいけない。運用担当者にお願いして、標準ライブラリやシステムAPIコールを使うようにしよう。そうすれば、実行中のアプリケーションが他のシステムコンポーネントと適切に連携して、特別なシステム設定なしに適切な場所またはネットワークサービスにログを記録できるようになる。 ロギングライブラリを使いたければ、特にJavaの世界にはLog4j, JCL, slf4j, logbackなど多くのものが存在する。私はslf4jとlogbackを組み合わせて使うのが好きだ。とてもパワフルで、設
本記事は、jacocoの導入関連の記事や公式ドキュメントを読んでも、導入がうまくいかなかった人に向け解決策の1つの可能性を示すものである。 みんながうまくいくかは知らない。 なぜなら筆者自身Mavenとかよくわかってないからだ。 前提 javaのバージョン java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode) Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00) Maven home: /usr/local/apache-maven-3.3.9
はじめに O/R マッピングとは O/R マッピングとは、一言で言えば、オブジェクト指向プログラミング言語においてリレーショナルデータベースのレコードを通常のオブジェクトとして操作する方法である。より詳細な定義を述べるより、実際のコードを見たほうがわかりやすいだろう。以下に、低レベルの JDBC API の利用例と、高レベルの O/R マッピングフレームワークの代表格である JPA の利用例を挙げる。 public List<Issue> findByProjectId(long projectId) { String query = "select id, title, description from issue where project_id = ?"; try (PreparedStatement ps = connection.prepareStatement(query))
AWS Lambda関数をJava8で記述し、AWS上 Lambda Functionとしてアップロードし、それをJavaクライアントから呼び出す例をステップ・バイ・ステップで紹介します。 想定読者 Javaが書けて、はじめてAWS Lambdaをつかう人 いままではnode.jsでLambda関数を作っていたが、わけあってJavaでつくってみようとおもう人(=私のような) 記事構成 TL;DR 前編・後編で書きます 【前編】 JavaでLambda関数(クラウド側)と、クライアント(ローカル側)をお手軽に作る←本稿 【後編】 Lambda関数(クラウド側)の同期型、非同期型の呼び出しタイプ(Invocation Type)と、Javaクライアント側の同期、非同期呼び出し、API Gatewayでの公開 AWS Lambda(ラムダ)とは 自前でサーバーを作ったり、管理したりする必要が無く
package sample.junit5; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.DisplayName; class JUnit5Test { @Test void fail() { Assertions.assertEquals(10, 8); } static class StaticClass { @Test void fail() { Assertions.assertEquals(10, 8); } } static class StaticTest { @Test void fail() { Assertions.assertEquals(10, 8); } } class InnerTest { @Te
Mikatus Advent Calendar 2019 25日目の記事です。 開発責任者の土田です。 当社が2016年に参加したアドベント・カレンダー25日目の「Scala選定の理由と移行の方針」という記事へのアンサーを書こうと思います。事前にその記事を読んでいただいた方が、この記事の内容を楽しめるかなと思います。ただ、私の記事はあくまでポエムなので、そんなに期待しないでください。 プラットフォーム移行の観点でよりきちんとした内容は「Scala採用を決めて3年半たった、CTOの振り返り。アーキテクチャ刷新を成し遂げるために必要なこと」がとても参考になると思いますので、そちらをオススメします。 発端は(食べられる方の)カリーうどん → 最近は秋葉原でスープカリー 当時は当社のオフィスが白金高輪だったので、近くにあるカリーうどんを食べてました。その後は岩本町、浅草橋と移転したので食べてるカリ
【CICD2021】デプロイメントパイプラインの原理原則を再確認する / Confirm Deployment Pipeline Principle
これは、なにをしたくて書いたもの? 長らくJava EEになかったConfig系のAPI(JNDI…)が、MicroProfileに入っているということで1度試しておこうと Apache DeltaSpikeにインスパイアされているようなので、そちらを知っていれば敷居もそれほど高くないかも? ということで、Configuration for MicroProfileを試してみました。 過去に書いた、Apache DeltaSpikeのConfigurationについてのエントリは、こちら。 Apache DeltaSpikeのConfiguration Mechanismを試す - CLOVER🍀 Configuration for MicroProfile? Configuration for MicroProfileについてのAPIや仕様書があるのは、こちら。 GitHub - ec
Red Hatソフトウェアエンジニアの佐藤匡剛です。 昨晩のRHTN #2にお越しいただいた皆様、ありがとうございました。自分が担当したLTのスライドはこちらにアップロードしました。 Red Hat Tech Night 2019.5 - Camel 3 and Beyond... from Tadayoshi Sato www.slideshare.net しかし、さすがに5分というのはちょっと話し足りなかった(かつ最近は引き篭もっていて滑舌悪く上手く話せなかった)ので、こちらで少し補足したいと思います。 Camel 3の注目ポイント 今回のLTの目玉だったので、スライドをそのまま再掲します。 後方互換性の維持 camel-core の軽量&モジュール化 API 整理&技術負債の解消 型安全な Fluent Builder エンドポイント定義の導入 新しいクラウド EIP パターン Qu
はじめに Panache とは Panache の利用準備 Entity の定義 Entity の操作 永続化 IDによる検索 一覧取得 ソート 件数取得 削除 Stream 操作 ページング ページの取得 件数の取得 メソッドチェーン クエリー Entity メソッド トランザクション ロック カスタムIDの利用 リポジトリとしての利用 PanacheEntity の静的メソッド一覧 Persist 系 Delete 系 PanacheQuery 系 List系 Stream系 Count 系 その他 はじめに 前回 Quarkus で JPA を使った簡単なアプリケーション作成を行いました。 blog1.mammb.com 今回は、Panache を使ったデータベースアクセスを見ていきます。 Panache とは Panache は Quarkus に含まれ、簡易的なORMソリューショ
10. ネイティブコンパイルを試みる ● Undertow ● WildFlyのWebサーバ実装 ● Java SEでも動く import io.undertow.Undertow; import io.undertow.util.Headers; public class Main { public static void main(final String[] args) { Undertow server = Undertow.builder() .addHttpListener(8080, "localhost") .setHandler(exchange -> { exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain"); exchange.getResponseSender().send("Hel
レガシーなJavaで書かれたシステムのコードを見ていると、以下のようにInputStreamでファイルを開いて、OutputStreamでコピー先のファイルに書き込むみたいなものがあったりします。 try(InputStream input = new FileInputStream(srcFile); OutputStream output = new FileOutputStream(dstFile)) { byte[] buffer = new byte[BUFFER_SIZE]; int size = -1; while ((size = input.read(buffer)) > 0) { output.write(buffer, 0, size); } } 他にはどういう方法があるのでしょうか。ファイルコピーの歴史が詰まっている、commons-ioの実装の変遷をふりかえり、そ
1. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless時代の Javaについて AWS Presents, Battle against Massive Load using Your Super Sonic Lambda Function! 1 @_kensh Kensuke Shimokawa Amazon Web Services Japan 2. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Who? 2 •Name • 下川 賢介 • Kensuke Shimokawa •Company • Amazon Web Services Japan •Role • S
JJUG CCC 2019 fall g3のセッション資料です。 「ちょっと凝ったことをしようとすると大量のXMLを書かなきゃいけない」「プラグインを並べてもうまく動いてくれない」など、Mavenは誤解され敬遠され、Gradleなどの他のビルドツールにシェアを奪われてきました。 が、依然としてMavenはJavaのデファクトスタンダードなビルドツールに位置づけられており、マスターする価値は十分にあります。そして良く学んでみると、そもそもXMLで過度なカスタマイズしようというのが誤った使い方だったのに気づきます。そこへ至るにも、タスクランナーの延長線上にある他のビルドツールと異なり、Maven独特なライフサイクルとプラグインの関係性もきちんと理解しておかなければなりません。Read less
概要 この記事は、ユニットテスト環境にJUnit5、AssertJ、Mockitoを使ったプロジェクトのひな型を作った時のメモです。 環境 Windows 10 Professional OpenJDK 11 JUnit5 5.3.2 AssertJ 3.11.1 Mockito 2.23.4 Maven 3.6.0 Eclipse 2018-09 参考 JUnit5 JUnit 5 User Guide Third party Extensions junit-team/junit5-samples AssertJ AssertJ joel-costigliola/assertj-examples Mockito Mockito release notes page Maven Apache Maven JDK 11 > java -version openjdk version "11
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く