I just stumbled upon a few nice settings in the Settings menu in IntelliJ IDEA and WebStorm. I imagine, but haven't confirmed, that they're also available in other Jetbrains products. These settings make the IDE a bit more, ehm, compact. Let's take a look at them.
I say this a lot on Twitter/X/Bluesky/in my talks/wherever: "there's never been a better time to be a Java and Spring developer!" and people inquire: "why?" And sometimes, why not other languages like Python, Rust, Go, TypeScript, etc.
Recently, there was a discussion on an email mailing list about how to best prepare for a conference talk. I shared my two cents, which I’ll reprint here.
I recently posted a "poll" on Twitter, tongue very firmly planted in cheek, asking whether IntelliJ IDEA should stop defaulting new classes created in a Java project with the visibility keyword public. Here's my "poll". Naturally, somebody asked "why not?" Here's my answer. I'll put it here and potentially update it over time as my thinking gets clearer.
here's an example of a project that has been setup to use JReleaser: https://github.com/joshlong/lucene-spring-boot-starter/blob/4557e5b70c56e1fc7b6ef3c0d14dd8d2c95ffc0d/jrelease.sh#L4-L3
Let's suppose I have an API gateway (a glorified proxy, in this case) protecting requests destined for downstream microservice APIs. In the OAuth world, the gateway would act as an OAuth client, and the API would act as a resource server. Both an OAuth client and an OAuth resource server reject requests without a valid OAuth token. The OAuth client can help you originate a token, however, where the resource server will reject requests outright. The OAuth client involves an OAuth authorization service to handle the login and authentication. An authorization service is one of many different identity providers (IDPs), like Spring Authorization Server, Active Directory, Okta/Auth0, and Keycloak. Once the user has authenticated, the authorization service returns control to the OAuth client which in turn now has a token it can send along with the proxied requests destined for the downstream API.
I like using Java to write scripts. It's particularly easy with two features in Java: Java can run source code, and you can have class-less main methods.