opengeospatial / ets-ogcapi-processes10

Other
3 stars 3 forks source link

OGC API Processes 1.0 and OGC API Features 1.0 test suites cannot be deployed to same TEAM Engine instance #6

Closed dstenger closed 2 years ago

dstenger commented 2 years ago

Following branch can be used to start TEAM Engine with both test suites being deployed: https://github.com/opengeospatial/teamengine-docker/tree/etsOgcApiProcessesAndFeatures

A dependency conflict probably leads to this problem.

The lib folder with both test suites deployed looks the following:

root@75676f79659c:/usr/local/tomcat/webapps/te2/WEB-INF/lib# ls
activation-1.1.jar          ets-sta10-1.2.jar       j2objc-annotations-1.1.jar         json-schema-validator-1.0.63.jar         slf4j-log4j12-1.7.6.jar
animal-sniffer-annotations-1.14.jar ets-swecommon20-1.0.1.jar   jackson-annotations-2.12.1.jar         json-schema-validator-2.2.14.jar         snakeyaml-1.24.jar
aopalliance-1.0.jar         ets-wcs11-1.15.jar      jackson-core-2.12.1.jar            json-simple-1.1.1.jar                sqlite-jdbc-3.8.11.2.jar
btf-1.3.jar             ets-wcs20-1.17.jar      jackson-coreutils-2.0.jar          jsonoverlay-4.0.4.jar                swagger-annotations-1.6.3.jar
checker-qual-2.5.2.jar          ets-wfs10-1.13.jar      jackson-coreutils-equivalence-1.0.jar  jsr-275-0.9.3.jar                swagger-annotations-2.1.11.jar
cite1-utils-1.1.1.jar           ets-wfs11-1.33.jar      jackson-databind-2.12.1.jar        jsr305-3.0.2.jar                 swagger-compat-spec-parser-1.0.56.jar
collection-0.6.jar          ets-wfs20-1.37.jar      jackson-dataformat-yaml-2.10.1.jar     jstl-api-1.2.jar                 swagger-core-1.6.3.jar
commons-beanutils-1.9.4.jar     ets-wms-client13-1.5.jar    jackson-datatype-jsr310-2.12.1.jar     jts-1.13.jar                 swagger-core-2.1.11.jar
commons-cli-1.3.jar         ets-wms11-1.20.jar      jakarta.activation-api-1.2.1.jar       jts-core-1.18.1.jar              swagger-models-1.6.3.jar
commons-codec-1.10.jar          ets-wms13-1.28.jar      jakarta.validation-api-2.0.2.jar       jts-io-common-1.18.1.jar             swagger-models-2.1.11.jar
commons-collections-3.2.2.jar       ets-wmts10-1.4.jar      jakarta.xml.bind-api-2.3.2.jar         junit-4.13.1.jar                 swagger-parser-1.0.56.jar
commons-csv-1.5.jar         ets-wps10-0.8.jar       java-cup-10k.jar               jwat-arc-1.0.3.jar               swagger-parser-2.0.28.jar
commons-digester-1.8.1.jar      geoapi-pending-3.1-M04.jar  javax.activation-api-1.2.0.jar         jwat-archive-common-1.0.3.jar            swagger-parser-core-2.0.28.jar
commons-digester-2.1.jar        geomatics-geotk-1.16.jar    javax.annotation-api-1.2-b03.jar       jwat-common-1.0.3.jar                swagger-parser-v2-converter-2.0.28.jar
commons-fileupload-1.3.3.jar        geotk-epsg-3.21.jar     javax.inject-1.jar             jwat-gzip-1.0.3.jar              swagger-parser-v3-2.0.28.jar
commons-io-2.7.jar          geotk-geometry-3.21.jar     javax.mail-1.6.1.jar               jwat-warc-1.0.3.jar              tagsoup-1.2.1.jar
commons-lang3-3.9.jar           geotk-jtswrapper-3.21.jar   javax.mail-api-1.6.1.jar           libphonenumber-8.11.1.jar            teamengine-console-5.3.1-base.zip
commons-logging-1.2.jar         geotk-metadata-3.21.jar     javax.servlet.jsp.jstl-1.2.3.jar       list-of-duplicate-dependencies.txt       teamengine-core-5.4.1.jar
commons-validator-1.7.jar       geotk-metadata-sql-3.21.jar jaxb-api-2.3.1.jar             mail-1.4.7.jar                   teamengine-realm-5.3.1.jar
delete-duplicate-dependencies.sh    geotk-referencing-3.21.jar  jaxb-osgi-2.2.10.jar               mailapi-1.6.2.jar                teamengine-resources-5.3.1.jar
derby-10.10.2.0.jar         geotk-temporal-3.21.jar     jaxen-1.0-FCS.jar              mimepull-1.9.3.jar               teamengine-spi-5.4.1.jar
error_prone_annotations-2.1.3.jar   geotk-utility-3.21.jar      jcip-annotations-1.0.jar           msg-simple-1.2.jar               teamengine-spi-ctl-5.4.1.jar
ets-cat30-1.3.jar           geotk-utility-pending-3.21.jar  jcommander-1.48.jar            openapi-core-1.0.7.jar               teamengine-web-5.3.1-common-libs.zip
ets-cdb10-1.0.jar           geotk-xml-base-3.21.jar     jena-base-3.1.0.jar            openapi-operation-validator-1.0.7.jar        teamengine-web-5.3.1.war
ets-geotiff11-1.0.jar           geotk-xml-gml-3.21.jar      jena-core-3.1.0.jar            openapi-parser-1.0.7.jar             testng-6.9.10.jar
ets-gml32-1.29.jar          groovy-2.4.15.jar       jena-iri-1.1.2.jar             openapi-parser-4.0.4.jar             unit-api-1.0.jar
ets-gmljpx20-1.1.jar            groovy-json-2.4.15.jar      jena-iri-3.1.0.jar             openapi-schema-validator-1.0.7.jar       uri-template-0.10.jar
ets-gpkg10-1.1.jar          groovy-xml-2.4.12.jar       jena-shaded-guava-3.1.0.jar        org.apache.sling.javax.activation-0.1.0.jar  validation-api-1.1.0.Final.jar
ets-gpkg12-1.1.jar          groovy-xml-2.4.15.jar       jersey-client-1.19.jar             org.everit.json.schema-1.13.0.jar        vecmath-1.5.2.jar
ets-kml2-0.5.jar            gson-2.2.2.jar          jersey-multipart-1.19.jar          proj4j-1.1.3.jar                 webservices-api-2.3.jar
ets-kml22-1.14.jar          guava-16.0.1.jar        jersey-servlet-1.19.jar            re2j-1.3.jar                 webservices-rt-2.3.jar
ets-ogcapi-edr10-0.1.jar        guava-26.0-jre.jar      jhove-core-1.16.6.jar              rest-assured-3.3.0.jar               xercesImpl-2.12.1.jar
ets-ogcapi-features10-1.3.jar       guice-4.0.jar           jhove-modules-1.16.6.jar           rest-assured-common-3.3.0.jar            xercesImpl-xsd11-shaded-2.12-beta-r1667115.jar
ets-ogcapi-processes10-0.1.jar      hamcrest-core-1.3.jar       jing-20091111.jar              rhino-1.7.7.2.jar                xml-apis-1.4.01.jar
ets-omxml20-1.0.jar         hamcrest-library-1.3.jar    joda-time-2.9.4.jar            saxon9-9.0.0.8.jar               xml-path-3.3.0.jar
ets-owc10-0.2.jar           handy-uri-templates-2.1.8.jar   jopt-simple-5.0.4.jar              saxpath-1.0-FCS.jar              xml-resolver-1.2.jar
ets-security-client10-0.6.jar       httpclient-4.5.3.jar        json-20201115.jar              schema-utils-1.8.jar
ets-security-client10.embedded-1.0.jar  httpcore-4.4.6.jar      json-patch-1.13.jar            servlet-api-2.5.jar
ets-sensorml20-1.0.jar          httpmime-4.5.3.jar      json-path-3.3.0.jar            slf4j-api-1.7.30.jar
ets-sos20-1.14.jar          isorelax-20030108.jar       json-schema-core-1.2.14.jar        slf4j-jdk14-1.7.21.jar

