odpi / egeria

Egeria core
https://egeria-project.org
Apache License 2.0
786 stars 259 forks source link

Egeria Assembly : purpose, scope, challenges #3458

Closed planetf1 closed 4 years ago

planetf1 commented 4 years ago

Egeria Packaging

We have encountered a number of challenges with egeria assemblies, including a variety of issues documented in github: https://github.com/odpi/egeria/issues?q=is%3Aopen+is%3Aissue+label%3Aassemblies+

These include

This issue is open to point out some of the challenges, look at what we're creating in egeria, and start a discussion on what we do moving forward

Initial discussion: ODPI call Thu 6 Aug 1400 UTC+1

Artifact types

We have various types of artifacts generated for Egeria - not speaking in terms of implementation poms, but principle:

Web Applications

These are full fledged application containers. They will run as a process (often via JVM)

Both are spring-boot based, and currently these are created as executable jars, with embedded tomcat. This makes them easy to launch, to run within a container etc.

Example of server chassis:

org.odpi.egeria:server-chassis-spring:jar:2.2-SNAPSHOT
+- org.springframework.boot:spring-boot:jar:2.3.2.RELEASE:compile
+- org.springframework.boot:spring-boot-autoconfigure:jar:2.3.2.RELEASE:compile
+- org.springframework.boot:spring-boot-starter-actuator:jar:2.3.2.RELEASE:compile
|  +- org.springframework.boot:spring-boot-starter:jar:2.3.2.RELEASE:compile
|  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.3.2.RELEASE:compile
|  |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.3:compile
|  |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.13.3:compile
|  |  |  \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile
|  |  \- org.yaml:snakeyaml:jar:1.26:compile
|  +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.3.2.RELEASE:compile
|  |  +- org.springframework.boot:spring-boot-actuator:jar:2.3.2.RELEASE:compile
|  |  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.11.1:compile
|  \- io.micrometer:micrometer-core:jar:1.5.3:compile
|     +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
|     \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
+- io.micrometer:micrometer-registry-prometheus:jar:1.5.3:compile
|  \- io.prometheus:simpleclient_common:jar:0.8.1:compile
|     \- io.prometheus:simpleclient:jar:0.8.1:compile
+- org.springframework:spring-beans:jar:5.2.8.RELEASE:compile
+- org.springframework:spring-context:jar:5.2.8.RELEASE:compile
|  +- org.springframework:spring-aop:jar:5.2.8.RELEASE:compile
|  \- org.springframework:spring-expression:jar:5.2.8.RELEASE:compile
+- org.odpi.egeria:platform-services-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:platform-services-server:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:platform-services-api:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:ffdc-services:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:rest-client-connectors-api:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:rest-client-factory:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:spring-rest-client-connector:jar:2.2-SNAPSHOT:compile
|  |  |  \- org.codehaus.plexus:plexus-utils:jar:3.3.0:compile
|  |  \- org.apache.commons:commons-lang3:jar:3.11:compile
|  \- org.springframework:spring-web:jar:5.2.8.RELEASE:compile
+- org.odpi.egeria:admin-services-spring:jar:2.2-SNAPSHOT:runtime
|  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
|  \- org.odpi.egeria:open-connector-framework:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:admin-services-server:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:admin-services-registration:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:admin-services-client:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:multi-tenant:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:repository-handler:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:ocf-metadata-handlers:jar:2.2-SNAPSHOT:compile
|  |  |  +- org.odpi.egeria:csv-file-connector:jar:2.2-SNAPSHOT:compile
|  |  |  +- org.odpi.egeria:basic-file-connector:jar:2.2-SNAPSHOT:compile
|  |  |  +- org.odpi.egeria:avro-file-connector:jar:2.2-SNAPSHOT:compile
|  |  |  \- org.odpi.egeria:data-folder-connector:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:odf-metadata-handlers:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:metadata-security-server:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:metadata-security-apis:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:metadata-security-connectors:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:open-metadata-security-samples:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:repository-services-apis:jar:2.2-SNAPSHOT:compile
|  |  \- org.apache.commons:commons-collections4:jar:4.4:compile
|  +- org.odpi.egeria:connector-configuration-factory:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:open-metadata-archive-file-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:audit-log-file-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:audit-log-console-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:audit-log-slf4j-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:audit-log-event-topic-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:cohort-registry-file-store-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:inmemory-repository-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:graph-repository-connector:jar:2.2-SNAPSHOT:compile
|  |  |  +- org.janusgraph:janusgraph-cassandra:jar:0.5.2:runtime
|  |  |  |  +- io.dropwizard.metrics:metrics-jvm:jar:3.2.2:runtime
|  |  |  |  +- org.apache.cassandra:cassandra-all:jar:2.2.13:runtime
|  |  |  |  |  +- commons-cli:commons-cli:jar:1.1:runtime
|  |  |  |  |  +- org.apache.commons:commons-math3:jar:3.2:runtime
|  |  |  |  |  +- com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.4:runtime
|  |  |  |  |  +- org.antlr:antlr:jar:3.5.2:runtime
|  |  |  |  |  |  \- org.antlr:ST4:jar:4.0.8:runtime
|  |  |  |  |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:runtime
|  |  |  |  |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:runtime
|  |  |  |  |  +- com.googlecode.json-simple:json-simple:jar:1.1:runtime
|  |  |  |  |  +- com.addthis.metrics:reporter-config3:jar:3.0.0:runtime
|  |  |  |  |  |  \- com.addthis.metrics:reporter-config-base:jar:3.0.0:runtime
|  |  |  |  |  +- com.thinkaurelius.thrift:thrift-server:jar:0.3.7:runtime
|  |  |  |  |  |  \- com.lmax:disruptor:jar:3.0.1:runtime
|  |  |  |  |  +- com.clearspring.analytics:stream:jar:2.5.2:runtime
|  |  |  |  |  |  \- it.unimi.dsi:fastutil:jar:6.5.7:runtime
|  |  |  |  |  +- net.sf.supercsv:super-csv:jar:2.1.0:runtime
|  |  |  |  |  +- org.apache.thrift:libthrift:jar:0.9.2:runtime
|  |  |  |  |  +- org.apache.cassandra:cassandra-thrift:jar:2.2.13:runtime
|  |  |  |  |  +- com.github.jbellis:jamm:jar:0.3.0:runtime
|  |  |  |  |  +- com.github.tjake:crc32ex:jar:0.1.1:runtime
|  |  |  |  |  +- io.netty:netty-all:jar:4.1.51.Final:compile
|  |  |  |  |  +- org.fusesource:sigar:jar:1.6.4:runtime
|  |  |  |  |  +- org.eclipse.jdt.core.compiler:ecj:jar:4.4.2:runtime
|  |  |  |  |  \- org.caffinitas.ohc:ohc-core:jar:0.3.4:runtime
|  |  |  |  +- commons-pool:commons-pool:jar:1.6:runtime
|  |  |  |  +- com.netflix.astyanax:astyanax-core:jar:3.10.2:runtime
|  |  |  |  |  +- com.github.stephenc.high-scale-lib:high-scale-lib:jar:1.1.4:runtime
|  |  |  |  |  +- com.eaio.uuid:uuid:jar:3.2:runtime
|  |  |  |  |  \- commons-lang:commons-lang:jar:2.6:compile
|  |  |  |  +- com.netflix.astyanax:astyanax-thrift:jar:3.10.2:runtime
|  |  |  |  +- com.netflix.astyanax:astyanax-cassandra:jar:3.10.2:runtime
|  |  |  |  |  +- com.netflix.astyanax:astyanax-cassandra-all-shaded:jar:3.10.2:runtime
|  |  |  |  |  +- org.apache.servicemix.bundles:org.apache.servicemix.bundles.commons-csv:jar:1.0-r706900_3:runtime
|  |  |  |  |  \- org.codehaus.jettison:jettison:jar:1.3.8:runtime
|  |  |  |  |     \- stax:stax-api:jar:1.0.1:runtime
|  |  |  |  +- com.netflix.astyanax:astyanax-recipes:jar:3.10.2:runtime
|  |  |  |  \- net.jpountz.lz4:lz4:jar:1.3.0:runtime
|  |  |  +- org.janusgraph:janusgraph-core:jar:0.5.2:compile
|  |  |  |  +- org.apache.tinkerpop:tinkergraph-gremlin:jar:3.4.6:compile
|  |  |  |  +- org.glassfish:javax.json:jar:1.0:compile
|  |  |  |  +- io.dropwizard.metrics:metrics-core:jar:3.2.2:compile
|  |  |  |  +- io.dropwizard.metrics:metrics-ganglia:jar:3.2.2:compile
|  |  |  |  |  \- info.ganglia.gmetric4j:gmetric4j:jar:1.0.7:compile
|  |  |  |  +- io.dropwizard.metrics:metrics-graphite:jar:3.2.2:compile
|  |  |  |  +- net.oneandone.reflections8:reflections8:jar:0.11.7:compile
|  |  |  |  +- commons-collections:commons-collections:jar:3.2.2:compile
|  |  |  |  +- commons-configuration:commons-configuration:jar:1.10:compile
|  |  |  |  |  \- commons-logging:commons-logging:jar:1.2:compile
|  |  |  |  +- commons-codec:commons-codec:jar:1.14:compile
|  |  |  |  +- com.carrotsearch:hppc:jar:0.7.1:compile
|  |  |  |  \- com.boundary:high-scale-lib:jar:1.0.6:compile
|  |  |  +- org.janusgraph:janusgraph-berkeleyje:jar:0.5.2:runtime
|  |  |  |  \- com.sleepycat:je:jar:18.3.12:runtime
|  |  |  +- org.janusgraph:janusgraph-lucene:jar:0.5.2:runtime
|  |  |  |  +- org.apache.lucene:lucene-queryparser:jar:7.7.2:runtime
|  |  |  |  |  +- org.apache.lucene:lucene-queries:jar:7.7.2:runtime
|  |  |  |  |  \- org.apache.lucene:lucene-sandbox:jar:7.7.2:runtime
|  |  |  |  +- org.apache.lucene:lucene-spatial:jar:7.7.2:runtime
|  |  |  |  \- org.apache.lucene:lucene-spatial-extras:jar:7.7.2:runtime
|  |  |  |     +- org.apache.lucene:lucene-spatial3d:jar:7.7.2:runtime
|  |  |  |     \- io.sgr:s2-geometry-library-java:jar:1.0.0:runtime
|  |  |  +- org.janusgraph:janusgraph-es:jar:0.5.2:runtime
|  |  |  |  \- org.elasticsearch.client:elasticsearch-rest-client:jar:7.6.2:runtime
|  |  |  |     +- org.apache.httpcomponents:httpclient:jar:4.5.10:runtime
|  |  |  |     +- org.apache.httpcomponents:httpcore:jar:4.4.12:runtime
|  |  |  |     +- org.apache.httpcomponents:httpasyncclient:jar:4.1.4:runtime
|  |  |  |     \- org.apache.httpcomponents:httpcore-nio:jar:4.4.12:runtime
|  |  |  +- org.janusgraph:janusgraph-cql:jar:0.5.2:runtime
|  |  |  |  +- com.datastax.cassandra:cassandra-driver-core:jar:3.9.0:runtime
|  |  |  |  |  +- io.netty:netty-handler:jar:4.1.51.Final:runtime
|  |  |  |  |  |  +- io.netty:netty-common:jar:4.1.51.Final:runtime
|  |  |  |  |  |  +- io.netty:netty-resolver:jar:4.1.51.Final:runtime
|  |  |  |  |  |  +- io.netty:netty-buffer:jar:4.1.51.Final:runtime
|  |  |  |  |  |  +- io.netty:netty-transport:jar:4.1.51.Final:runtime
|  |  |  |  |  |  \- io.netty:netty-codec:jar:4.1.51.Final:runtime
|  |  |  |  |  +- com.github.jnr:jnr-ffi:jar:2.1.7:runtime
|  |  |  |  |  |  +- com.github.jnr:jffi:jar:1.2.16:runtime
|  |  |  |  |  |  +- com.github.jnr:jffi:jar:native:1.2.16:runtime
|  |  |  |  |  |  +- org.ow2.asm:asm:jar:5.0.3:runtime
|  |  |  |  |  |  +- org.ow2.asm:asm-commons:jar:5.0.3:runtime
|  |  |  |  |  |  +- org.ow2.asm:asm-analysis:jar:5.0.3:runtime
|  |  |  |  |  |  +- org.ow2.asm:asm-tree:jar:5.0.3:runtime
|  |  |  |  |  |  +- org.ow2.asm:asm-util:jar:5.0.3:runtime
|  |  |  |  |  |  \- com.github.jnr:jnr-x86asm:jar:1.0.2:runtime
|  |  |  |  |  \- com.github.jnr:jnr-posix:jar:3.0.44:runtime
|  |  |  |  |     \- com.github.jnr:jnr-constants:jar:0.9.9:runtime
|  |  |  |  \- io.vavr:vavr:jar:0.9.0:runtime
|  |  |  |     \- io.vavr:vavr-match:jar:0.9.0:runtime
|  |  |  +- org.janusgraph:janusgraph-driver:jar:0.5.2:compile
|  |  |  |  +- org.apache.tinkerpop:gremlin-driver:jar:3.4.6:compile
|  |  |  |  |  +- org.codehaus.groovy:groovy:jar:indy:3.0.5:compile
|  |  |  |  |  \- org.codehaus.groovy:groovy-json:jar:indy:2.5.7:compile
|  |  |  |  +- org.apache.tinkerpop:gremlin-groovy:jar:3.4.6:compile
|  |  |  |  |  +- org.apache.ivy:ivy:jar:2.3.0:compile
|  |  |  |  |  +- org.codehaus.groovy:groovy-groovysh:jar:indy:3.0.5:compile
|  |  |  |  |  |  +- org.codehaus.groovy:groovy-templates:jar:3.0.5:runtime
|  |  |  |  |  |  +- org.codehaus.groovy:groovy-console:jar:3.0.5:runtime
|  |  |  |  |  |  |  \- org.codehaus.groovy:groovy-swing:jar:3.0.5:runtime
|  |  |  |  |  |  +- org.codehaus.groovy:groovy-xml:jar:3.0.5:runtime
|  |  |  |  |  |  \- jline:jline:jar:2.14.6:runtime
|  |  |  |  |  +- org.codehaus.groovy:groovy-jsr223:jar:indy:3.0.5:compile
|  |  |  |  |  +- org.mindrot:jbcrypt:jar:0.4:compile
|  |  |  |  |  \- com.github.ben-manes.caffeine:caffeine:jar:2.3.1:compile
|  |  |  |  +- org.noggit:noggit:jar:0.6:compile
|  |  |  |  +- org.locationtech.spatial4j:spatial4j:jar:0.7:compile
|  |  |  |  +- org.locationtech.jts:jts-core:jar:1.16.1:compile
|  |  |  |  \- org.apache.commons:commons-text:jar:1.0:compile
|  |  |  +- org.apache.tinkerpop:gremlin-core:jar:3.4.7:compile
|  |  |  |  +- org.apache.tinkerpop:gremlin-shaded:jar:3.4.7:compile
|  |  |  |  +- org.javatuples:javatuples:jar:1.2:compile
|  |  |  |  +- com.jcabi:jcabi-manifests:jar:1.1:compile
|  |  |  |  |  \- com.jcabi:jcabi-log:jar:0.14:compile
|  |  |  |  +- com.squareup:javapoet:jar:1.8.0:compile
|  |  |  |  +- net.objecthunter:exp4j:jar:0.4.8:compile
|  |  |  |  \- org.slf4j:jcl-over-slf4j:jar:1.7.30:compile
|  |  |  +- joda-time:joda-time:jar:2.10.6:runtime
|  |  |  +- org.antlr:antlr-runtime:jar:3.5.2:runtime
|  |  |  \- org.xerial.snappy:snappy-java:jar:1.1.7.6:runtime
|  |  +- org.odpi.egeria:readonly-repository-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:omrs-rest-repository-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:kafka-open-metadata-topic-connector:jar:2.2-SNAPSHOT:compile
|  |  |  \- org.apache.kafka:kafka-clients:jar:2.5.0:compile
|  |  |     +- com.github.luben:zstd-jni:jar:1.4.4-7:compile
|  |  |     \- org.lz4:lz4-java:jar:1.7.1:compile
|  |  +- org.odpi.egeria:inmemory-open-metadata-topic-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:configuration-encrypted-file-store-connector:jar:2.2-SNAPSHOT:compile
|  |  |  \- com.google.crypto.tink:tink:jar:1.4.0:compile
|  |  |     +- com.google.protobuf:protobuf-java:jar:3.11.1:compile
|  |  |     \- org.json:json:jar:20180813:compile
|  |  +- org.odpi.egeria:ranger-connector:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:virtualization-services-api:jar:2.2-SNAPSHOT:compile
|  |     \- org.odpi.egeria:data-platform-api:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:repository-services-implementation:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:open-metadata-types:jar:2.2-SNAPSHOT:compile
|  |     \- org.odpi.egeria:repository-services-archive-utilities:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:ocf-metadata-server:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:open-metadata-conformance-suite-server:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:discovery-engine-services-server:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:odf-metadata-client:jar:2.2-SNAPSHOT:compile
|  |  |  \- org.odpi.egeria:ocf-metadata-client:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:discovery-engine-api:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:discovery-engine-client:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:discovery-service-connectors:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:open-lineage-services-server:jar:2.2-SNAPSHOT:compile
|  |  +- org.quartz-scheduler:quartz:jar:2.3.2:compile
|  |  |  +- com.mchange:c3p0:jar:0.9.5.4:compile
|  |  |  +- com.mchange:mchange-commons-java:jar:0.2.15:compile
|  |  |  \- com.zaxxer:HikariCP-java7:jar:2.4.13:compile
|  |  +- org.odpi.egeria:asset-lineage-api:jar:2.2-SNAPSHOT:compile
|  |  \- org.apache.lucene:lucene-analyzers-common:jar:8.6.0:compile
|  |     \- org.apache.lucene:lucene-core:jar:8.6.0:compile
|  +- org.odpi.egeria:security-sync-services-server:jar:2.2-SNAPSHOT:compile
|  |  \- com.mikesamuel:json-sanitizer:jar:1.2.1:compile
|  +- org.odpi.egeria:security-officer-services-server:jar:2.2-SNAPSHOT:compile
|  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.11.1:compile
|  |  \- org.odpi.egeria:security-officer-tag-connector:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:virtualization-services-server:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:view-generator-connectors:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:data-engine-proxy-services-server:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:data-engine-proxy-connector:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:data-engine-client:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:data-platform-services-server:jar:2.2-SNAPSHOT:compile
|  |  +- org.odpi.egeria:data-platform-services-connector:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:data-platform-client:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:stewardship-engine-services-server:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:admin-services-api:jar:2.2-SNAPSHOT:compile
|  +- com.fasterxml.jackson.core:jackson-databind:jar:2.11.1:compile
|  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.1:compile
|  \- org.odpi.egeria:audit-log-framework:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:ocf-metadata-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:ocf-metadata-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:repository-services-spring:jar:2.2-SNAPSHOT:runtime
+- org.odpi.egeria:open-metadata-conformance-suite-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:open-metadata-conformance-suite-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:asset-consumer-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:asset-consumer-api:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:asset-consumer-server:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:asset-owner-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:asset-owner-server:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:asset-owner-api:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:odf-metadata-api:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:gaf-metadata-api:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:governance-action-framework:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:discovery-engine-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:discovery-engine-server:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:discovery-engine-connectors:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:open-discovery-framework:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:stewardship-action-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:stewardship-action-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:stewardship-action-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:community-profile-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:community-profile-server:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:community-profile-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:design-model-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:design-model-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:design-model-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:data-privacy-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:data-privacy-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:data-privacy-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:it-infrastructure-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:it-infrastructure-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:it-infrastructure-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:project-management-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:project-management-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:project-management-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:dev-ops-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:dev-ops-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:dev-ops-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:software-developer-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:software-developer-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:software-developer-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:digital-architecture-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:digital-architecture-server:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:digital-architecture-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:digital-service-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:digital-service-server:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:digital-service-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:data-science-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:data-science-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:data-science-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:discovery-engine-services-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:discovery-engine-services-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:governance-engine-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:governance-engine-server:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:governance-engine-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:governance-program-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:governance-program-server:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:gaf-metadata-handlers:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:governance-program-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:asset-catalog-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:asset-catalog-api:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:asset-catalog-server:jar:2.2-SNAPSHOT:compile
|  \- javax.validation:validation-api:jar:2.0.1.Final:compile
+- org.odpi.egeria:analytics-modeling-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:analytics-modeling-server:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:analytics-modeling-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:information-view-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:information-view-server:jar:2.2-SNAPSHOT:compile
|  |  \- commons-io:commons-io:jar:2.7:compile
|  \- org.odpi.egeria:information-view-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:subject-area-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:subject-area-server:jar:2.2-SNAPSHOT:compile
|  |  \- org.reflections:reflections:jar:0.9.12:compile
|  |     \- org.javassist:javassist:jar:3.27.0-GA:compile
|  \- org.odpi.egeria:subject-area-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:data-engine-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:data-engine-server:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:data-engine-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:glossary-view-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:glossary-view-server:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:glossary-view-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:asset-lineage-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:asset-lineage-server:jar:2.2-SNAPSHOT:compile
|     \- com.google.guava:guava:jar:23.0:compile
|        +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
|        +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
|        \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
+- org.odpi.egeria:open-lineage-services-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:open-lineage-services-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:data-manager-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:data-manager-server:jar:2.2-SNAPSHOT:compile
|  |  \- org.odpi.egeria:data-manager-topic-connectors:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:data-manager-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:security-officer-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:security-officer-server:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:security-officer-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:glossary-author-view-spring:jar:2.2-SNAPSHOT:runtime
|  \- org.odpi.egeria:glossary-author-view-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:subject-area-client:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:rex-view-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:rex-view-api:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:rex-view-server:jar:2.2-SNAPSHOT:compile
|     \- org.odpi.egeria:repository-services-client:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:tex-view-spring:jar:2.2-SNAPSHOT:runtime
|  +- org.odpi.egeria:tex-view-api:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:tex-view-server:jar:2.2-SNAPSHOT:compile
+- org.springframework.boot:spring-boot-starter-web:jar:2.3.2.RELEASE:compile
|  +- org.springframework.boot:spring-boot-starter-json:jar:2.3.2.RELEASE:compile
|  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.11.1:compile
|  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.11.1:compile
|  +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.3.2.RELEASE:compile
|  |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.37:compile
|  |  +- org.glassfish:jakarta.el:jar:3.0.3:compile
|  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.37:compile
|  \- org.springframework:spring-webmvc:jar:5.2.8.RELEASE:compile
+- ch.qos.logback:logback-classic:jar:1.2.3:compile
+- ch.qos.logback:logback-core:jar:1.2.3:compile
+- org.odpi.egeria:http-helper:jar:2.2-SNAPSHOT:compile
+- org.slf4j:slf4j-api:jar:1.7.30:compile
+- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
+- org.springframework:spring-core:jar:5.2.8.RELEASE:compile
|  \- org.springframework:spring-jcl:jar:5.2.8.RELEASE:compile
+- org.springdoc:springdoc-openapi-ui:jar:1.4.3:compile
|  +- org.springdoc:springdoc-openapi-webmvc-core:jar:1.4.3:compile
|  |  \- org.springdoc:springdoc-openapi-common:jar:1.4.3:compile
|  |     +- io.swagger.core.v3:swagger-models:jar:2.1.3:compile
|  |     +- io.swagger.core.v3:swagger-integration:jar:2.1.3:compile
|  |     |  \- io.swagger.core.v3:swagger-core:jar:2.1.3:compile
|  |     |     +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
|  |     |     |  \- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
|  |     |     +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.11.1:compile
|  |     |     \- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
|  |     \- io.github.classgraph:classgraph:jar:4.8.87:compile
|  +- org.webjars:swagger-ui:jar:3.28.0:compile
|  \- org.webjars:webjars-locator-core:jar:0.45:compile
+- io.swagger.core.v3:swagger-annotations:jar:2.1.4:compile
\- org.slf4j:slf4j-simple:jar:1.7.30:test

