gemina-sdk
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>co.gemina</groupId>
<artifactId>gemina-sdk</artifactId>
<version>0.15.0</version>
</dependency><?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>co.gemina</groupId>
<artifactId>gemina-sdk</artifactId>
<version>0.15.0</version>
<packaging>jar</packaging>
<name>Gemina SDK</name>
<description>Official Java client for the Gemina API — invoice OCR and document intelligence: upload documents, get typed structured data back, then search, aggregate, and chat over everything you've processed.</description>
<url>https://gemina.co</url>
<licenses>
<license>
<name>MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>Gemina</name>
<email>support@gemina.co</email>
<organization>Gemina</organization>
<organizationUrl>https://gemina.co</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/tommyil/gemina-sdk.git</connection>
<developerConnection>scm:git:https://github.com/tommyil/gemina-sdk.git</developerConnection>
<url>https://github.com/tommyil/gemina-sdk</url>
</scm>
<properties>
<!-- Same floor as the generated client (.build/java/pom.xml: java.version 1.8). -->
<maven.compiler.release>8</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Versions mirrored from the generator's pom (.build/java/pom.xml). -->
<okhttp-version>4.12.0</okhttp-version>
<gson-version>2.10.1</gson-version>
<gson-fire-version>1.9.0</gson-fire-version>
<commons-lang3-version>3.18.0</commons-lang3-version>
<jackson-databind-nullable-version>0.2.10</jackson-databind-nullable-version>
<jakarta-annotation-version>1.3.5</jakarta-annotation-version>
<jakarta.ws.rs-api-version>2.1.6</jakarta.ws.rs-api-version>
<!-- Test-only. -->
<junit-version>5.10.3</junit-version>
<mockito-version>4.11.0</mockito-version>
</properties>
<dependencies>
<!-- Runtime dependencies of the generated okhttp-gson client, mirrored
(same artifacts + versions) from .build/java/pom.xml. -->
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp-version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>logging-interceptor</artifactId>
<version>${okhttp-version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson-version}</version>
</dependency>
<dependency>
<groupId>io.gsonfire</groupId>
<artifactId>gson-fire</artifactId>
<version>${gson-fire-version}</version>
</dependency>
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.client</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3-version}</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>${jakarta-annotation-version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>jackson-databind-nullable</artifactId>
<version>${jackson-databind-nullable-version}</version>
</dependency>
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<version>${jakarta.ws.rs-api-version}</version>
</dependency>
<!-- Test dependencies (offline unit tests). -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito-version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<fork>true</fork>
<compilerArgs>
<!-- Compiling the generated JSON.java may need a larger stack. -->
<arg>-J-Xss4m</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
<configuration>
<!-- JUnit 5 is auto-detected via junit-jupiter on the test classpath. -->
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<!-- Live smoke check (not part of the published jar — the entry point lives
in src/test/java/co/gemina/sdk/smoke/Smoke.java, test scope only).
Run:
GEMINA_BASE_URL=https://api.staging.gemina.co GEMINA_API_KEY=... \
mvn -Psmoke -DskipTests test-compile exec:java
It calls GET /v1/retrieval/status and prints indexedDocuments;
exits non-zero on any failure. -->
<profile>
<id>smoke</id>
<properties>
<!-- Override with -Dsmoke.mainClass=... to run another entry point. -->
<smoke.mainClass>co.gemina.sdk.smoke.Smoke</smoke.mainClass>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<mainClass>${smoke.mainClass}</mainClass>
<classpathScope>test</classpathScope>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Maven Central release: sources + javadoc jars, GPG signatures, and
upload via the Central Portal publishing plugin.
Run (CI does this on tag; see .github/workflows/release.yml):
MAVEN_GPG_PASSPHRASE=... mvn -P release deploy
with server id "central" (user token) in settings.xml.
The GPG key is the dedicated release signing key published to
keyserver.ubuntu.com (see docs/PUBLISHING-SETUP.md). -->
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals><goal>jar-no-fork</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
<configuration>
<!-- The generated client's javadoc is imperfect;
Central requires the jar, not perfect doclint. -->
<doclint>none</doclint>
<failOnError>false</failOnError>
<quiet>true</quiet>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals><goal>jar</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.8</version>
<configuration>
<!-- Headless signing (CI container has no pinentry UI);
passphrase comes from MAVEN_GPG_PASSPHRASE env. -->
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals><goal>sign</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.11.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>validated</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>