After removing the OGC API Processes 1.0 test suite again (current master branch of teamengine-docker project), the lib folder contains the following:

root@51503d10f441:/usr/local/tomcat/webapps/te2/WEB-INF/lib# ls
activation-1.1.jar           ets-omxml20-1.0.jar             groovy-json-2.4.15.jar     jena-iri-1.1.2.jar               proj4j-1.1.3.jar
animal-sniffer-annotations-1.14.jar  ets-owc10-0.2.jar               groovy-xml-2.4.15.jar      jena-iri-3.1.0.jar               re2j-1.3.jar
aopalliance-1.0.jar          ets-security-client10-0.6.jar       gson-2.2.2.jar         jena-shaded-guava-3.1.0.jar          rest-assured-3.3.0.jar
checker-qual-2.5.2.jar           ets-security-client10.embedded-1.0.jar  guava-16.0.1.jar           jersey-client-1.19.jar               rest-assured-common-3.3.0.jar
cite1-utils-1.1.1.jar            ets-sensorml20-1.0.jar          guava-26.0-jre.jar         jersey-multipart-1.19.jar            saxon9-9.0.0.8.jar
collection-0.6.jar           ets-sos20-1.14.jar              guice-4.0.jar          jersey-servlet-1.19.jar              saxpath-1.0-FCS.jar
commons-beanutils-1.9.4.jar      ets-sta10-1.2.jar               hamcrest-core-1.3.jar      jhove-core-1.16.6.jar                schema-utils-1.8.jar
commons-cli-1.3.jar          ets-swecommon20-1.0.1.jar           hamcrest-library-1.3.jar       jhove-modules-1.16.6.jar             servlet-api-2.5.jar
commons-codec-1.10.jar           ets-wcs11-1.15.jar              handy-uri-templates-2.1.8.jar  jing-20091111.jar                slf4j-api-1.7.20.jar
commons-collections-3.2.2.jar        ets-wcs20-1.17.jar              httpclient-4.5.3.jar       joda-time-2.9.4.jar              slf4j-jdk14-1.7.21.jar
commons-csv-1.5.jar          ets-wfs10-1.13.jar              httpcore-4.4.6.jar         json-20201115.jar                slf4j-log4j12-1.7.6.jar
commons-digester-1.8.1.jar       ets-wfs11-1.33.jar              httpmime-4.5.3.jar         json-path-3.3.0.jar              snakeyaml-1.23.jar
commons-digester-2.1.jar         ets-wfs20-1.37.jar              isorelax-20030108.jar      json-simple-1.1.1.jar                sqlite-jdbc-3.8.11.2.jar
commons-fileupload-1.3.3.jar         ets-wms-client13-1.5.jar            j2objc-annotations-1.1.jar     jsonoverlay-4.0.4.jar                tagsoup-1.2.1.jar
commons-io-2.7.jar           ets-wms11-1.20.jar              jackson-annotations-2.9.0.jar  jsr-275-0.9.3.jar                teamengine-console-5.3.1-base.zip
commons-lang3-3.9.jar            ets-wms13-1.28.jar              jackson-core-2.9.8.jar     jsr305-3.0.2.jar                 teamengine-core-5.4.1.jar
commons-logging-1.2.jar          ets-wmts10-1.4.jar              jackson-databind-2.9.8.jar     jstl-api-1.2.jar                 teamengine-realm-5.3.1.jar
commons-validator-1.7.jar        ets-wps10-0.8.jar               jackson-dataformat-yaml-2.9.8.jar  jts-1.13.jar                     teamengine-resources-5.3.1.jar
delete-duplicate-dependencies.sh     geoapi-pending-3.1-M04.jar          java-cup-10k.jar           jts-core-1.18.1.jar              teamengine-spi-5.4.1.jar
derby-10.10.2.0.jar          geomatics-geotk-1.16.jar            javax.activation-api-1.2.0.jar jts-io-common-1.18.1.jar             teamengine-spi-ctl-5.4.1.jar
error_prone_annotations-2.1.3.jar    geotk-epsg-3.21.jar             javax.annotation-api-1.2-b03.jar   junit-4.13.1.jar                 teamengine-web-5.3.1-common-libs.zip
ets-cat30-1.3.jar            geotk-geometry-3.21.jar             javax.inject-1.jar         jwat-arc-1.0.3.jar               teamengine-web-5.3.1.war
ets-cdb10-1.0.jar            geotk-jtswrapper-3.21.jar           javax.mail-1.6.1.jar       jwat-archive-common-1.0.3.jar            testng-6.9.10.jar
ets-geotiff11-1.0.jar            geotk-metadata-3.21.jar             javax.mail-api-1.6.1.jar       jwat-common-1.0.3.jar                unit-api-1.0.jar
ets-gml32-1.29.jar           geotk-metadata-sql-3.21.jar         javax.servlet.jsp.jstl-1.2.3.jar   jwat-gzip-1.0.3.jar              vecmath-1.5.2.jar
ets-gmljpx20-1.1.jar             geotk-referencing-3.21.jar          jaxb-api-2.3.1.jar         jwat-warc-1.0.3.jar              webservices-api-2.3.jar
ets-gpkg10-1.1.jar           geotk-temporal-3.21.jar             jaxb-osgi-2.2.10.jar       list-of-duplicate-dependencies.txt       webservices-rt-2.3.jar
ets-gpkg12-1.1.jar           geotk-utility-3.21.jar          jaxen-1.0-FCS.jar          mail-1.4.7.jar                   xercesImpl-2.12.1.jar
ets-kml2-0.5.jar             geotk-utility-pending-3.21.jar      jcip-annotations-1.0.jar       mimepull-1.9.3.jar               xercesImpl-xsd11-shaded-2.12-beta-r1667115.jar
ets-kml22-1.14.jar           geotk-xml-base-3.21.jar             jcommander-1.48.jar        openapi-parser-4.0.4.jar             xml-apis-1.4.01.jar
ets-ogcapi-edr10-0.1.jar         geotk-xml-gml-3.21.jar          jena-base-3.1.0.jar        org.apache.sling.javax.activation-0.1.0.jar  xml-path-3.3.0.jar
ets-ogcapi-features10-1.3.jar        groovy-2.4.15.jar               jena-core-3.1.0.jar        org.everit.json.schema-1.13.0.jar        xml-resolver-1.2.jar