These would be typically 'run' as packaged, or there could also be a desire to run in an existing web container. In the former case they need to be fully self-contained. In the latter all except the web server runtime is needed. In either case the egeria code needs all it's dependencies present.

Most developers are launching this directly from the output of the chassis build, a few using assemblies, those just learning about egeria generally via docker containers.

Client libraries

Third party applications (consumers) may use our Java Client libraries. For example we have an 'asset owner' OMAS which allows the caller to create and update assets. Part of this OMAS is the client code which will mask the complexity of building the required REST body to send to the server chassis & marshall the response.

org.odpi.egeria:asset-owner-client:jar:2.2-SNAPSHOT
+- org.odpi.egeria:asset-owner-api:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:repository-services-apis:jar:2.2-SNAPSHOT:compile
|  |  \- org.apache.commons:commons-collections4:jar:4.4:compile
|  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.1:compile
|  \- com.fasterxml.jackson.core:jackson-databind:jar:2.11.1:compile
|     \- com.fasterxml.jackson.core:jackson-core:jar:2.11.1:compile
+- org.odpi.egeria:ffdc-services:jar:2.2-SNAPSHOT:compile
|  +- org.slf4j:slf4j-api:jar:1.7.30:compile
|  +- org.odpi.egeria:rest-client-connectors-api:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:rest-client-factory:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:spring-rest-client-connector:jar:2.2-SNAPSHOT:compile
|  |  +- org.springframework:spring-web:jar:5.2.8.RELEASE:compile
|  |  |  \- org.springframework:spring-beans:jar:5.2.8.RELEASE:compile
|  |  \- org.codehaus.plexus:plexus-utils:jar:3.3.0:compile
|  +- org.apache.commons:commons-lang3:jar:3.11:compile
|  \- org.springframework:spring-core:jar:5.2.8.RELEASE:compile
|     \- org.springframework:spring-jcl:jar:5.2.8.RELEASE:compile
+- org.odpi.egeria:audit-log-framework:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:open-connector-framework:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:odf-metadata-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:ocf-metadata-api:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:open-discovery-framework:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:ocf-metadata-client:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:odf-metadata-client:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:gaf-metadata-api:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:governance-action-framework:jar:2.2-SNAPSHOT:compile
\- org.slf4j:slf4j-simple:jar:1.7.30:test

