Skip to content

Commit

Permalink
Merge pull request #172 from mbari-org/feature/hibernate
Browse files Browse the repository at this point in the history
Feature/hibernate
  • Loading branch information
hohonuuli committed Feb 16, 2024
2 parents 3b5f2bb + f663edc commit f091f0f
Show file tree
Hide file tree
Showing 41 changed files with 1,795 additions and 842 deletions.
24 changes: 12 additions & 12 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ plugins {

subprojects {

version = "1.5.3"
version = "2.0.1"

apply plugin: 'com.adarshr.test-logger'
apply plugin: 'com.github.ben-manes.versions'
Expand All @@ -19,8 +19,8 @@ subprojects {
apply plugin: 'org.javamodularity.moduleplugin'
apply plugin: 'org.kordamp.gradle.jdeps'

sourceCompatibility = 17
targetCompatibility = 17
sourceCompatibility = 21
targetCompatibility = 21

repositories {
// jcenter()
Expand Down Expand Up @@ -59,7 +59,7 @@ subprojects {

constraints {
implementation 'com.auth0:java-jwt:4.4.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.16.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.16.1'
implementation 'com.fatboyindustrial.gson-javatime-serialisers:gson-javatime-serialisers:1.1.2'
implementation 'com.github.ben-manes.caffeine:caffeine:3.1.8'
implementation 'com.github.mizosoft.methanol:methanol:1.7.0'
Expand All @@ -74,7 +74,7 @@ subprojects {
implementation 'de.jensd:fontawesomefx-materialicons:2.2.0-11'
implementation 'eu.hansolo:Medusa:16.0.0' //1.7
implementation 'io.reactivex.rxjava3:rxjava:3.1.8'
implementation 'jakarta.activation:jakarta.activation-api:1.2.2'
implementation 'jakarta.activation:jakarta.activation-api:2.1.2'
implementation 'javax.inject:javax.inject:1'
implementation 'javax.servlet:javax.servlet-api:4.0.1'
implementation 'org.controlsfx:controlsfx:11.2.0'
Expand All @@ -89,18 +89,18 @@ subprojects {
implementation 'org.mbari.vcr4j:vcr4j-sharktopoda-client:5.2.0'
implementation 'org.mbari.vcr4j:vcr4j-sharktopoda:5.2.0'
implementation 'org.mbari:mbarix4j:2.0.5.jre11'
implementation 'org.slf4j:slf4j-api:2.0.9'
implementation 'org.slf4j:slf4j-jdk14:2.0.9'
implementation 'org.slf4j:slf4j-jdk-platform-logging:2.0.9'
implementation 'org.slf4j:slf4j-api:2.0.12'
implementation 'org.slf4j:slf4j-jdk14:2.0.12'
implementation 'org.slf4j:slf4j-jdk-platform-logging:2.0.12'
implementation 'org.swinglabs.swingx:swingx-all:1.6.5-1'
runtimeOnly 'ch.qos.logback:logback-classic:1.4.13'
runtimeOnly 'ch.qos.logback:logback-classic:1.4.14'
runtimeOnly 'org.fusesource.jansi:jansi:2.4.1'
}

testCompileOnly 'junit:junit:4.13.2'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.1'
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.10.1'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.2'
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.10.2'


}
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.mbari.vars.core.util;

import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Optional;

public class InstantUtils {

private static ZoneId utcZone = ZoneId.of("UTC");
public static DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ISO_DATE_TIME.withZone(utcZone);
public static DateTimeFormatter COMPACT_TIME_FORMATTER =
DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmssX").withZone(utcZone);
public static DateTimeFormatter COMPACT_TIME_FORMATTER_MS =
DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss.SSSX").withZone(utcZone);
public static DateTimeFormatter COMPACT_TIME_FORMATTER_NS =
DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss.SSSSSSX").withZone(utcZone);

public static Optional<Instant> parseIso8601(String s) {
return parse(s, TIME_FORMATTER)
.or(() -> parse(s, COMPACT_TIME_FORMATTER))
.or(() -> parse(s, COMPACT_TIME_FORMATTER_MS))
.or(() -> parse(s, COMPACT_TIME_FORMATTER_NS));
}

private static Optional<Instant> parse(String s, DateTimeFormatter formatter) {
try {
return Optional.of(Instant.from(formatter.parse(s)));
}
catch (Exception e) {
return Optional.empty();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@

import java.net.URL;
import java.util.Optional;
import java.util.Random;
import java.util.stream.IntStream;

/**
* @author Brian Schlining
* @since 2017-06-29T08:56:00
*/
public class StringUtils {

private static final String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
private static final Random random = new Random();

public static boolean isBlank(final CharSequence cs) {
int strLen;
if (cs == null || (strLen = cs.length()) == 0) {
Expand Down Expand Up @@ -47,4 +52,11 @@ public static Optional<URL> asUrl(final String s) {
return Optional.empty();
}
}

public static String random(int length) {
var xs = IntStream.range(0, length)
.mapToObj(i -> chars.charAt(random.nextInt(chars.length())))
.collect(StringBuilder::new, StringBuilder::append, StringBuilder::append);
return xs.toString();
}
}
2 changes: 1 addition & 1 deletion org.mbari.vars.services/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ dependencies {

implementation 'com.auth0:java-jwt'
implementation 'com.fasterxml.jackson.core:jackson-databind' // used java-jwt
implementation 'com.fatboyindustrial.gson-javatime-serialisers:gson-javatime-serialisers'
// implementation 'com.fatboyindustrial.gson-javatime-serialisers:gson-javatime-serialisers'
implementation 'com.github.mizosoft.methanol:methanol'
implementation 'com.google.code.gson:gson'
implementation 'com.squareup.okhttp3:logging-interceptor'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
package org.mbari.vars.services;

import org.mbari.vars.services.model.*;
import org.mbari.vcr4j.time.Timecode;

import java.util.Optional;

import static org.junit.Assert.*;

public class AssertUtils {

public static void assertSameMedia(Media a, Media b, boolean checkUuid) {
if (checkUuid) {
assertEquals(a.getVideoReferenceUuid(), b.getVideoReferenceUuid());
assertEquals(a.getVideoUuid(), b.getVideoUuid());
assertEquals(a.getVideoSequenceUuid(), b.getVideoSequenceUuid());
}
assertEquals(a.getAudioCodec(), b.getAudioCodec());
assertEquals(a.getCameraId(), b.getCameraId());
assertEquals(a.getContainer(), b.getContainer());
assertEquals(a.getDuration(), b.getDuration());
assertArrayEquals(a.getSha512(), b.getSha512());
assertEquals(a.getUri(), b.getUri());
assertEquals(a.getVideoSequenceName(), b.getVideoSequenceName());
assertEquals(a.getVideoName(), b.getVideoName());
assertEquals(a.getVideoCodec(), b.getVideoCodec());
assertEquals(a.getStartTimestamp(), b.getStartTimestamp());
assertEquals(a.getFrameRate(), b.getFrameRate());
assertEquals(a.getWidth(), b.getWidth());
assertEquals(a.getHeight(), b.getHeight());
assertEquals(a.getSizeBytes(), b.getSizeBytes());
assertEquals(a.getDescription(), b.getDescription());
assertEquals(a.getVideoDescription(), b.getVideoDescription());
assertEquals(a.getVideoSequenceDescription(), b.getVideoSequenceDescription());
}

public static void assertSameAnnotation(Annotation a, Annotation b, boolean checkUuid, boolean checkRelations) {
if (checkUuid) {
assertEquals(a.getObservationUuid(), b.getObservationUuid());
assertEquals(a.getImagedMomentUuid(), b.getImagedMomentUuid());
}
assertEquals(a.getVideoReferenceUuid(), b.getVideoReferenceUuid());
assertEquals(a.getConcept(), b.getConcept());
assertEquals(a.getObserver(), b.getObserver());
assertEquals(a.getObservationTimestamp(), b.getObservationTimestamp());
assertEquals(a.getVideoReferenceUuid(), b.getVideoReferenceUuid());
assertEquals(a.getDuration(), b.getDuration());
assertEquals(a.getElapsedTime(), b.getElapsedTime());
assertEquals(a.getRecordedTimestamp(), b.getRecordedTimestamp());
assertEquals(a.getGroup(), b.getGroup());
assertEquals(a.getActivity(), b.getActivity());
if (checkRelations) {
assertEquals(a.getAssociations().size(), b.getAssociations().size());
assertEquals(a.getImageReferences().size(), b.getImageReferences().size());
}
}

public static void assertSameAssociation(Association a, Association b, boolean checkUuid) {
assertEquals(a.getLinkName(), b.getLinkName());
assertEquals(a.getLinkValue(), b.getLinkValue());
assertEquals(a.getToConcept(), b.getToConcept());
assertEquals(a.getMimeType(), b.getMimeType());
if (checkUuid) {
assertEquals(a.getUuid(), b.getUuid());
}
}

public static void assertSameImageReference(ImageReference a, ImageReference b, boolean checkUuid) {
assertEquals(a.getFormat(), b.getFormat());
assertEquals(a.getUrl(), b.getUrl());
assertEquals(a.getDescription(), b.getDescription());
assertEquals(a.getWidth(), b.getWidth());
assertEquals(a.getHeight(), b.getHeight());
if (checkUuid) {
assertEquals(a.getUuid(), b.getUuid());
}
}

public static void assertSameImage(Image a, Image b, boolean checkUuid) {
assertEquals(a.getFormat(), b.getFormat());
assertEquals(a.getUrl(), b.getUrl());
assertEquals(a.getDescription(), b.getDescription());
assertEquals(a.getWidth(), b.getWidth());
assertEquals(a.getHeight(), b.getHeight());
var tca = Optional.ofNullable(a.getTimecode()).orElse(Timecode.zero()).toString();
var tcb = Optional.ofNullable(a.getTimecode()).orElse(Timecode.zero()).toString();
assertEquals(tca, tcb);
assertEquals(a.getElapsedTime(), b.getElapsedTime());
assertEquals(a.getRecordedTimestamp(), b.getRecordedTimestamp());
assertEquals(a.getVideoReferenceUuid(), b.getVideoReferenceUuid());
if (checkUuid) {
assertEquals(a.getImageReferenceUuid(), b.getImageReferenceUuid());
assertEquals(a.getImagedMomentUuid(), b.getImagedMomentUuid());
}
}

public static void assertSameAncillaryData(AncillaryData a, AncillaryData b, boolean checkUuid) {
assertSameAncillaryData(a, b, checkUuid, true);
}

public static void assertSameAncillaryData(AncillaryData a, AncillaryData b, boolean checkUuid, boolean checkTimestamp) {
if (checkTimestamp) {
assertEquals(a.getRecordedTimestamp(), b.getRecordedTimestamp());
}
assertEquals(a.getAltitude(), b.getAltitude(), 0.001);
assertEquals(a.getCrs(), b.getCrs());
assertEquals(a.getDepthMeters(), b.getDepthMeters(), 0.001);
assertEquals(a.getLatitude(), b.getLatitude(), 0.001);
assertEquals(a.getLongitude(), b.getLongitude(), 0.001);
assertEquals(a.getLightTransmission(), b.getLightTransmission(), 0.001);
assertEquals(a.getOxygenMlL(), b.getOxygenMlL(), 0.001);
assertEquals(a.getPhi(), b.getPhi());
assertEquals(a.getPosePositionUnits(), b.getPosePositionUnits());
assertEquals(a.getPressureDbar(), b.getPressureDbar(), 0.001);
assertEquals(a.getPsi(), b.getPsi());
assertEquals(a.getSalinity(), b.getSalinity(), 0.001);
assertEquals(a.getTemperatureCelsius(), b.getTemperatureCelsius(), 0.001);
assertEquals(a.getTheta(), b.getTheta());
assertEquals(a.getX(), b.getX());
assertEquals(a.getY(), b.getY());
assertEquals(a.getZ(), b.getZ());
if (checkUuid) {
assertEquals(a.getUuid(), b.getUuid());
assertEquals(a.getImagedMomentUuid(), b.getImagedMomentUuid());
}
}

public static void assertSameCachedVideoReference(CachedVideoReference a, CachedVideoReference b, boolean checkUuid) {
assertEquals(a.getMissionContact(), b.getMissionContact());
assertEquals(a.getPlatformName(), b.getPlatformName());
assertEquals(a.getMissionId(), b.getMissionId());
assertEquals(a.getVideoReferenceUuid(), b.getVideoReferenceUuid());
if (checkUuid) {
assertEquals(a.getUuid(), b.getUuid());
}
}

public static void assertSameIndex(Index a, Index b, boolean checkUuid) {
assertEquals(a.getElapsedTime(), b.getElapsedTime());
assertEquals(a.getRecordedTimestamp(), b.getRecordedTimestamp());
assertEquals(a.getVideoReferenceUuid(), b.getVideoReferenceUuid());
if (checkUuid) {
assertEquals(a.getUuid(), b.getUuid());
}
}

}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package org.mbari.vars.services;

import io.reactivex.Observable;
import io.reactivex.schedulers.Schedulers;
import io.reactivex.subjects.Subject;
//import io.reactivex.Observable;
//import io.reactivex.schedulers.Schedulers;
//import io.reactivex.subjects.Subject;

import org.mbari.vars.services.TestToolbox;
import org.mbari.vars.services.model.Annotation;
Expand Down

0 comments on commit f091f0f

Please sign in to comment.