Edgent Java support

The Edgent runtime is supported on all Java 8 SE, Java 7 SE, and Android platforms with the exceptions noted below.

An Edgent release includes convenience binaries for the Edgent SDK. The binaries (jars and wars) are available in the Apache Nexus repository and Maven Central. If you are building the Edgent SDK, the artifacts will be installed into the local maven repository.

See samples/README.md for general information regarding Edgent Application development and deployment and tooling to support that.

SDK binary artifacts are published for each of the supported platform types and the artifact's groupId portion of its coordinate indicates which platform the artifact is for. The Edgent jar/war file name is the same for each of the platforms.

The coordinates have the following form:

  • groupId: org.apache.edgent[.platform]
  • artifactId: edgent-<component>-<subcomponent>

The [.platform] is as follows:

  • blank/omitted - Java 8 SE
  • .java7 - Java 7 SE
  • .android - Android

For example:

<!-- for Java8 -->
<dependency>
  <groupId>org.apache.edgent</groupId>
  <artifactId>edgent-providers-direct</artifactId>
  <version>1.2.0</version>
</dependency>

<!-- for Java7 -->
<dependency>
  <groupId>org.apache.edgent.java7</groupId>
  <artifactId>edgent-providers-direct</artifactId>
  <version>1.2.0</version>
</dependency>

Generally, an Edgent application needs to declare these depedencies:

  • the Edgent Provider used
  • the Edgent Analytics used
  • the Edgent Utils used
  • the Edgent Connectors used
  • an SLF4J implementation for category “runtime”

At application execution time, those same dependencies as well as their dependencies (e.g., other “internal” Edgent Core jars, external dependency jars such as for mqtt) must be included on the application's classpath.

The samples/template/pom.xml is structured to support all of this.

This page documents which Edgent SDK jars are expected to work in each environment.

A blank entry means no investigation has taken place to see if the jar and its features are supported in that environment.

Core

JarJava 8 SEJava 7 SEAndroidNotes
edgent-api-execution-<ver>.jaryesyesyes
edgent-api-function-<ver>.jaryesyesyes
edgent-api-graph-<ver>.jaryesyesyes
edgent-api-oplet-<ver>.jaryesyesyes
edgent-api-topology-<ver>.jaryesyesyes
edgent-api-window-<ver>.jaryesyesyes
edgent-providers-development-<ver>.jaryesyesnoUses JMX, For development only, not deployment
edgent-providers-direct-<ver>.jaryesyesyes
edgent-providers-iot-<ver>.jaryesyesyes
edgent-runtime-appservice-<ver>.jaryesyesyes
edgent-runtime-etiao-<ver>.jaryesyesyes
edgent-runtime-jmxcontrol-<ver>.jaryesyesnoUses JMX
edgent-runtime-jobregistry-<ver>.jaryesyesyes
edgent-runtime-jsoncontrol-<ver>.jaryesyesyes
edgent-spi-graph-<ver>.jaryesyesyes
edgent-spi-topology-<ver>.jaryesyesyes

Connectors

JarJava 8 SEJava 7 SEAndroidNotes
edgent-connectors-common-<ver>.jaryesyesyes
edgent-connectors-command-<ver>.jaryesyes
edgent-connectors-csv-<ver>.jaryesyes
edgent-connectors-file-<ver>.jaryesyes
edgent-connectors-http-<ver>.jaryesyesyes
edgent-connectors-iotf-<ver>.jaryesyesyes
edgent-connectors-iot-<ver>.jaryesyesyes
edgent-connectors-jdbc-<ver>.jaryesyes
edgent-connectors-kafka-<ver>.jaryesyes
edgent-connectors-mqtt-<ver>.jaryesyes
edgent-connectors-pubsub-<ver>.jaryesyesyes
edgent-connectors-serial-<ver>.jaryesyes
edgent-connectors-websocket-<ver>.jaryesyes
edgent-connectors-websocket-base-<ver>.jaryesyes
edgent-connectors-websocket-jetty-<ver>.jaryesyes
edgent-connectors-websocket-misc-<ver>.jaryesyes

Applications

JarJava 8 SEJava 7 SEAndroidNotes
edgent-apps-iot-<ver>.jaryesyesyes
edgent-apps-runtime-<ver>.jaryesyesyes

Analytics

JarJava 8 SEJava 7 SEAndroidNotes
edgent-analytics-math3-<ver>.jaryesyes
edgent-analytics-sensors-<ver>.jaryesyesyes

Utilities

JarJava 8 SEJava 7 SEAndroidNotes
edgent-utils-metrics-<ver>.jaryesyes
edgent-utils-streamscope-<ver>.jaryesyes

Development Console

JarJava 8 SEJava 7 SEAndroidNotes
edgent-console-server-<ver>.jaryesyesnoUses JMX, Servlet
edgent-console-servlets-<ver>.waryesyesnoUses JMX, Servlet

Android

JarJava 8 SEJava 7 SEAndroidNotes
edgent-android-topology-<ver>.jarnonoyes
edgent-android-hardware-<ver>.jarnonoyes

Java API Usage

Documented use of Java packages outside of the Java core packages- Java core has a number of definitions, but at least those outside of the Java 8 compact1 definition-

FeaturePackagesEdgent UsageNotes
JMXjava-lang-management, javax-managment*JMX not supported on Android
JMXutils/metricsOptional utility methods
JMXconsole/servlets, runtime/jmxcontrol
Servletjavax-servlet*console/servlets
Websocketjavax-websocketconnectors/websocket*
JDBCjava-sql, javax-sqlconnectors/jdbc