These applications may wish to

Users of these libraries need to know what dependencies they have, and ideally resolving these should be easy.

Maven and gradle will automate this management for the user - which is very much the intent for these tools in the java space

If they chose to use jars directly they may find it useful to have dependencies documented or provided easily. If we wish to include clients within a distribution we need to consider how they are consumed. Just supplying the fine grained client jar is not sufficient, as there will be many dependencies.

Either we need to build an uber-jar/shaded jar with dependencies, or we need to include the necessary dependencies by an analysis of their dependencies (usually managed through maven or gradle plugins)

Questions

Connectors

We have a few different kind of connectors:

these get used in a variety of ways

using connectors in our servers

These extend the capability of the egeria server platform.

For example connectors for the audit log framework to log to disk.

Many of the dependencies needed by the connector may already be present in the server chassis, but not all - in particular technology specific libraries. Resolution of what is missing needs to be automated, or at least simple

One option is to define the 'bom' (bill of materials) for the chassis, and assume this is always 'provided'. Then when packaging either the connector, or building the assembly, we 'subtract' these from the list of dependencies we package.

using connectors in our clients

These are used by clients.

Examples include JDBC, csv, avro files

These are somewhat similar to our client libraries - so can we provide them in the same way? Potentially every dependency is needed

A few examples