Please note that dependencies removed in this commit (list-of-duplicate-dependencies.txt) had to be added because of the Processes test suite bringing duplicate dependencies: https://github.com/opengeospatial/teamengine-docker/commit/af8b14798f9f9410147ad7f685282812df8343c1

This list should be kept as short as possible by using dependencies which are already used by other test suites (in this case, especially by the Features test suite).

When comparing both lists of dependencies, I observed the following

Aim of this task is to update the OGC API Processes 1.0 test suite so that it can run in the same TEAM Engine instance as the OGC API Features 1.0 test suite. Also, the list of duplicate dependencies should be shortened as much as possible.

dstenger commented 2 years ago

Following API was used to test the OGC API Features test suite: https://oaf.lat-lon.de/deegree-services-oaf/datasets/kitaeinrichtung If both test suites are deployed, all Core tests are skipped. When Processes test suite is removed again, all Core tests are passing.

gfenoy commented 2 years ago

In my tentative to solve the issue, I have removed unused dependencies. Meaninig that the swagger-* should not be present anymore.

For the json-schema-validator-*, I wonder where the json-schema-validator-2.2.14.jar comes from.

For the openapi-parser-*, I suppose that one comes from org.openapi4j and the other one from com.reprezen.kaizen.

After building the TEAM Engine from bc309dc , I get the following content in the lib folder:

