JVM utility libraries from the Monterey Bay Aquarium Research Institute. Two artifacts are published to Maven Central:
jcommons— Java 21 utilities (JPMS moduleorg.mbari.jcommons)scommons_3— Scala 3 utilities, depends onjcommons
Replace VERSION with the latest release (current: 0.0.8).
// Java only
implementation("org.mbari.commons:jcommons:VERSION")
// Scala 3
implementation("org.mbari.commons:scommons_3:VERSION")// Java only
implementation 'org.mbari.commons:jcommons:VERSION'
// Scala 3
implementation 'org.mbari.commons:scommons_3:VERSION'<!-- Java only -->
<dependency>
<groupId>org.mbari.commons</groupId>
<artifactId>jcommons</artifactId>
<version>VERSION</version>
</dependency>
<!-- Scala 3 -->
<dependency>
<groupId>org.mbari.commons</groupId>
<artifactId>scommons_3</artifactId>
<version>VERSION</version>
</dependency>| Package | Contents |
|---|---|
ocean |
Seawater properties, light attenuation, wave equations, chlorophyll |
math |
Matrix operations (Matlib), statistics (Statlib), double/number utilities |
util |
Fluent Logging (wraps System.Logger), StringUtil, IOUtil, ReflectUtil, StreamUtil, AutoCloseableLock, ActiveAppBeacon/Pinger, Tuple2/Tuple3 |
awt |
Image and AWT utilities |
| Package | Contents |
|---|---|
ocean |
Scala versions of seawater, light, waves, chlorophyll, atmosphere |
math |
Statistics, KDE, FFT (JTransforms), trigonometry, probabilities, matrix ops, array extensions |
geometry |
Point2D/3D/4D, Polygon2D, Triangle3D, Envelope |
gis |
Grid types (ASC read/write), rugosity calculator, space-time zones |
canadiangrid |
Camera pixel-to-grid math |
util |
ISO8601, SeqUtil, Zip, email (via commons-email), reflection |
etc/jdk |
Scala-idiomatic wrappers: Loggers, Futures, Strings, Uris, Instants, Paths, Loops, Colors, Images |
etc/sdk |
Functional helpers: Eithers (traverse, Optional → Either), IO, Iterables |
etc/spire |
Complex number support via Typelevel Spire |
etc/xml |
XML converters |
etc/csv |
CSV transformers |
./gradlew build
./gradlew test
# Single subproject
./gradlew :jcommons:test
./gradlew :scommons:test
# Format Scala code
./gradlew :scommons:scalafmt# Publish to Sonatype staging (requires GPG key and OSSRH credentials in ~/.gradle/gradle.properties)
./gradlew uploadToSonatypeThen log in to https://s01.oss.sonatype.org/, select the staged repository under Staging Repositories, click Close, verify all checks passed, then click Release.