org.odpi.egeria:kafka-open-metadata-topic-connector:jar:2.2-SNAPSHOT
+- org.odpi.egeria:audit-log-framework:jar:2.2-SNAPSHOT:compile
|  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.1:compile
+- org.slf4j:slf4j-api:jar:1.7.30:compile
+- org.apache.kafka:kafka-clients:jar:2.5.0:compile
|  +- com.github.luben:zstd-jni:jar:1.4.4-7:compile
|  +- org.lz4:lz4-java:jar:1.7.1:compile
|  \- org.xerial.snappy:snappy-java:jar:1.1.7.6:runtime
+- org.testng:testng:jar:7.1.0:test
|  +- com.beust:jcommander:jar:1.72:test
|  +- com.google.inject:guice:jar:no_aop:4.1.0:test
|  |  +- javax.inject:javax.inject:jar:1:test
|  |  +- aopalliance:aopalliance:jar:1.0:test
|  |  \- com.google.guava:guava:jar:23.0:compile
|  |     +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
|  |     +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
|  |     +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
|  |     \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
|  \- org.yaml:snakeyaml:jar:1.26:test
+- org.odpi.egeria:open-connector-framework:jar:2.2-SNAPSHOT:compile
|  \- com.fasterxml.jackson.core:jackson-databind:jar:2.11.1:compile
|     \- com.fasterxml.jackson.core:jackson-core:jar:2.11.1:compile
+- org.odpi.egeria:repository-services-apis:jar:2.2-SNAPSHOT:compile
|  \- org.apache.commons:commons-collections4:jar:4.4:compile
\- org.slf4j:slf4j-simple:jar:1.7.30:test
org.odpi.egeria:graph-repository-connector:jar:2.2-SNAPSHOT
+- org.janusgraph:janusgraph-cassandra:jar:0.5.2:runtime
|  +- io.dropwizard.metrics:metrics-jvm:jar:3.2.2:runtime
|  +- org.apache.cassandra:cassandra-all:jar:2.2.13:runtime
|  |  +- commons-cli:commons-cli:jar:1.1:runtime
|  |  +- org.apache.commons:commons-math3:jar:3.2:runtime
|  |  +- com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.4:runtime
|  |  +- org.antlr:antlr:jar:3.5.2:runtime
|  |  |  \- org.antlr:ST4:jar:4.0.8:runtime
|  |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:runtime
|  |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:runtime
|  |  +- com.googlecode.json-simple:json-simple:jar:1.1:runtime
|  |  +- com.addthis.metrics:reporter-config3:jar:3.0.0:runtime
|  |  |  \- com.addthis.metrics:reporter-config-base:jar:3.0.0:runtime
|  |  +- com.thinkaurelius.thrift:thrift-server:jar:0.3.7:runtime
|  |  |  \- com.lmax:disruptor:jar:3.0.1:runtime
|  |  +- com.clearspring.analytics:stream:jar:2.5.2:runtime
|  |  |  \- it.unimi.dsi:fastutil:jar:6.5.7:runtime
|  |  +- net.sf.supercsv:super-csv:jar:2.1.0:runtime
|  |  +- org.apache.thrift:libthrift:jar:0.9.2:runtime
|  |  +- org.apache.cassandra:cassandra-thrift:jar:2.2.13:runtime
|  |  +- com.github.jbellis:jamm:jar:0.3.0:runtime
|  |  +- com.github.tjake:crc32ex:jar:0.1.1:runtime
|  |  +- io.netty:netty-all:jar:4.1.51.Final:compile
|  |  +- org.fusesource:sigar:jar:1.6.4:runtime
|  |  +- org.eclipse.jdt.core.compiler:ecj:jar:4.4.2:runtime
|  |  \- org.caffinitas.ohc:ohc-core:jar:0.3.4:runtime
|  +- commons-pool:commons-pool:jar:1.6:runtime
|  +- com.netflix.astyanax:astyanax-core:jar:3.10.2:runtime
|  |  +- com.github.stephenc.high-scale-lib:high-scale-lib:jar:1.1.4:runtime
|  |  +- com.eaio.uuid:uuid:jar:3.2:runtime
|  |  \- commons-lang:commons-lang:jar:2.6:compile
|  +- com.netflix.astyanax:astyanax-thrift:jar:3.10.2:runtime
|  +- com.netflix.astyanax:astyanax-cassandra:jar:3.10.2:runtime
|  |  +- com.netflix.astyanax:astyanax-cassandra-all-shaded:jar:3.10.2:runtime
|  |  +- org.apache.servicemix.bundles:org.apache.servicemix.bundles.commons-csv:jar:1.0-r706900_3:runtime
|  |  \- org.codehaus.jettison:jettison:jar:1.3.8:runtime
|  |     \- stax:stax-api:jar:1.0.1:runtime
|  +- com.netflix.astyanax:astyanax-recipes:jar:3.10.2:runtime
|  +- javax.validation:validation-api:jar:2.0.1.Final:compile
|  \- net.jpountz.lz4:lz4:jar:1.3.0:runtime
+- org.janusgraph:janusgraph-core:jar:0.5.2:compile
|  +- org.apache.tinkerpop:tinkergraph-gremlin:jar:3.4.6:compile
|  +- org.glassfish:javax.json:jar:1.0:compile
|  +- io.dropwizard.metrics:metrics-core:jar:3.2.2:compile
|  +- io.dropwizard.metrics:metrics-ganglia:jar:3.2.2:compile
|  |  \- info.ganglia.gmetric4j:gmetric4j:jar:1.0.7:compile
|  +- io.dropwizard.metrics:metrics-graphite:jar:3.2.2:compile
|  +- net.oneandone.reflections8:reflections8:jar:0.11.7:compile
|  |  \- org.javassist:javassist:jar:3.27.0-GA:compile
|  +- commons-collections:commons-collections:jar:3.2.2:compile
|  +- commons-configuration:commons-configuration:jar:1.10:compile
|  |  \- commons-logging:commons-logging:jar:1.2:compile
|  +- commons-io:commons-io:jar:2.7:compile
|  +- commons-codec:commons-codec:jar:1.14:compile
|  +- com.carrotsearch:hppc:jar:0.7.1:compile
|  +- com.boundary:high-scale-lib:jar:1.0.6:compile
|  \- com.google.code.findbugs:jsr305:jar:3.0.2:compile
+- org.janusgraph:janusgraph-berkeleyje:jar:0.5.2:runtime
|  \- com.sleepycat:je:jar:18.3.12:runtime
+- org.janusgraph:janusgraph-lucene:jar:0.5.2:runtime
|  +- org.apache.lucene:lucene-core:jar:7.7.2:compile
|  +- org.apache.lucene:lucene-analyzers-common:jar:8.6.0:compile
|  +- org.apache.lucene:lucene-queryparser:jar:7.7.2:runtime
|  |  +- org.apache.lucene:lucene-queries:jar:7.7.2:runtime
|  |  \- org.apache.lucene:lucene-sandbox:jar:7.7.2:runtime
|  +- org.apache.lucene:lucene-spatial:jar:7.7.2:runtime
|  \- org.apache.lucene:lucene-spatial-extras:jar:7.7.2:runtime
|     +- org.apache.lucene:lucene-spatial3d:jar:7.7.2:runtime
|     \- io.sgr:s2-geometry-library-java:jar:1.0.0:runtime
+- org.janusgraph:janusgraph-es:jar:0.5.2:runtime
|  \- org.elasticsearch.client:elasticsearch-rest-client:jar:7.6.2:runtime
|     +- org.apache.httpcomponents:httpclient:jar:4.5.10:runtime
|     +- org.apache.httpcomponents:httpcore:jar:4.4.12:runtime
|     +- org.apache.httpcomponents:httpasyncclient:jar:4.1.4:runtime
|     \- org.apache.httpcomponents:httpcore-nio:jar:4.4.12:runtime
+- org.janusgraph:janusgraph-cql:jar:0.5.2:runtime
|  +- com.datastax.cassandra:cassandra-driver-core:jar:3.9.0:runtime
|  |  +- io.netty:netty-handler:jar:4.1.51.Final:runtime
|  |  |  +- io.netty:netty-common:jar:4.1.51.Final:runtime
|  |  |  +- io.netty:netty-resolver:jar:4.1.51.Final:runtime
|  |  |  +- io.netty:netty-buffer:jar:4.1.51.Final:runtime
|  |  |  +- io.netty:netty-transport:jar:4.1.51.Final:runtime
|  |  |  \- io.netty:netty-codec:jar:4.1.51.Final:runtime
|  |  +- com.github.jnr:jnr-ffi:jar:2.1.7:runtime
|  |  |  +- com.github.jnr:jffi:jar:1.2.16:runtime
|  |  |  +- com.github.jnr:jffi:jar:native:1.2.16:runtime
|  |  |  +- org.ow2.asm:asm:jar:5.0.3:runtime
|  |  |  +- org.ow2.asm:asm-commons:jar:5.0.3:runtime
|  |  |  +- org.ow2.asm:asm-analysis:jar:5.0.3:runtime
|  |  |  +- org.ow2.asm:asm-tree:jar:5.0.3:runtime
|  |  |  +- org.ow2.asm:asm-util:jar:5.0.3:runtime
|  |  |  \- com.github.jnr:jnr-x86asm:jar:1.0.2:runtime
|  |  \- com.github.jnr:jnr-posix:jar:3.0.44:runtime
|  |     \- com.github.jnr:jnr-constants:jar:0.9.9:runtime
|  \- io.vavr:vavr:jar:0.9.0:runtime
|     \- io.vavr:vavr-match:jar:0.9.0:runtime
+- org.janusgraph:janusgraph-driver:jar:0.5.2:compile
|  +- org.apache.tinkerpop:gremlin-driver:jar:3.4.6:compile
|  |  +- org.codehaus.groovy:groovy:jar:indy:3.0.5:compile
|  |  \- org.codehaus.groovy:groovy-json:jar:indy:2.5.7:compile
|  +- org.apache.tinkerpop:gremlin-groovy:jar:3.4.6:compile
|  |  +- org.apache.ivy:ivy:jar:2.3.0:compile
|  |  +- org.codehaus.groovy:groovy-groovysh:jar:indy:3.0.5:compile
|  |  |  +- org.codehaus.groovy:groovy-templates:jar:3.0.5:runtime
|  |  |  +- org.codehaus.groovy:groovy-console:jar:3.0.5:runtime
|  |  |  |  \- org.codehaus.groovy:groovy-swing:jar:3.0.5:runtime
|  |  |  +- org.codehaus.groovy:groovy-xml:jar:3.0.5:runtime
|  |  |  \- jline:jline:jar:2.14.6:runtime
|  |  +- org.codehaus.groovy:groovy-jsr223:jar:indy:3.0.5:compile
|  |  +- org.mindrot:jbcrypt:jar:0.4:compile
|  |  \- com.github.ben-manes.caffeine:caffeine:jar:2.3.1:compile
|  +- com.google.guava:guava:jar:23.0:compile
|  |  +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
|  |  +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
|  |  \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
|  +- org.noggit:noggit:jar:0.6:compile
|  +- org.locationtech.spatial4j:spatial4j:jar:0.7:compile
|  +- org.locationtech.jts:jts-core:jar:1.16.1:compile
|  \- org.apache.commons:commons-text:jar:1.0:compile
+- org.slf4j:slf4j-api:jar:1.7.30:compile
+- com.fasterxml.jackson.core:jackson-databind:jar:2.11.1:compile
|  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.1:compile
+- com.fasterxml.jackson.core:jackson-core:jar:2.11.1:compile
+- org.odpi.egeria:audit-log-framework:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:open-connector-framework:jar:2.2-SNAPSHOT:compile
+- org.apache.tinkerpop:gremlin-core:jar:3.4.7:compile
|  +- org.apache.tinkerpop:gremlin-shaded:jar:3.4.7:compile
|  +- org.apache.commons:commons-lang3:jar:3.11:compile
|  +- org.yaml:snakeyaml:jar:1.26:compile
|  +- org.javatuples:javatuples:jar:1.2:compile
|  +- com.jcabi:jcabi-manifests:jar:1.1:compile
|  |  \- com.jcabi:jcabi-log:jar:0.14:compile
|  +- com.squareup:javapoet:jar:1.8.0:compile
|  +- net.objecthunter:exp4j:jar:0.4.8:compile
|  \- org.slf4j:jcl-over-slf4j:jar:1.7.30:compile
+- org.apache.commons:commons-collections4:jar:4.4:compile
+- joda-time:joda-time:jar:2.10.6:runtime
+- org.antlr:antlr-runtime:jar:3.5.2:runtime
+- org.xerial.snappy:snappy-java:jar:1.1.7.6:runtime
+- org.odpi.egeria:repository-services-apis:jar:2.2-SNAPSHOT:compile
\- org.slf4j:slf4j-simple:jar:1.7.30:test

