Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
69fe2ac
Core - API - Added search query to search results
GregJohnStewart Nov 15, 2025
926e306
Lib - Core API for Quarkus - Added new search param for inventory item
GregJohnStewart Nov 15, 2025
412956a
Core - API - Work towards initial rework of printouts
GregJohnStewart Nov 15, 2025
61306c5
Core - Base Station - work towards initial rework of printouts
GregJohnStewart Nov 15, 2025
283fb06
Core - Base Station - Most of the way up to reworked bulk stored tabl…
GregJohnStewart Nov 16, 2025
331a305
Core - Base Station - Got bulk item table working for printouts
GregJohnStewart Nov 17, 2025
df40ab5
Core - API - fixed storage block stats in new item
GregJohnStewart Nov 17, 2025
9d13000
Core - Base Station - Iconography in printouts and work towards amoun…
GregJohnStewart Nov 18, 2025
f8a932e
Merge branch 'development' into dev/982-fr-base-station-printouts
GregJohnStewart Nov 20, 2025
5eb61e5
Merge branch 'development' into dev/982-fr-base-station-printouts
GregJohnStewart Dec 3, 2025
ef8fc21
Core - Base Station - core api lib version bump
GregJohnStewart Dec 3, 2025
3c0607c
Lib - Core API for Quarkus - version bump for dev
GregJohnStewart Dec 3, 2025
0808857
Core - API - version bump for dev
GregJohnStewart Dec 3, 2025
ee97cfc
Core - Base Station - Now including amt list table (unfinished in pri…
GregJohnStewart Dec 4, 2025
7eeadc2
Lib - Core API for Quarkus - version bump for dev
GregJohnStewart Dec 4, 2025
afb1e63
Merge branch 'development' into dev/982-fr-base-station-printouts
GregJohnStewart Jan 13, 2026
85299f5
Core - API - Fixing some test after merge
GregJohnStewart Jan 13, 2026
39f75c5
Bump com.itextpdf:html2pdf in /software/core/oqm-core-base-station
dependabot[bot] Jan 13, 2026
d667a28
Core - API - Cleanup from review
GregJohnStewart Jan 17, 2026
110b612
Add Ralph investigation setup for #1033
Jan 17, 2026
d9bd2e8
Fix #1033: Standardize Lombok plugin version to 9.1.0 across all modules
Jan 17, 2026
548cbd8
Update implementation plan: CI validation passed
Jan 17, 2026
97694e6
Remove Ralph investigation scaffolding
Jan 17, 2026
cbcfdc6
Ralph: Investigation phase - error reproduced at 20% rate
Jan 17, 2026
0e6d274
Core - Base Station - Fixed image add from search select in categori…
GregJohnStewart Jan 17, 2026
f4e6abf
Ralph: Investigation verified - 30% failure rate confirmed
Jan 17, 2026
22311e7
Ralph: Investigation phase - 50% failure rate confirmed
Jan 17, 2026
cfe74fb
Ralph: Investigation phase - 60% failure rate confirmed
Jan 17, 2026
f3a38d3
Ralph: Investigation phase - 44% failure rate confirmed (Session 3)
Jan 17, 2026
9bd7a53
Ralph: Investigation phase - 30% failure rate confirmed (Session 4)
Jan 17, 2026
9590370
Fix #1033: Remove lombok.builder.className=Builder to fix @SuperBuild…
Jan 17, 2026
4e539d9
Ralph: Documentation update - final validation completed (Session 5)
Jan 17, 2026
0630b9f
Ralph: Session 6 validation completed - 10/10 builds passed
Jan 17, 2026
feb9a9e
Ralph: Session 7 validation completed - 10/10 builds passed
Jan 17, 2026
eeda589
Ralph: Session 8 validation completed - 10/10 builds passed
Jan 17, 2026
c8859fe
Ralph: Session 9 validation completed - 10/10 builds passed
Jan 18, 2026
cb78067
Ralph: Session 10 validation completed - 10/10 builds passed
Jan 18, 2026
5b82252
Remove Ralph investigation scaffolding
Jan 18, 2026
5fb387d
Merge branch 'main' into development
GregJohnStewart Jan 18, 2026
7c672bb
Merge branch 'development' into investigate/1033-lombok-superbuilder
GregJohnStewart Jan 18, 2026
fa73a11
Revise comments in lombok.config for clarity
GregJohnStewart Jan 18, 2026
2613cfc
Merge pull request #1054 from Epic-Breakfast-Productions/investigate/…
GregJohnStewart Jan 18, 2026
80be6e6
Core - API - Disabled schema upgrade tests that need rework
GregJohnStewart Jan 18, 2026
d8202d8
Core - API - Un-multithreaded database importing
GregJohnStewart Jan 19, 2026
b190005
Core - API - Reworked db export threading to align with Quarkus best …
GregJohnStewart Jan 19, 2026
b9c10eb
Core - API - Fixed some flaky test
GregJohnStewart Jan 20, 2026
7eca3a0
Merge pull request #1060 from Epic-Breakfast-Productions/dev/1034-bug…
GregJohnStewart Jan 20, 2026
3924700
Core - API - Added associated links to inventory items
GregJohnStewart Jan 20, 2026
06309dd
Lib - Core API for Quarkus - Version bumps for dev
GregJohnStewart Jan 20, 2026
d1fefed
Core - Base Station - Added associated links to item addedit form
GregJohnStewart Jan 20, 2026
20dc60e
Core - API - Fixed mongodb codec issue with URI's
GregJohnStewart Jan 20, 2026
a74b73f
Bump io.freefair.lombok in /software/plugins/external-item-search
dependabot[bot] Jan 20, 2026
975c280
Bump io.freefair.lombok in /software/core/oqm-core-api
dependabot[bot] Jan 20, 2026
6f72058
Bump io.freefair.lombok in /software/core/oqm-core-base-station
dependabot[bot] Jan 20, 2026
1915487
Bump com.fasterxml.jackson.datatype:jackson-datatype-javax-money
dependabot[bot] Jan 20, 2026
3ef3b01
Core - Base Station - Integrated viewing associated links
GregJohnStewart Jan 21, 2026
7e636da
Merge branch 'development' into dependabot/gradle/software/core/oqm-c…
GregJohnStewart Jan 21, 2026
de0eb39
Merge pull request #1065 from Epic-Breakfast-Productions/dev/268-fr-a…
GregJohnStewart Jan 21, 2026
3a1270e
Merge branch 'development' into dependabot/gradle/software/core/oqm-c…
GregJohnStewart Jan 22, 2026
68731e6
Merge pull request #1064 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Jan 22, 2026
0d3c5a5
Merge branch 'development' into dependabot/gradle/software/core/oqm-c…
GregJohnStewart Jan 22, 2026
0213d9a
Merge pull request #1063 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Jan 22, 2026
92f9395
Merge branch 'development' into dependabot/gradle/software/core/oqm-c…
GregJohnStewart Jan 22, 2026
9ebd868
Merge pull request #1062 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Jan 22, 2026
2cb373b
Merge branch 'development' into dependabot/gradle/software/plugins/ex…
GregJohnStewart Jan 22, 2026
4988153
Merge pull request #1061 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Jan 22, 2026
9597806
Merge branch 'development' into dev/982-fr-base-station-printouts
GregJohnStewart Jan 23, 2026
3c930e4
Core - API - Fix from merge
GregJohnStewart Jan 23, 2026
223c00d
Merge branch 'development' into dependabot/gradle/software/core/oqm-c…
GregJohnStewart Jan 23, 2026
35b6b8e
Merge pull request #1041 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Jan 23, 2026
fd53c49
Merge branch 'development' into dev/982-fr-base-station-printouts
GregJohnStewart Jan 23, 2026
ac84ed1
Lib - Core API for Quarkus - Tweaked quarkus exgtension info
GregJohnStewart Jan 23, 2026
a20ac82
Core - Base Station - Updated to latest quarkus version
GregJohnStewart Jan 23, 2026
04e7b46
Lib - Core API for Quarkus - Version bump to Quarkus, organization, a…
GregJohnStewart Jan 24, 2026
8f1e210
Lib - Core API for Quarkus - Achieved tying db management into the de…
GregJohnStewart Jan 26, 2026
e3acd6f
Lib - Core API for Quarkus - beginnings of populating data
GregJohnStewart Jan 27, 2026
d7617d8
Lib - Core API for Quarkus - More filling out populating
GregJohnStewart Jan 27, 2026
cad7609
Core - Base Station - Adjustments to logging
GregJohnStewart Jan 27, 2026
af39887
Bump org.assertj:assertj-core in /software/core/oqm-core-api
dependabot[bot] Jan 27, 2026
6129aca
Lib - Core API for Quarkus - Populated items in dev/test dataset
GregJohnStewart Jan 28, 2026
a97c0c1
Lib - Core API for Quarkus - Tweaks to added stuff
GregJohnStewart Jan 29, 2026
68a9836
Core - Base Station - Finished basic printouts
GregJohnStewart Jan 29, 2026
043fa72
Lib - Core API for Quarkus - Cleanup from review
GregJohnStewart Jan 29, 2026
1d1b18e
Core - API - Fix from review
GregJohnStewart Jan 29, 2026
103b3e8
Core - Base Station - Cleanup from review
GregJohnStewart Jan 29, 2026
d48742c
Merge pull request #989 from Epic-Breakfast-Productions/dev/982-fr-ba…
GregJohnStewart Jan 29, 2026
ee690cc
Merge branch 'development' into dependabot/gradle/software/core/oqm-c…
GregJohnStewart Jan 29, 2026
4a67d02
Merge pull request #1071 from Epic-Breakfast-Productions/dependabot/g…
GregJohnStewart Jan 29, 2026
7bd490d
Merge branch 'main' into development
GregJohnStewart Feb 1, 2026
d94c56b
Core - API - Fixing flaky test
GregJohnStewart Feb 2, 2026
b8f2681
Core - Base Station - Version bump from review
GregJohnStewart Feb 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions deployment/Single Host/Infrastructure/postgres/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ This postgresql instance is currently used by:

- [Keycloak infra component](../keycloak)

## Helpful commands

- Check if pg reports itself ready: `pg_isready`
-


## Resources

- https://www.docker.com/blog/how-to-use-the-postgres-docker-official-image/
Expand Down
8 changes: 4 additions & 4 deletions software/core/oqm-core-api/build.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
plugins {
id 'java'
id 'io.quarkus'
id "io.freefair.lombok" version "9.1.0"
id "io.freefair.lombok" version "9.2.0"
id 'org.cyclonedx.bom' version '2.3.1'
id("org.spdx.sbom") version "0.9.0"
}

group 'com.ebp.openQuarterMaster'
version '4.2.0'
version '4.3.0-DEV'

repositories {
mavenCentral()
Expand Down Expand Up @@ -38,7 +38,7 @@ dependencies {
implementation 'org.jboss.slf4j:slf4j-jboss-logmanager'

implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
implementation "com.fasterxml.jackson.datatype:jackson-datatype-javax-money:2.20.1"
implementation "com.fasterxml.jackson.datatype:jackson-datatype-javax-money:2.21.0"
implementation 'com.fasterxml.jackson.module:jackson-module-blackbird'

// https://mvnrepository.com/artifact/tech.units/indriya
Expand Down Expand Up @@ -66,7 +66,7 @@ dependencies {
testImplementation 'io.quarkus:quarkus-smallrye-jwt-build'
testImplementation 'io.quarkus:quarkus-test-kafka-companion'
testImplementation 'net.datafaker:datafaker:2.5.3'
testImplementation 'org.assertj:assertj-core:3.27.6'
testImplementation 'org.assertj:assertj-core:3.27.7'
}

java {
Expand Down
9 changes: 8 additions & 1 deletion software/core/oqm-core-api/lombok.config
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
lombok.accessors.chain=true
lombok.addLombokGeneratedAnnotation = true
#lombok.addJavaxGeneratedAnnotation = true
lombok.builder.className = Builder

# lombok.builder.className = Builder
# NOTE: was removed to fix Issue #1033
# This setting conflicts with @SuperBuilder on generic class hierarchies,
# causing intermittent "wrong number of type arguments" compilation errors.
# See:
# - https://github.com/projectlombok/lombok/issues/2647
# - https://github.com/projectlombok/lombok/issues/3911 (issure reporting this case)
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public class ExceptionObjectNormalizer implements ContainerResponseFilter {
@Context
UriInfo uriInfo;

private ErrorMessage.Builder<?, ?> buildOutputForHibViolation(ViolationReport report) {
private ErrorMessage.ErrorMessageBuilder<?, ?> buildOutputForHibViolation(ViolationReport report) {
log.debug("Violation Report type. Mapping to standard error object.");

StringBuilder sb = new StringBuilder("Data validation errors (" + report.getViolations().size() + "): ");
Expand Down Expand Up @@ -86,7 +86,7 @@ public void filter(ContainerRequestContext requestContext, ContainerResponseCont
return;
}

ErrorMessage.Builder<?, ?> outputBuilder = null;
ErrorMessage.ErrorMessageBuilder<?, ?> outputBuilder = null;
log.debug("Type of response object: {}", responseContext.getEntityType());

if (responseContext.getEntity() instanceof ViolationReport) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.bson.types.ObjectId;
import tech.ebp.oqm.core.api.interfaces.endpoints.media.FileGet;
import tech.ebp.oqm.core.api.model.object.FileMainObject;
import tech.ebp.oqm.core.api.model.object.MainObject;
import tech.ebp.oqm.core.api.model.object.history.ObjectHistoryEvent;
import tech.ebp.oqm.core.api.model.object.media.FileMetadata;
import tech.ebp.oqm.core.api.model.rest.media.file.FileUploadBody;
Expand All @@ -32,7 +33,7 @@
*/
@Slf4j
@NoArgsConstructor
public abstract class MainFileObjectProvider<T extends FileMainObject, U extends FileUploadBody, S extends FileSearchObject<T>, G extends FileGet> extends ObjectProvider {
public abstract class MainFileObjectProvider<T extends FileMainObject, U extends FileUploadBody, S extends FileSearchObject<T>, G extends MainObject & FileGet> extends ObjectProvider {


@Getter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public class FileHashes {
* https://stackoverflow.com/questions/304268/getting-a-files-md5-checksum-in-java
*/
public static FileHashes fromFile(File file) {
FileHashes.Builder<?, ?> builder = FileHashes.builder();
FileHashes.FileHashesBuilder<?, ?> builder = FileHashes.builder();

try (FileInputStream is = new FileInputStream(file)) {
builder.md5(DigestUtils.md5Hex(is));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package tech.ebp.oqm.core.api.model.object.storage.checkout;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
import lombok.experimental.SuperBuilder;
import tech.ebp.oqm.core.api.model.object.storage.checkout.CheckInType;

@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Data
//@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import tech.ebp.oqm.core.api.model.object.ImagedMainObject;
import tech.ebp.oqm.core.api.model.object.storage.items.identifiers.general.GeneralId;
import tech.ebp.oqm.core.api.model.object.storage.items.identifiers.unique.UniqueId;
import tech.ebp.oqm.core.api.model.object.storage.items.info.AssociatedLink;
import tech.ebp.oqm.core.api.model.object.storage.items.notification.ItemNotificationStatus;
import tech.ebp.oqm.core.api.model.object.storage.items.pricing.Pricing;
import tech.ebp.oqm.core.api.model.object.storage.items.pricing.StoredPricing;
Expand Down Expand Up @@ -138,6 +139,15 @@ public class InventoryItem extends ImagedMainObject implements FileAttachmentCon
@UniqueLabeledCollection
private LinkedHashSet<@NotNull StoredPricing> defaultPrices = new LinkedHashSet<>();

/**
* Links to external resources related to the item
*/
@NonNull
@NotNull
@lombok.Builder.Default
@UniqueLabeledCollection
private LinkedHashSet<@NotNull AssociatedLink> associatedLinks = new LinkedHashSet<>();

/**
* The default format that should be applied to new stored items if not otherwise specified.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package tech.ebp.oqm.core.api.model.object.storage.items.info;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.experimental.SuperBuilder;
import tech.ebp.oqm.core.api.model.object.Labeled;

import java.net.URI;

@Data
@SuperBuilder(toBuilder = true)
@AllArgsConstructor
@NoArgsConstructor
public class AssociatedLink implements Labeled {

@NonNull
@NotNull
private String label;

@NonNull
@NotNull
private URI link;

@Builder.Default
private String description = null;
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ protected MonetaryAmount calcPriceFromUnit(Stored stored){
}

public CalculatedPricing calculatePrice(Stored stored){
CalculatedPricing.Builder<?,?> output = CalculatedPricing.builder()
CalculatedPricing.CalculatedPricingBuilder<?,?> output = CalculatedPricing.builder()
.label(this.getLabel());

output.flatPrice(this.getFlatPrice());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import tech.units.indriya.quantity.Quantities;
Expand All @@ -23,6 +24,7 @@ public StatsWithTotalContaining(Unit<?> unit){
this();
this.total = Quantities.getQuantity(0, unit);
}


// @NonNull //TODO:: this
private Quantity<?> total;
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class StoredInBlockStats extends StatsWithTotalContaining {
public StoredInBlockStats(Unit<?> unit){
super(unit);
}

@lombok.Builder.Default
private boolean hasStored = false;
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package tech.ebp.oqm.core.api.model.object.storage.items.transactions.transactions.checkin;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
Expand All @@ -12,11 +13,12 @@
/**
* Transaction to checkin the entirety of a checkout.
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder(toBuilder = true)
public class CheckinFullTransaction extends CheckinTransaction<ReturnFullCheckinDetails> {


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
/**
* Checkin transaction to only checkin a part of the amount checked out.
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
public class CheckinPartTransaction extends CheckinTransaction<ReturnPartCheckinDetails> {

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package tech.ebp.oqm.core.api.model.object.storage.items.transactions.transactions.checkin;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
Expand All @@ -18,8 +19,9 @@
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder(toBuilder = true)
public abstract class CheckinTransaction <T extends CheckInDetails> extends ItemStoredTransaction {

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package tech.ebp.oqm.core.api.model.object.storage.items.transactions.transactions.checkout;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
Expand All @@ -13,25 +14,26 @@
/**
* Transaction to checkout an amount of item stored.
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder(toBuilder = true)
public class CheckoutAmountTransaction extends CheckoutTransaction {

/**
* If applicable, the specific stored object we are checking out from.
*/
private ObjectId fromStored;

/**
* If applicable, the specific block we are checking out from. Use when checking out from bulk
* <p>
* Only specify when {@link CheckoutAmountTransaction#all} is `false`.
*/
private ObjectId fromBlock;

/**
* The amount we are checking out.
*/
Expand All @@ -44,13 +46,13 @@ public class CheckoutAmountTransaction extends CheckoutTransaction {
*/
@lombok.Builder.Default
private boolean all = false;


@Override
public TransactionType getType() {
return TransactionType.CHECKOUT_AMOUNT;
}

@Override
public int getSchemaVersion() {
return 1;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package tech.ebp.oqm.core.api.model.object.storage.items.transactions.transactions.checkout;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
Expand All @@ -16,8 +17,9 @@
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder(toBuilder = true)
public abstract class CheckoutTransaction extends ItemStoredTransaction {

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package tech.ebp.oqm.core.api.model.object.storage.items.transactions.transactions.checkout;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
Expand All @@ -13,11 +14,12 @@
/**
* Transaction to checkout an entire stored item.
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder(toBuilder = true)
public class CheckoutWholeTransaction extends CheckoutTransaction {

/**
Expand Down
Loading
Loading