root@6876a451403e:/usr/local/tomcat/webapps/teamengine/WEB-INF/lib# ls
activation-1.1.jar           groovy-xml-2.4.12.jar           javax.servlet.jsp.jstl-1.2.3.jar  jsr305-3.0.2.jar                            snakeyaml-1.24.jar
checker-qual-2.11.1.jar          guava-29.0-jre.jar          jaxb-api-2.2.12.jar           jstl-api-1.2.jar                            tagsoup-1.2.1.jar
collection-0.6.jar           hamcrest-core-1.3.jar           jcommander-1.48.jar           listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar  teamengine-core-5.5-SNAPSHOT.jar
commons-cli-1.3.jar          hamcrest-library-1.3.jar        jena-base-3.1.0.jar           mail-1.4.7.jar                              teamengine-spi-5.5-SNAPSHOT.jar
commons-codec-1.10.jar           httpclient-4.5.3.jar            jena-core-3.1.0.jar           mimepull-1.9.3.jar                          teamengine-spi-ctl-5.5-SNAPSHOT.jar
commons-fileupload-1.3.3.jar         httpcore-4.4.6.jar          jena-iri-3.1.0.jar            openapi-core-1.0.7.jar                          testng-6.9.10.jar
commons-io-2.5.jar           httpmime-4.5.1.jar          jena-shaded-guava-3.1.0.jar       openapi-operation-validator-1.0.7.jar                   tomcat-servlet-api-7.0.69.jar
commons-io-2.7.jar           isorelax-20030108.jar           jersey-client-1.19.jar        openapi-parser-1.0.7.jar                        xercesImpl-2.12.0.jar
commons-lang3-3.7.jar            j2objc-annotations-1.3.jar      jersey-multipart-1.19.jar         openapi-parser-4.0.4.jar                        xml-apis-1.4.01.jar
commons-logging-1.2.jar          jackson-annotations-2.12.1.jar      jing-20091111.jar             openapi-schema-validator-1.0.7.jar                  xml-path-3.1.0.jar
error_prone_annotations-2.3.4.jar    jackson-core-2.12.1.jar         joda-time-2.9.4.jar           rest-assured-3.1.0.jar                          xml-resolver-1.2.jar
ets-ogcapi-processes10-0.2-SNAPSHOT.jar  jackson-databind-2.12.1.jar         json-path-3.1.0.jar           rest-assured-common-3.1.0.jar
failureaccess-1.0.1.jar          jackson-dataformat-yaml-2.10.1.jar  json-schema-validator-1.0.66.jar  saxon9-9.0.0.8.jar
groovy-2.4.12.jar            javax.mail-1.6.1.jar            json-simple-1.1.1.jar         schema-utils-1.8.jar
groovy-json-2.4.12.jar           javax.mail-api-1.6.1.jar        jsonoverlay-4.0.4.jar         slf4j-api-1.7.20.jar
dstenger commented 2 years ago

Thank you for your work!

Also, we should update dependencies which also exist in https://github.com/opengeospatial/ets-ogcapi-features10/blob/master/pom.xml to the version used in the Features test suite.

gfenoy commented 2 years ago

@dstenger, I have made the modifications you requested in the PR #7.

I hope it is correct.

dstenger commented 2 years ago

Please also consider: https://github.com/opengeospatial/cite/wiki/Dependencies-of-test-suites

dstenger commented 2 years ago

I can confirm that OGC API Features test suite works again after merging #7.

In addition, I did some clean up of the dependencies (removing obsolete dependencies and including dependencies documented on wiki site): #22

Now, there is still a conflict regarding jackson as openapi-operation-validator brings a newer version (2.12.1) than used by other dependencies.