Utilities

Similar to applications, these are generally expected to be run directly, for example to create a json types archive, or import from the Cloud Information Model:

org.odpi.egeria:cloud-information-model:jar:2.2-SNAPSHOT
+- org.odpi.egeria:design-model-archive-base:jar:2.2-SNAPSHOT:compile
|  \- org.odpi.egeria:open-metadata-types:jar:2.2-SNAPSHOT:compile
+- org.odpi.egeria:repository-services-apis:jar:2.2-SNAPSHOT:compile
|  +- org.slf4j:slf4j-api:jar:1.7.30:compile
|  +- com.fasterxml.jackson.core:jackson-databind:jar:2.11.1:compile
|  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.1:compile
|  +- org.odpi.egeria:audit-log-framework:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:open-connector-framework:jar:2.2-SNAPSHOT:compile
|  \- org.apache.commons:commons-collections4:jar:4.4:compile
+- org.odpi.egeria:repository-services-archive-utilities:jar:2.2-SNAPSHOT:compile
|  +- org.odpi.egeria:open-metadata-archive-file-connector:jar:2.2-SNAPSHOT:compile
|  \- commons-io:commons-io:jar:2.7:compile
+- org.testng:testng:jar:7.1.0:test
|  +- com.beust:jcommander:jar:1.72:test
|  +- com.google.inject:guice:jar:no_aop:4.1.0:test
|  |  +- javax.inject:javax.inject:jar:1:test
|  |  +- aopalliance:aopalliance:jar:1.0:test
|  |  \- com.google.guava:guava:jar:23.0:compile
|  |     +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
|  |     +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
|  |     +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
|  |     \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
|  \- org.yaml:snakeyaml:jar:1.26:test
+- com.github.jsonld-java:jsonld-java:jar:0.13.0:compile
|  +- com.fasterxml.jackson.core:jackson-core:jar:2.11.1:compile
|  +- org.apache.httpcomponents:httpclient-osgi:jar:4.5.10:compile
|  |  +- org.apache.httpcomponents:httpclient:jar:4.5.10:compile
|  |  +- commons-codec:commons-codec:jar:1.14:compile
|  |  +- org.apache.httpcomponents:httpmime:jar:4.5.10:compile
|  |  +- org.apache.httpcomponents:httpclient-cache:jar:4.5.10:compile
|  |  \- org.apache.httpcomponents:fluent-hc:jar:4.5.10:compile
|  +- org.apache.httpcomponents:httpcore-osgi:jar:4.4.12:compile
|  |  +- org.apache.httpcomponents:httpcore:jar:4.4.12:compile
|  |  \- org.apache.httpcomponents:httpcore-nio:jar:4.4.12:compile
|  \- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
+- ch.qos.logback:logback-classic:jar:1.2.3:compile
|  \- ch.qos.logback:logback-core:jar:1.2.3:compile
\- org.slf4j:slf4j-simple:jar:1.7.30:test

Currently these are built as uber jars, so everything is in one jar, but as we grow the number of utilities, the overal size will increase rapidly with much duplication. Is the ease of use worth it? Or do we need a utility 'tree' in the distro where we can just include all the dependencies once?

Samples

Samples can cover a broad spectrum. They could be a simple hello world app, which may not be that interesting for anyone to just run, but instead is a guide on how to build an application, pick dependencies. However others may, for example, import coco pharmaceuticals data

There is some value in having samples ready-to-run, in which case we can almost consider them utilities once built -- their characteristics are the same.

Source code

I see this as everything - prior to any build process. Basically what we have in git. So not just java source, but sample data files, docs etc. There's likely little value in building anything much different to an entire git archive -- whilst the current source assembly is more manually crafted and thus subject to error.

Each maven artifact does need to contain it's own source -- this is mandated by maven central, and makes debugging easier as IDEs will automatically look for the 'source' classifier of the maven packages

So any source 'assembly' is of limited value

Documentation

Human readable useful info. Mostly present in the source tree in markdown format, but also processed and published on github. More generally generated documentation - be it of APIs, test results, scans may also feature.

This also includes javadoc which, as with source, is included with another classifier in each maven artifact so that IDEs can offer developers help with the API.

Producing javadoc as part of the build is likely useful for developers working on egeria itself, and ideally publishing this for each version could aid more casual users & search, but an assembly per-se doesn't offer a whole lot.

Egeria Modules

