Skip to content

Instantly share code, notes, and snippets.

View kapresoft's full-sized avatar

Tony Lagnada (Kapresoft) kapresoft

View GitHub Profile
@kapresoft
kapresoft / generated-gradlew-file
Last active August 14, 2018 23:00
getting-started-with-gradle-1
/*
* This build file was generated by the Gradle 'init' task.
*
* This generated file contains a commented-out sample Java project to get you started.
* For more details take a look at the Java Quickstart chapter in the Gradle
* user guide available at https://docs.gradle.org/3.5/userguide/tutorial_java_projects.html
*/
/*
// Apply the java plugin to add support for Java
@kapresoft
kapresoft / Java Compiler Mismatch Log
Last active August 28, 2018 02:02
Java Compiler Mismatch
/Users/bob/sandbox/github/nfet/mvn_set_java_compiler_version
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building mvn-demo-java-compiler-version 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ mvn-demo-java-compiler-version ---
[INFO] Deleting /Users/bob/sandbox/github/nfet/mvn_set_java_compiler_version/target
[INFO]
; AutoHotKey: Mac key bindings for IntelliJ/Android Studio for Windows
#IfWinActive ahk_exe idea64.exe || ahk_exe studio64.exe
; ====== COMMON ========================================
; Find Action (⌘+Shift+A) -> (Ctrl+Shift+A)
#+a::
{
Send ^+a
@kapresoft
kapresoft / Account.java
Last active November 3, 2021 22:55
Immutable Account using Lombok `@Value` Annotation
package com.kapresoft.springboot.serializeimmutableobjects.dto.simple;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Builder;
import lombok.Value;
/**
* Immutable Account using Lombok {@code @Value}.
*/
@kapresoft
kapresoft / AccountWithoutUsingValue.java
Last active November 3, 2021 22:54
Immutable Account without using Lombok `@Value` Annotation
package com.kapresoft.springboot.serializeimmutableobjects.dto.simple;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.*;
import lombok.experimental.FieldDefaults;
@Getter
@ToString
@EqualsAndHashCode
@kapresoft
kapresoft / Account.json
Created November 1, 2021 23:28
Spring Boot Jackson and Lombok Best Practices - Account JSON
{
"username": "kapre",
"email": "kapre@kapresoft.com",
"firstName": "Kapre",
"lastName": "Agta"
}
@kapresoft
kapresoft / account-service.uml
Last active April 12, 2023 21:07
Spring Boot Jackson and Lombok Best Practices - Account UML
@startuml
"Client App" -> "Account API": POST /account
"Account API" -> "Jackson ObjectMapper": readValue(byte[] src, Class<Account>)
"Account API" -> "Account API": createAccount(Account)
"Account API" -> "Jackson ObjectMapper": writeValue(OutputStream out, Account newAccount)
"Client App" <-- "Account API": Response (OutputStream)
@enduml
@kapresoft
kapresoft / jackson-bom-2.12.5.pom
Created November 2, 2021 04:11
Spring 2.5.x Jackson BOM file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-parent</artifactId>
<!-- note: does NOT change for every version of bom -->
<version>2.12</version>
</parent>
@kapresoft
kapresoft / BaseAccount.java
Last active November 3, 2021 22:51
Immutable BaseAccount using Lombok
package com.kapresoft.springboot.serializeimmutableobjects.dto.hierarchical;
import lombok.Getter;
@Getter
public abstract class BaseAccount {
String username;
String email;
@kapresoft
kapresoft / HierarchicalAccount.java
Last active November 3, 2021 22:50
Immutable HierarchicalAccount using Lombok `@Value` Annotation
package com.kapresoft.springboot.serializeimmutableobjects.dto.hierarchical;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Value;
@Value
@EqualsAndHashCode(callSuper = true)