node
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>node</artifactId>
<version>1.0.0-rc2</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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether</artifactId>
<version>1.0.0-rc2</version>
</parent>
<artifactId>node</artifactId>
<name>Aether Node</name>
<properties>
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format>
<build.timestamp>${maven.build.timestamp}</build.timestamp>
</properties>
<dependencies>
<!-- Internal -->
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>core</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>dht</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>utility</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>statemachine</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>statemachine</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>http-server</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>cluster</artifactId>
</dependency>
<!-- SWIM failure detection for core-to-core health -->
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>swim</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>http-client</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>slice-api</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>serialization-codec-processor</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-stream</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>http-handler-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>http-routing-adapter</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>http-routing</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>jackson</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>resource-api</artifactId>
<version>${project.version}</version>
</dependency>
<!--
Resource-provider impl modules are bundled into the runtime image so deployed
slices can resolve their `@Http`/`@Notify` providers. Each ships a
META-INF/services entry for `ResourceFactory`; the shaded jar's
`ServicesResourceTransformer` merges them at package time and `SpiResourceProvider`
discovers them via ServiceLoader at provision time. Without these dependencies the
`@Notify` types (`NotificationSender`/`NotificationConfig`, which live in
resource-notification) are absent from the classpath and slices using them fail to
load opaquely, while `@Http` slices fail with `ResourceFactoryNotFound`. forge-core
inherits these transitively via `ember -> node` plus its own
`ServicesResourceTransformer`.
-->
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>resource-http</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>resource-notification</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>resource-db-async</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>resource-db-jdbc</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>environment-integration</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>environment-docker</artifactId>
<version>${project.version}</version>
</dependency>
<!--
Cloud-provider environment integrations are bundled into the runtime image so
any deployment can auto-heal regardless of which provider bootstrapped it. Each
module ships a META-INF/services entry for `EnvironmentIntegrationFactory`; the
shaded jar's `ServicesResourceTransformer` merges them at package time, and
`Main.resolveEnvironment` selects the right one at boot via `[cloud] provider =
"..."`. Without these dependencies the ServiceLoader sees only the Docker
factory at runtime, `lifecycleManager.isCloudManaged()` returns false on every
cloud cluster, and CTM silently falls into the "no ComputeProvider" branch —
CTM will never auto-provision a replacement for a failed core node, breaking
12-network suite-2 (`No NODE_JOINED for replacement`) on every cloud target.
-->
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>environment-hetzner</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>environment-aws</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>environment-gcp</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>environment-azure</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>slice</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>artifact-repo</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-storage</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-config</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-ttm</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>dashboard</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Split node modules -->
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-dht</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-invoke</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-management-api</artifactId>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-metrics</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-deployment</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-control</artifactId>
<version>${project.version}</version>
</dependency>
<!-- worker module removed: sources moved to node and aether-metrics -->
<!-- Observability -->
<dependency>
<groupId>org.pragmatica-lite</groupId>
<artifactId>micrometer</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<!-- Network -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec-http3</artifactId>
</dependency>
<!-- Testing -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-layout-template-json</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>build-info.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>build-info.properties</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs combine.children="append">
<arg>-Acodec.registry.suffix=Node</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.6.0</version>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-transform-maven-shade-plugin-extensions</artifactId>
<version>0.2.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.pragmatica.aether.Main</mainClass>
<manifestEntries>
<Implementation-Version>${project.version}</Implementation-Version>
<Implementation-Build-Date>${maven.build.timestamp}</Implementation-Build-Date>
</manifestEntries>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.logging.log4j.maven.plugins.shade.transformer.Log4j2PluginCacheFileTransformer"/>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
<filter>
<artifact>com.microsoft.onnxruntime:onnxruntime</artifact>
<excludes>
<exclude>ai/onnxruntime/native/osx-*/**/*.dSYM/**</exclude>
</excludes>
</filter>
</filters>
<createDependencyReducedPom>false</createDependencyReducedPom>
<finalName>aether-node</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>with-ttm</id>
<dependencies>
<dependency>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether-ttm-onnx</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</profile>
</profiles>
</project>