In egeria we have a very fine-grained module structure. Currently we are at over 320 modules. For example the asset owner client is one module, whilst the asset owner server is another module. Each may have differing dependencies which are policied to be sufficiently minimal (not referring to dependencies we don't use, and all we use must be specified (or transitive))

This works well for building against maven, but we can see above can cause other challenges.

We could create simplified packages with much more standard prereqs ie for clients (ie a large client 'bom'), but this also makes validation checks harder

What do we have currently

Currently we focus on one main assembly which is 'laid down' on disk as we would expect it to be run -- this in particular includes the server connectors which we add into lib - though since our current code hard-wires these dependencies, in most cases we don't necessarily end up dynamically loading much -- yet (there is an issue open to improve this)

LICENSE           clients           server            user-interface
NOTICE            conformance-suite truststore.p12    utilities

And in server

lib                                    resources                              server-chassis-spring-2.2-SNAPSHOT.jar

There are two notable ways of including dependencies in the jars:

Both result in something that is self contained, but if we have many of these with similar dependent libraries, the size explodes

Let's look at those uber-jars in clients (noting that this list is incomplete)

jonesn:clients/ (master) $ ls -la                                                                                                                   [13:40:23]
total 179424
drwxr-xr-x  44 jonesn  staff     1408  6 Aug 13:03 .
drwxr-xr-x  12 jonesn  staff      384  6 Aug 13:04 ..
-rwxr-xr-x   1 jonesn  staff      989  6 Aug 11:22 README.md
-rwxr-xr-x   1 jonesn  staff    33641  6 Aug 12:59 admin-services-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  8076638  6 Aug 12:53 asset-catalog-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     6904  6 Aug 12:53 asset-catalog-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  8144609  6 Aug 12:54 asset-consumer-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff    11455  6 Aug 12:54 asset-consumer-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  8387207  6 Aug 12:54 asset-owner-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff    24042  6 Aug 12:54 asset-owner-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  8125949  6 Aug 12:54 community-profile-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff    12395  6 Aug 12:54 community-profile-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  8167411  6 Aug 12:58 data-engine-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     7175  6 Aug 12:58 data-engine-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  8280840  6 Aug 12:55 data-manager-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff    17042  6 Aug 12:55 data-manager-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff    42668  6 Aug 12:58 data-privacy-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     1886  6 Aug 12:58 data-privacy-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff    42663  6 Aug 12:55 data-science-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     1881  6 Aug 12:55 data-science-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff    42627  6 Aug 12:55 dev-ops-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     1845  6 Aug 12:55 dev-ops-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  8206620  6 Aug 12:56 digital-architecture-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff    13460  6 Aug 12:55 digital-architecture-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  8287878  6 Aug 12:56 discovery-engine-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff    22136  6 Aug 12:56 discovery-engine-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  7975495  6 Aug 12:57 governance-engine-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     6288  6 Aug 12:57 governance-engine-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  8388671  6 Aug 12:57 governance-program-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff    12774  6 Aug 12:57 governance-program-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff    42696  6 Aug 12:57 information-view-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     1914  6 Aug 12:57 information-view-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff    42701  6 Aug 12:57 it-infrastructure-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     1919  6 Aug 12:57 it-infrastructure-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff    42705  6 Aug 12:57 project-management-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     1923  6 Aug 12:57 project-management-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff    42703  6 Aug 12:57 security-officer-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     1921  6 Aug 12:57 security-officer-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff    42706  6 Aug 12:57 software-developer-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     1924  6 Aug 12:57 software-developer-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff    43688  6 Aug 12:58 stewardship-action-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff     2990  6 Aug 12:58 stewardship-action-client-2.2-SNAPSHOT.jar
-rwxr-xr-x   1 jonesn  staff  9106735  6 Aug 12:58 subject-area-client-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff    55675  6 Aug 12:58 subject-area-client-2.2-SNAPSHOT.jar
jonesn:clients/ (master) $

And for our uber jar connectors:

jonesn:lib/ (master) $ ls -la                                                                                                                       [13:41:12]
total 694896
drwxr-xr-x  30 jonesn  staff       960  6 Aug 13:03 .
drwxr-xr-x   5 jonesn  staff       160  6 Aug 13:03 ..
-rwxr-xr-x   1 jonesn  staff   3468490  6 Aug 12:48 audit-log-console-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   3468864  6 Aug 12:48 audit-log-event-topic-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   3740168  6 Aug 12:48 audit-log-file-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   3468267  6 Aug 12:48 audit-log-slf4j-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   4801592  6 Aug 12:50 avro-file-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   4797983  6 Aug 12:50 basic-file-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff  31306710  6 Aug 12:50 cassandra-data-store-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff  35442486  6 Aug 12:51 cassandra-metadata-extractor-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   6367650  6 Aug 12:49 cohort-registry-file-store-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff  11259634  6 Aug 12:52 configuration-encrypted-file-store-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   8352348  6 Aug 12:52 configuration-file-store-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   4810077  6 Aug 12:50 csv-file-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   4805354  6 Aug 12:50 data-folder-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   6213757  6 Aug 12:51 discovery-service-connectors-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   3399288  6 Aug 12:50 gaian-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff  92464084  6 Aug 12:49 graph-repository-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   3468257  6 Aug 12:48 inmemory-open-metadata-topic-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   6116232  6 Aug 12:49 inmemory-repository-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff  16278266  6 Aug 12:48 kafka-open-metadata-topic-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   7990388  6 Aug 12:49 omrs-rest-repository-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff  57253268  6 Aug 12:51 open-lineage-janus-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   3739749  6 Aug 12:50 open-metadata-archive-file-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   3501095  6 Aug 12:52 open-metadata-security-samples-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   8008072  6 Aug 12:51 ranger-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   3498637  6 Aug 12:49 readonly-repository-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   3499256  6 Aug 12:51 security-officer-tag-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   6017755  6 Aug 12:49 spring-rest-client-connector-2.2-SNAPSHOT-jar-with-dependencies.jar
-rwxr-xr-x   1 jonesn  staff   8183951  6 Aug 12:50 view-generator-connectors-2.2-SNAPSHOT-jar-with-dependencies.jar

Compose runtime tree

This is how I tried to make the current assembly framework, but unfortunately dependency management in the assembly only appears to work with project dependencies (an aggregate of everything we need in the entire assembly) not on individual module (issues/mailing lists posted to) so it gets to over 400 dependencies:

The principle would be to add dependent libraries alongside our egeria artifacts that need them - for example a client OMAS

jonesn:server/ (issue3231) $ ls lib                                                                                                                 [13:41:59]
FastInfoset-1.2.15.jar                                        janusgraph-berkeleyje-0.5.2.jar
HdrHistogram-2.1.12.jar                                       janusgraph-cassandra-0.5.2.jar
HikariCP-3.4.5.jar                                            janusgraph-core-0.5.2.jar
HikariCP-java7-2.4.13.jar                                     janusgraph-cql-0.5.2.jar
LatencyUtils-2.0.3.jar                                        janusgraph-driver-0.5.2.jar
ST4-4.0.8.jar                                                 janusgraph-es-0.5.2.jar
admin-services-api-2.1-SNAPSHOT.jar                           janusgraph-lucene-0.5.2.jar
admin-services-client-2.1-SNAPSHOT.jar                        java-driver-core-4.7.2.jar
admin-services-config-metadata-server-sample-2.1-SNAPSHOT.jar java-driver-shaded-guava-25.1-jre-graal-sub-1.jar
admin-services-registration-2.1-SNAPSHOT.jar                  javapoet-1.8.0.jar
admin-services-server-2.1-SNAPSHOT.jar                        javassist-3.27.0-GA.jar
admin-services-spring-2.1-SNAPSHOT.jar                        javatuples-1.2.jar
analytics-modeling-api-2.1-SNAPSHOT.jar                       javax.activation-api-1.2.0.jar
analytics-modeling-server-2.1-SNAPSHOT.jar                    javax.annotation-api-1.3.2.jar
analytics-modeling-spring-2.1-SNAPSHOT.jar                    javax.json-1.0.jar
animal-sniffer-annotations-1.14.jar                           jaxb-api-2.3.1.jar
antlr-2.7.7.jar                                               jaxb-runtime-2.3.1.jar
antlr-3.5.2.jar                                               jbcrypt-0.4.jar
antlr-runtime-3.5.2.jar                                       jboss-logging-3.3.2.Final.jar
asm-7.1.jar                                                   jcabi-log-0.14.jar
asm-analysis-7.1.jar                                          jcabi-manifests-1.1.jar
asm-commons-7.1.jar                                           jcip-annotations-1.0-1.jar
asm-tree-7.1.jar                                              jcl-over-slf4j-1.7.30.jar
asm-util-7.1.jar                                              je-18.3.12.jar
aspectjrt-1.9.5.jar                                           jena-arq-3.16.0.jar
aspectjweaver-1.9.5.jar                                       jena-base-3.16.0.jar
asset-catalog-api-2.1-SNAPSHOT.jar                            jena-core-3.16.0.jar
asset-catalog-client-2.1-SNAPSHOT.jar                         jena-iri-3.16.0.jar
asset-catalog-server-2.1-SNAPSHOT.jar                         jena-shaded-guava-3.16.0.jar
asset-catalog-spring-2.1-SNAPSHOT.jar                         jettison-1.3.8.jar
asset-consumer-api-2.1-SNAPSHOT.jar                           jffi-1.2.19-native.jar
asset-consumer-client-2.1-SNAPSHOT.jar                        jffi-1.2.19.jar
asset-consumer-server-2.1-SNAPSHOT.jar                        jjwt-0.9.1.jar
asset-consumer-spring-2.1-SNAPSHOT.jar                        jline-2.14.6.jar
asset-create-avro-sample-2.1-SNAPSHOT.jar                     jnr-a64asm-1.0.0.jar
asset-create-csv-sample-2.1-SNAPSHOT.jar                      jnr-constants-0.9.12.jar
asset-lineage-api-2.1-SNAPSHOT.jar                            jnr-ffi-2.1.10.jar
asset-lineage-server-2.1-SNAPSHOT.jar                         jnr-posix-3.0.50.jar
asset-lineage-spring-2.1-SNAPSHOT.jar                         jnr-x86asm-1.0.2.jar
asset-owner-api-2.1-SNAPSHOT.jar                              joda-time-2.10.6.jar
asset-owner-client-2.1-SNAPSHOT.jar                           json-20180813.jar
asset-owner-server-2.1-SNAPSHOT.jar                           json-sanitizer-1.2.1.jar
asset-owner-spring-2.1-SNAPSHOT.jar                           json-simple-1.1.jar
asset-reader-avro-sample-2.1-SNAPSHOT.jar                     jsonld-java-0.13.0.jar
asset-reader-csv-sample-2.1-SNAPSHOT.jar                      jsr305-3.0.2.jar
astyanax-cassandra-3.10.2.jar                                 jts-core-1.16.1.jar
astyanax-cassandra-all-shaded-3.10.2.jar                      jul-to-slf4j-1.7.30.jar
astyanax-core-3.10.2.jar                                      kafka-clients-2.5.0.jar
astyanax-recipes-3.10.2.jar                                   kafka-open-metadata-topic-connector-2.1-SNAPSHOT.jar
astyanax-thrift-3.10.2.jar                                    libthrift-0.13.0.jar
audit-log-console-connector-2.1-SNAPSHOT.jar                  log4j-api-2.13.3.jar
audit-log-event-topic-connector-2.1-SNAPSHOT.jar              log4j-to-slf4j-2.13.3.jar
audit-log-file-connector-2.1-SNAPSHOT.jar                     logback-classic-1.2.3.jar
audit-log-framework-2.1-SNAPSHOT.jar                          logback-core-1.2.3.jar
audit-log-slf4j-connector-2.1-SNAPSHOT.jar                    lucene-analyzers-common-8.4.1.jar
avro-file-connector-2.1-SNAPSHOT.jar                          lucene-core-8.4.1.jar
basic-file-connector-2.1-SNAPSHOT.jar                         lucene-queries-8.4.1.jar
byte-buddy-1.10.10.jar                                        lucene-queryparser-8.4.1.jar
c3p0-0.9.5.4.jar                                              lucene-sandbox-8.4.1.jar
caffeine-2.3.1.jar                                            lucene-spatial-8.4.1.jar
cassandra-all-2.2.13.jar                                      lucene-spatial-extras-8.4.1.jar
cassandra-data-store-connector-2.1-SNAPSHOT.jar               lucene-spatial3d-8.4.1.jar
cassandra-driver-core-3.9.0.jar                               lz4-1.3.0.jar
cassandra-metadata-extractor-connector-2.1-SNAPSHOT.jar       lz4-java-1.7.1.jar
cassandra-thrift-2.2.13.jar                                   mchange-commons-java-0.2.15.jar
classgraph-4.8.87.jar                                         metadata-security-apis-2.1-SNAPSHOT.jar
classmate-1.5.1.jar                                           metadata-security-connectors-2.1-SNAPSHOT.jar
cloud-information-model-2.1-SNAPSHOT.jar                      metadata-security-server-2.1-SNAPSHOT.jar
cohort-registry-file-store-connector-2.1-SNAPSHOT.jar         metrics-core-4.0.5.jar
collection-0.7.jar                                            metrics-ganglia-3.2.2.jar
commons-cli-1.4.jar                                           metrics-graphite-3.2.2.jar
commons-codec-1.14.jar                                        metrics-jvm-3.2.2.jar
commons-collections-3.2.2.jar                                 micrometer-core-1.5.2.jar
commons-collections4-4.4.jar                                  micrometer-registry-prometheus-1.5.2.jar
commons-compress-1.20.jar                                     multi-tenant-2.1-SNAPSHOT.jar
commons-configuration-1.10.jar                                native-protocol-1.4.10.jar
commons-csv-1.8.jar                                           netty-all-4.1.51.Final.jar
commons-io-2.7.jar                                            netty-buffer-4.1.51.Final.jar
commons-lang-2.6.jar                                          netty-codec-4.1.51.Final.jar
commons-lang3-3.11.jar                                        netty-common-4.1.51.Final.jar
commons-logging-1.2.jar                                       netty-handler-4.1.51.Final.jar
commons-math3-3.2.jar                                         netty-resolver-4.1.51.Final.jar
commons-pool-1.6.jar                                          netty-transport-4.1.51.Final.jar
commons-text-1.0.jar                                          noggit-0.6.jar
community-profile-api-2.1-SNAPSHOT.jar                        ocf-metadata-api-2.1-SNAPSHOT.jar
community-profile-client-2.1-SNAPSHOT.jar                     ocf-metadata-client-2.1-SNAPSHOT.jar
community-profile-server-2.1-SNAPSHOT.jar                     ocf-metadata-handlers-2.1-SNAPSHOT.jar
community-profile-spring-2.1-SNAPSHOT.jar                     ocf-metadata-server-2.1-SNAPSHOT.jar
concurrentlinkedhashmap-lru-1.4.jar                           ocf-metadata-spring-2.1-SNAPSHOT.jar
config-1.3.4.jar                                              odf-metadata-api-2.1-SNAPSHOT.jar
configuration-encrypted-file-store-connector-2.1-SNAPSHOT.jar odf-metadata-client-2.1-SNAPSHOT.jar
configuration-file-store-connector-2.1-SNAPSHOT.jar           odf-metadata-handlers-2.1-SNAPSHOT.jar
connector-configuration-factory-2.1-SNAPSHOT.jar              ohc-core-0.3.4.jar
crc32ex-0.1.1.jar                                             omrs-rest-repository-connector-2.1-SNAPSHOT.jar
csv-file-connector-2.1-SNAPSHOT.jar                           open-connector-archives-2.1-SNAPSHOT.jar
data-engine-api-2.1-SNAPSHOT.jar                              open-connector-framework-2.1-SNAPSHOT.jar
data-engine-client-2.1-SNAPSHOT.jar                           open-discovery-framework-2.1-SNAPSHOT.jar
data-engine-proxy-connector-2.1-SNAPSHOT.jar                  open-lineage-janus-connector-2.1-SNAPSHOT.jar
data-engine-proxy-services-server-2.1-SNAPSHOT.jar            open-lineage-services-api-2.1-SNAPSHOT.jar
data-engine-server-2.1-SNAPSHOT.jar                           open-lineage-services-client-2.1-SNAPSHOT.jar
data-engine-spring-2.1-SNAPSHOT.jar                           open-lineage-services-server-2.1-SNAPSHOT.jar
data-folder-connector-2.1-SNAPSHOT.jar                        open-lineage-services-spring-2.1-SNAPSHOT.jar
data-manager-api-2.1-SNAPSHOT.jar                             open-metadata-archive-file-connector-2.1-SNAPSHOT.jar
data-manager-client-2.1-SNAPSHOT.jar                          open-metadata-conformance-suite-api-2.1-SNAPSHOT.jar
data-manager-server-2.1-SNAPSHOT.jar                          open-metadata-conformance-suite-client-2.1-SNAPSHOT.jar
data-manager-spring-2.1-SNAPSHOT.jar                          open-metadata-conformance-suite-server-2.1-SNAPSHOT.jar
data-manager-topic-connectors-2.1-SNAPSHOT.jar                open-metadata-conformance-suite-spring-2.1-SNAPSHOT.jar
data-platform-api-2.1-SNAPSHOT.jar                            open-metadata-security-samples-2.1-SNAPSHOT.jar
data-platform-client-2.1-SNAPSHOT.jar                         open-metadata-types-2.1-SNAPSHOT.jar
data-platform-services-connector-2.1-SNAPSHOT.jar             org.apache.servicemix.bundles.commons-csv-1.0-r706900_3.jar
data-platform-services-server-2.1-SNAPSHOT.jar                platform-services-api-2.1-SNAPSHOT.jar
data-privacy-api-2.1-SNAPSHOT.jar                             platform-services-server-2.1-SNAPSHOT.jar
data-privacy-client-2.1-SNAPSHOT.jar                          platform-services-spring-2.1-SNAPSHOT.jar
data-privacy-server-2.1-SNAPSHOT.jar                          plexus-utils-3.3.0.jar
data-privacy-spring-2.1-SNAPSHOT.jar                          project-management-api-2.1-SNAPSHOT.jar
data-science-api-2.1-SNAPSHOT.jar                             project-management-client-2.1-SNAPSHOT.jar
data-science-client-2.1-SNAPSHOT.jar                          project-management-server-2.1-SNAPSHOT.jar
data-science-server-2.1-SNAPSHOT.jar                          project-management-spring-2.1-SNAPSHOT.jar
data-science-spring-2.1-SNAPSHOT.jar                          protobuf-java-3.11.1.jar
design-model-api-2.1-SNAPSHOT.jar                             quartz-2.3.2.jar
design-model-archive-base-2.1-SNAPSHOT.jar                    ranger-connector-2.1-SNAPSHOT.jar
design-model-server-2.1-SNAPSHOT.jar                          reactive-streams-1.0.2.jar
design-model-spring-2.1-SNAPSHOT.jar                          readonly-repository-connector-2.1-SNAPSHOT.jar
dev-ops-api-2.1-SNAPSHOT.jar                                  reflections-0.9.12.jar
dev-ops-client-2.1-SNAPSHOT.jar                               reflections8-0.11.7.jar
dev-ops-server-2.1-SNAPSHOT.jar                               reporter-config-base-3.0.0.jar
dev-ops-spring-2.1-SNAPSHOT.jar                               reporter-config3-3.0.0.jar
digital-architecture-api-2.1-SNAPSHOT.jar                     repository-handler-2.1-SNAPSHOT.jar
digital-architecture-client-2.1-SNAPSHOT.jar                  repository-services-apis-2.1-SNAPSHOT.jar
digital-architecture-server-2.1-SNAPSHOT.jar                  repository-services-archive-utilities-2.1-SNAPSHOT.jar
digital-architecture-spring-2.1-SNAPSHOT.jar                  repository-services-client-2.1-SNAPSHOT.jar
digital-service-api-2.1-SNAPSHOT.jar                          repository-services-implementation-2.1-SNAPSHOT.jar
digital-service-server-2.1-SNAPSHOT.jar                       repository-services-spring-2.1-SNAPSHOT.jar
digital-service-spring-2.1-SNAPSHOT.jar                       rest-client-connectors-api-2.1-SNAPSHOT.jar
discovery-engine-api-2.1-SNAPSHOT.jar                         rest-client-factory-2.1-SNAPSHOT.jar
discovery-engine-client-2.1-SNAPSHOT.jar                      rex-view-api-2.1-SNAPSHOT.jar
discovery-engine-connectors-2.1-SNAPSHOT.jar                  rex-view-server-2.1-SNAPSHOT.jar
discovery-engine-server-2.1-SNAPSHOT.jar                      rex-view-spring-2.1-SNAPSHOT.jar
discovery-engine-services-api-2.1-SNAPSHOT.jar                s2-geometry-library-java-1.0.0.jar
discovery-engine-services-server-2.1-SNAPSHOT.jar             security-officer-api-2.1-SNAPSHOT.jar
discovery-engine-services-spring-2.1-SNAPSHOT.jar             security-officer-client-2.1-SNAPSHOT.jar
discovery-engine-spring-2.1-SNAPSHOT.jar                      security-officer-server-2.1-SNAPSHOT.jar
discovery-service-connectors-2.1-SNAPSHOT.jar                 security-officer-services-server-2.1-SNAPSHOT.jar
disruptor-3.0.1.jar                                           security-officer-spring-2.1-SNAPSHOT.jar
dom4j-2.1.3.jar                                               security-officer-tag-connector-2.1-SNAPSHOT.jar
ecj-4.4.2.jar                                                 security-sync-services-server-2.1-SNAPSHOT.jar
elasticsearch-rest-client-7.6.2.jar                           server-chassis-spring-2.1-SNAPSHOT.jar
error_prone_annotations-2.0.18.jar                            sigar-1.6.4.jar
esri-geometry-api-1.2.1.jar                                   simpleclient-0.8.1.jar
exp4j-0.4.8.jar                                               simpleclient_common-0.8.1.jar
fastutil-6.5.7.jar                                            slf4j-api-1.7.30.jar
ffdc-services-2.1-SNAPSHOT.jar                                snakeyaml-1.26.jar
fluent-hc-4.5.10.jar                                          snappy-java-1.1.7.6.jar
gaf-metadata-api-2.1-SNAPSHOT.jar                             software-developer-api-2.1-SNAPSHOT.jar
gaf-metadata-client-2.1-SNAPSHOT.jar                          software-developer-client-2.1-SNAPSHOT.jar
gaf-metadata-handlers-2.1-SNAPSHOT.jar                        software-developer-server-2.1-SNAPSHOT.jar
glossary-author-view-server-2.1-SNAPSHOT.jar                  software-developer-spring-2.1-SNAPSHOT.jar
glossary-author-view-spring-2.1-SNAPSHOT.jar                  spatial4j-0.7.jar
glossary-canonical-model-2.1-SNAPSHOT.jar                     spotbugs-annotations-4.0.6.jar
glossary-view-api-2.1-SNAPSHOT.jar                            spring-aop-5.2.7.RELEASE.jar
glossary-view-client-2.1-SNAPSHOT.jar                         spring-aspects-5.2.7.RELEASE.jar
glossary-view-server-2.1-SNAPSHOT.jar                         spring-beans-5.2.7.RELEASE.jar
glossary-view-spring-2.1-SNAPSHOT.jar                         spring-boot-2.3.1.RELEASE.jar
gmetric4j-1.0.7.jar                                           spring-boot-actuator-2.3.1.RELEASE.jar
governance-action-framework-2.1-SNAPSHOT.jar                  spring-boot-actuator-autoconfigure-2.3.1.RELEASE.jar
governance-engine-api-2.1-SNAPSHOT.jar                        spring-boot-autoconfigure-2.3.1.RELEASE.jar
governance-engine-client-2.1-SNAPSHOT.jar                     spring-boot-starter-2.3.1.RELEASE.jar
governance-engine-server-2.1-SNAPSHOT.jar                     spring-boot-starter-actuator-2.3.1.RELEASE.jar
governance-engine-spring-2.1-SNAPSHOT.jar                     spring-boot-starter-aop-2.3.1.RELEASE.jar
governance-leadership-sample-2.1-SNAPSHOT.jar                 spring-boot-starter-data-jpa-2.3.1.RELEASE.jar
governance-program-api-2.1-SNAPSHOT.jar                       spring-boot-starter-jdbc-2.3.1.RELEASE.jar
governance-program-client-2.1-SNAPSHOT.jar                    spring-boot-starter-json-2.3.1.RELEASE.jar
governance-program-server-2.1-SNAPSHOT.jar                    spring-boot-starter-logging-2.3.1.RELEASE.jar
governance-program-spring-2.1-SNAPSHOT.jar                    spring-boot-starter-security-2.3.1.RELEASE.jar
governance-zone-create-sample-2.1-SNAPSHOT.jar                spring-boot-starter-tomcat-2.3.1.RELEASE.jar
graph-repository-connector-2.1-SNAPSHOT.jar                   spring-boot-starter-web-2.3.1.RELEASE.jar
gremlin-core-3.4.7.jar                                        spring-context-5.2.7.RELEASE.jar
gremlin-driver-3.4.7.jar                                      spring-core-5.2.7.RELEASE.jar
gremlin-groovy-3.4.6.jar                                      spring-data-commons-2.3.1.RELEASE.jar
gremlin-shaded-3.4.7.jar                                      spring-data-jpa-2.3.1.RELEASE.jar
groovy-3.0.4-indy.jar                                         spring-expression-5.2.7.RELEASE.jar
groovy-console-3.0.4.jar                                      spring-jcl-5.2.7.RELEASE.jar
groovy-groovysh-3.0.4-indy.jar                                spring-jdbc-5.2.7.RELEASE.jar
groovy-json-2.5.11-indy.jar                                   spring-ldap-core-2.3.3.RELEASE.jar
groovy-jsr223-3.0.4-indy.jar                                  spring-orm-5.2.7.RELEASE.jar
groovy-swing-3.0.4.jar                                        spring-rest-client-connector-2.1-SNAPSHOT.jar
groovy-templates-3.0.4.jar                                    spring-security-config-5.3.3.RELEASE.jar
groovy-xml-3.0.4.jar                                          spring-security-core-5.3.3.RELEASE.jar
guava-23.0.jar                                                spring-security-ldap-5.3.3.RELEASE.jar
h2-1.4.200.jar                                                spring-security-web-5.3.3.RELEASE.jar
hibernate-commons-annotations-5.1.0.Final.jar                 spring-tx-5.2.7.RELEASE.jar
hibernate-core-5.4.17.Final.jar                               spring-web-5.2.7.RELEASE.jar
high-scale-lib-1.0.6.jar                                      spring-webmvc-5.2.7.RELEASE.jar
high-scale-lib-1.1.4.jar                                      springdoc-openapi-common-1.4.3.jar
hppc-0.7.1.jar                                                springdoc-openapi-ui-1.4.3.jar
http-helper-2.1-SNAPSHOT.jar                                  springdoc-openapi-webmvc-core-1.4.3.jar
httpasyncclient-4.1.4.jar                                     stax-api-1.0.1.jar
httpclient-4.5.10.jar                                         stax-ex-1.8.jar
httpclient-cache-4.5.10.jar                                   stewardship-action-api-2.1-SNAPSHOT.jar
httpclient-osgi-4.5.10.jar                                    stewardship-action-client-2.1-SNAPSHOT.jar
httpcore-4.4.12.jar                                           stewardship-action-server-2.1-SNAPSHOT.jar
httpcore-nio-4.4.12.jar                                       stewardship-action-spring-2.1-SNAPSHOT.jar
httpcore-osgi-4.4.12.jar                                      stewardship-engine-services-server-2.1-SNAPSHOT.jar
httpmime-4.5.10.jar                                           stream-2.5.2.jar
information-view-api-2.1-SNAPSHOT.jar                         subject-area-api-2.1-SNAPSHOT.jar
information-view-client-2.1-SNAPSHOT.jar                      subject-area-client-2.1-SNAPSHOT.jar
information-view-server-2.1-SNAPSHOT.jar                      subject-area-definition-sample-2.1-SNAPSHOT.jar
information-view-spring-2.1-SNAPSHOT.jar                      subject-area-server-2.1-SNAPSHOT.jar
inmemory-open-metadata-topic-connector-2.1-SNAPSHOT.jar       subject-area-spring-2.1-SNAPSHOT.jar
inmemory-repository-connector-2.1-SNAPSHOT.jar                super-csv-2.1.0.jar
istack-commons-runtime-3.0.7.jar                              swagger-annotations-2.1.3.jar
it-infrastructure-api-2.1-SNAPSHOT.jar                        swagger-core-2.1.3.jar
it-infrastructure-client-2.1-SNAPSHOT.jar                     swagger-integration-2.1.3.jar
it-infrastructure-server-2.1-SNAPSHOT.jar                     swagger-models-2.1.3.jar
it-infrastructure-spring-2.1-SNAPSHOT.jar                     swagger-ui-3.28.0.jar
ivy-2.3.0.jar                                                 tex-view-api-2.1-SNAPSHOT.jar
j2objc-annotations-1.1.jar                                    tex-view-server-2.1-SNAPSHOT.jar
jackson-annotations-2.11.1.jar                                tex-view-spring-2.1-SNAPSHOT.jar
jackson-core-2.11.1.jar                                       thrift-server-0.3.7.jar
jackson-core-asl-1.9.13.jar                                   tink-1.4.0.jar
jackson-databind-2.11.1.jar                                   tinkergraph-gremlin-3.4.7.jar
jackson-dataformat-yaml-2.11.1.jar                            tomcat-embed-core-9.0.36.jar
jackson-datatype-jdk8-2.11.0.jar                              tomcat-embed-websocket-9.0.36.jar
jackson-datatype-jsr310-2.11.1.jar                            txw2-2.3.1.jar
jackson-mapper-asl-1.9.13.jar                                 ui-chassis-spring-2.1-SNAPSHOT.jar
jackson-module-parameter-names-2.11.0.jar                     uuid-3.2.jar
jakarta.activation-api-1.2.1.jar                              validation-api-2.0.1.Final.jar
jakarta.annotation-api-1.3.5.jar                              vavr-0.9.0.jar
jakarta.el-3.0.3.jar                                          vavr-match-0.9.0.jar
jakarta.persistence-api-2.2.3.jar                             view-generator-connectors-2.1-SNAPSHOT.jar
jakarta.transaction-api-1.3.3.jar                             virtualization-services-api-2.1-SNAPSHOT.jar
jakarta.validation-api-2.0.2.jar                              virtualization-services-server-2.1-SNAPSHOT.jar
jakarta.xml.bind-api-2.3.2.jar                                webjars-locator-core-0.45.jar
jamm-0.3.0.jar                                                zstd-jni-1.4.4-7.jar
jandex-2.1.3.Final.jar

Simplification of our packaging

Currently we have a 1:1 relationship between our build modules & what gets published to maven central.

We could either

docker

We also build an egeria docker image. Most of the egeria content for this comes from the full distribution assembly above, and also a smaller egeria assembly we create containing our notebook/tutorials

The docker image is built towards the end of the maven build process and published to maven central

Helm charts & Kubernetes operators will make use of the published images

presentation server (node)

We have a node app for the new UI (presentation server) that is based on node. The dev team are still working on this & we need to do more work to determine what deploying it means.

We do have an initial process in place which adds the required content into an additional docker image

planetf1 commented 4 years ago

A quick summary from the call

I will continue the work from #3316 - update & remove clients as a next step

Feel free to add any further comments. cc: @davidradl @CDaRip2U @mandy-chessell

planetf1 commented 4 years ago

The PR #3316 was already nearly aligned with the discussion. I've now updated and is ready for review/merge

planetf1 commented 4 years ago

The above PR is now merged so closing this issue. Please reopen/open new issue for any followon comments.