gccをビルドするのにどれくらい時間がかかるの?(10分かからなかった)
gccをビルドしようと思ったのですが、結構時間がかかるイメージがあって、先にどれくらいかかるのか調べたかったのだけれど検索しても見つかりませんでした。
…gradle bootRun でプロファイルを指定するには?
gradle bootRun を実行する際にアクティブ化するプロファイルの指定を行いたかったのですが、ぱっと思いつかなかったのでメモ。
まず、
gradle bootRun -Dprofiles.active=myproile
はうまくいきません。`profiles.active`システムプロパティは (アプリケーションでなく) Gradle に渡されるためです。
…openapi-generaterで生成したcontrollerにカスタム引数を追加する
はじめに
openapi generator を Spring Boot で利用してみる で openapi-generator を用いて Spring MVC のコントローラ(のインタフェース)を自動生成してみました。
その後、これを実際に利用してみて気づいたのですが、ハンドラ(controllerのメソッド)に独自の引数を生やしたいことが多く、このままだと非常に不便です。
…Restful API, path を使うか query を使うか
特に結論はなく、情報収集です。
…Google の検索 URI「http://www.google.com/search?q=jellyfish」について考えてみよう。Google Web アプリケーションがパス変数を使用していたならば、この URI はアルゴリズムの実行結果というよりも、ディレクトリのようになっていただろう(http://www.google.com/search/jellyfish)。
これらの URI はどちらも「クラゲに関する Web ページのディレクトリ」リソースに対する正当なリソース指向の名前である。私たちは URI を調べる方法に順応してしまっているので、2 つ目の URI は正しくないように見える。パス変数は階層をトラバースしているように見えるし、クエリ変数はアルゴリズムに引数を渡しているように見える。「検索」にはアルゴリズムのような響きがある。たとえば、 http://www.google.com/directory/jellyfish は/search/jellyfish よりもよさそうに思える。
クエリ変数に対するこの認識は、私たちが Web を使用するたびに強化される。Web ブラウザで HTML フォームに入力しているとき、入力したデータはクエリ変数になる。「クラゲ」をフォームに入力して、 http://www.google.com/search/jellyfish に送信する方法はない。HTML フォームの送信先は http://www.google.com/searchに ハードコーディングされているので、そのフォームに入力すると、 http://www.google.com/search?q=jellyfish になる。ブラウザはクエリ変数をベースURI に追加する方法を知っている。だが、変数を http://www.google.com/search/{q}のような汎用URI に置き換える方法は知らない。
— RESTful Webサービス - 5.5.3 アルゴリズムリソースに対するクエリ変数の使用
openapi generator を Spring Boot で利用してみる
今回の成果物
設定
build.gradle
辺りを参考にしています。
build.gradle
plugins {
id 'eclipse'
id 'org.openapi.generator' version '4.3.1'
}
ext {
openApiOutputDir = "$rootDir/build/generated/openapi"
}
sourceSets.main.java.srcDirs += ["$openApiOutputDir/src/main/java"]
dependencies {
// これらは自動生成クラスが import しているので必要
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.openapitools:jackson-databind-nullable:0.2.1'
compileOnly 'io.swagger:swagger-annotations:1.6.2'
}
openApiGenerate {
generatorName = 'spring'
inputSpec = "$rootDir/specs/test.yml"
outputDir = "$openApiOutputDir"
apiPackage = 'org.openapi.example.api'
modelPackage = 'org.openapi.example.model'
configOptions = [
dateLibrary: 'java8',
interfaceOnly: 'true',
skipDefaultInterface: 'true',
]
}
compileJava.dependsOn tasks.openApiGenerate
specs/test.yml
上の build.gradle で指定している、今回の OpenAPI spec ファイルです。
Spring BootプロジェクトにLombokとMapStructを追加する(Eclipse & Maven/Gradle)
(2021-10-16 更新)
Spring Boot プロジェクトにLombokとMapStructを追加し、かつ Eclipse で開発を行う場合の設定です。
同じようなことを何回か書いてきた気がするのですが、結局どうすれば良いの?というのをまとめて書いたものが無いっぽいので改めて記事に起こしました。
…Gradleでintegration testを作成するも実行できない(JUnit5)
Gradle で integration-test 用にテストディレクトリを分けようとして リファレンス を参考に build.gradle を編集しました。
しかし、コンパイル対象には入っているようですがこのテストが実行されている気配がありません。
…ランダム文字列URL生成に関するメモ
推測されないような文字列を動的に生成しURLに利用できるような仕組みを調べていますが、その調査メモです。
ちょうど私が調べている時期と重なって、関心対象が同じ資料がアップロードされていました:
…Spring Security OAuth 2.0 Login を自動テストする
KeycloakをIdPにしてSpring Security OAuth 2.0 Login/Client を試してみる で作成したプログラムの自動テスト方法です。
今回のコードも前回と同じく次のディレクトリにあります:
まず結論なのですが、リファレンスに説明がありますのでここを参照しましょう、ということになります:
…LombokとMapStructをEclipseで併用しようとした際の不具合がMapStruct1.4.0で解消されていた
これまで、LombokとMapStructを併用しようとした場合、そのままだと不具合(MapStructのアノテーションプロセッシングが動作しない)があり、ちょっとひと手間かけてその不具合を回避する必要がありました。
…SWTのFindWindowはもはや存在しない
元ネタ:
いにしえのJava世界では、Win32APIにアクセスするためにSWTを利用していたそうです(リンク先のエントリは2005年のもの。私がJava始めるまえの話だ…)。
…GradleでSpring Bootプロジェクトを作成してSTS(Eclipse)でインポートする手順
はじめに
Spring Initializrを使ってGradle形式でプロジェクトを作成した場合、どうやってSTS(Eclipse)へインポートするのか逡巡しました。
…KeycloakをIdPにしてSpring Security OAuth 2.0 Login/Client を試してみる
はじめに
Spring Boot で Spring Security OAuth 2.0 Login / Client を利用する手順をまとめます。
また、認可サーバ(IdP)にはローカルで立てたKeycloakを用いますのでそちらのセットアップ手順も記載します。
…