2022-01-01から1年間の記事一覧
存在しない日付の読み取り String strdate = "20230931"; LocalDate dt = LocalDate.parse(strdate, DateTimeFormatter.ofPattern("yyyyMMdd")); 2023-09-30まあ、これは想定される好ましくない方法 DateTimeFormatter に、ResolverStyle.LENIENT を指定する…
先日書いた、 JUnit mockito の return を遅らせたい(時間を掛けたい) - Oboe吹きプログラマの黙示録よく考えたら thenAnswer は、lambda で書けましたね。。 Mockito.when(foo.getAgent(Mockito.contains("a"))).thenAnswer(new Answer<String>() { @Override pub</string>…
変なテスト要求仕様であるし、こんなこと通常しないかもしれないが、リターン値を when で書くメソッドの引数の条件以外の条件で分岐させる時に応用できるかもしれない。通常、String 1個の引数メソッドのモック Mockito.when(テスト対象Class.メソッド(Mock…
JUnit テストケースコードで、log4j2 の log4j.configurationFile 属性を書きかえれば良い。 以前、 oboe2uran.hatenablog.com を書いて悩んだが、 開発 IDE を Eclipseを使っているのであれば、、 test/resources/ の下に、JUnit で実行する時のための log4…
JUnit で、@Before 付与したテストケースの前に動くメソッド内で、 これからテスト実行するテストケースメソッド名を取得する。JUnit で、@After付与したテストケースの後に動くメソッド内で、 テスト実行したテストケースメソッド名を取得する。 という場合…
先日書いたサンプル、 oboe2uran.hatenablog.com のようなケースで、待ち合わせ時にスレッドプールがどういう状況かを知りたい場合がある。単純であるが、Executors.newFixedThreadPool で作成したものを ThreadPoolExecutor でキャストすれば良い。 ThreadP…
JUnit のモックは、org.mockito を使うことが多いのであろうか。 mockito-core と、mockito-inline を Maven pom.xml で依存関係を指定して使ったりする。 Mockito.when(~メソッド実行).thenReturn(リターン値); などを良く書いていたものだ。JMockito の書…
Runnbale のタスクと Future のタスク、それぞれのサンプルコードを書いてみた。 以下、どちらもそうなのだが、 CompletableFuture の allOf メソッドが可変長引数で、リスト等のコレクションを指定できないので、 しかたなく、toArray(CompletableFuture[]:…
ネット検索するといろいろと出てくると思うが、要は、Docker ファイルの記述で、COPY --from=0 転送元 .あるいは、FROM as で名称を付けた名前でCOPY --from=名前 転送元 . を書くことである。 具体的に、Docker ファイルを、、 FROM amazoncorretto:11 as j…
昔、Process を作成して動かすものを、yipuran-core に載せてあるが、近々、削除して 書き直そうと思っている。 以下のように、標準出力も標準エラー出力も区別なく結果として取得した方が 良いのではないかと。。。 public class ScriptExecutor{ private M…
Throwable の getCause() で null にならないまで参照していく方法になり、 ネット検索すると腐るほどサンプルコードが出てくるだろう。。 while ループを良く見かけるが、個人的には、for文ループの方が良いと思っている。 }catch(Exception e){ for(Throwa…
AWS SDK for Java を使う <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-batch</artifactId> <version>1.12.295</version> </dependency> AWSBatchClientBuilder で AWSBatch クライアントを生成する。 SubmitJobRequest JOBリクエストとして、JOB送信名、JOBキュー、JOB定義名を指定して用意し AWSBatch クライアントで、…
Jackson による JSON → Java Objectで、JSON 側に対象フィールドキーが存在しない時 エラーにする方法、 @JsonProperty(required=true) を付ければ良いと思っていた。。。 import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data…
それでも、これしかないという時の為に、、、 public static Consumer<Integer> sleepSecApprox(long precision){ return t->{ LocalDateTime tc = LocalDateTime.now().plusSeconds(t); while(tc.compareTo(LocalDateTime.now()) > 0){ try{ Thread.sleep(precision)</integer>…
AWS Batch Jobを するとき、必要な権限、 aws.amazon.com でやろうとしていたのですが、 必要な Role 権限がなかなか解らなくて苦労しました。AWSBatchServiceEvenyTargetRoleだそうです。 { "Version": "2012-10-17", "Statement": [ { "Eggect": "Allow", …
Excel で、8桁を超える数値を指数表記ではなく、そのまま8桁で格納、 これを Apache POI で読み込むと、 org.apache.poi.ss.usermodel.Cell は、 toString() では、指数表記になる。 10000000 → 1.0E7 つまり、double 型を toString() した場合と同じ。Apa…
https://blogs.oracle.com/otnjp/post/records-come-to-java-ja Java14 で導入された「レコード」の性質が名前付きタプルの側面を持っていることを考えると せめて Java11 にTuple が作れるようになっていて欲しかった。Lombok で、システム内で作るしかない…
Maven profile を使用してビルド対象リソース管理しているプロジェクトで ビルドする JAR名も合わせて変更したい。という要求通常デフォルトのMaven がビルドするJAR は、artifactId 名 + "-" +バージョン番号 + ".jar" という書式で JARファイルが作成さ…
マッチした部分の抽出 #!/bin/bash item="recty-8.10.12" if [[ ${item} =~ ([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then echo '${BASH_REMATCH}='"${BASH_REMATCH}" echo '${BASH_REMATCH[0]}='"${BASH_REMATCH[0]}" echo '${BASH_REMATCH[1]}='"${BASH_REMATCH…
AWS Batch Job 実行のシェル(bash) で シェルの終了コードがそのまま、Job ステータスに適用される。 exit 0で終了すれば、SUCCEEDED exit 1で終了すれば、FAILED になる
bash のスクリプトを書いていて、変数にJSONテキストを入れたい。サンプル シングルクォートで括って、、 #!/bin/bash name="orange" msg='{ "count": 12, "item" : "'$name'" }' echo $msgJSONの中で変数をセットするのが良い書き方に思えない。 echo の結…
bash コマンド実行結果を変数に代入する場合、「`」逆クォーテーションで囲むか、 $( ) で囲むかであるが、入れ子が発生する場合をどう書くか? まず、入れ子にしないケース 1970-1-1 00:00:00 からの秒数、所謂エポック秒を date コマンドで求めた変数を Pe…
Windows Subsystem for Linux (WSL)をインストールして ターミナルを立ち上げると、Windowsの Cドライブは既にマウントされている。次のように、cd で移動すれば、Cドライブアクセス可能 $ cd /mnt/c/
1種類の Linux でしか試してないので vi の見た目が本当に使いにくいかどうか? 筆者は、WSL デフォルトの Ubuntu を入れてみて、vi でファイルを開いた時に、 ・文字色配色コントラストが酷い ・1行目に #!/bin/bash と書いても、真っ黒のままで背景色と…
ATOM以前より使っていたプラグイン、最近のATOM 1.60.0 で、前にも入れて使ったことのある oboe2uran.hatenablog.com この、open-unsupported-files を入れて、 Excel をダブルクリックで Excel アプリで開けずに、エラー Uncaught TypeError: shell.openIte…
Google guice で JSR330 の @Named に対して、 バインド定義で @Namedアノテーションがついていることを限定する場合、 binder().bind(Logic.class).annotatedWith(Names.named("HIGH")).to(HighLogic.class); と、com.google.inject.name.Names の named(…
先日、 oboe2uran.hatenablog.com を書きましたが、 滅多にないというかそんなクラス定義をして何の意味があるのだと思うが、、 インナークラスで定数を定義している場合、、 $でインナークラスを指定することになる。前回のサンプルを例にすると、、 packa…
通常 Google guice の使い方は、インターフェースに対する実装クラスのインスタンスが 割り当てられるように bind定義を書いてDIを実装する。うっかりというか、諸事情で見落として、 @Inject private Foo foo; と書いた Fooクラスが、インターフェースで…
継承があるオブジェクトでは、@Data を使うと警告 Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=f…
時々、使わせてもらってます。www.tablesgenerator.com