Code Monkey home page Code Monkey logo

release-validation-framework's Introduction

SNOMED CT Release Validation Framework (RVF)

A framework for testing the validity of SNOMED CT releases based on groups of quality assertions.

Documentation

Documentation is sparse for now, but will be improved as the project moves out of a proof of concept phase.

Questions

If you have any questions, please just ask by raising a ticket in the GitHub repo issue page

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request

License

Apache 2.0

See the LICENSE file for details.

release-validation-framework's People

Contributors

aat55 avatar aflinton avatar astro-snail avatar bronwen-cassidy avatar codermchu avatar dependabot[bot] avatar dmcgihtsdo avatar gitter-badger avatar hm-huyle avatar jaykola avatar jimcornmell avatar jimsteel avatar kaicode avatar lawley avatar namlehm avatar pgwilliams avatar quyenly87 avatar rorydavidson avatar tinlehm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

release-validation-framework's Issues

ports should be configurable

I already have services running on port 8080

It should be possible (and easy) for me to chose a different port.

Ability to use an embedded database

Hi everyone, has anyone tried running RVF using an embedded database rather than MySQL?

Chatting with folks at the Terminology Management Working Group today and every time I talk to someone who has attempted to use the RVF or who would like to use it they ask if it works with an embedded database. Apache Derby has been mentioned as a favourite.

I wonder if anyone has tried this / identified a list of issues / has a work in progress somewhere?

mvn clean install not working

Hi,
I tried to compile RVF by myself on Ubuntu 20.04 and ran into trouble. The installed java version is 11.
Any hint to get this working would be appreciated.

me@host:~/release-validation-framework$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:        20.04
Codename:       focal
me@host:~/release-validation-framework$ java -version
openjdk version "11.0.17" 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu220.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu220.04, mixed mode, sharing)
me@host:~/release-validation-framework$ sudo mvn clean install
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] SNOMED Release Validation Framework                                [pom]
[INFO] model                                                              [jar]
[INFO] data-service                                                       [jar]
[INFO] validation-service                                                 [jar]
[INFO] importer                                                           [jar]
[INFO] execution-service                                                  [jar]
[INFO] api                                                                [jar]
[INFO]
[INFO] ---------< org.ihtsdo.snomed.rvf:release-validation-framework >---------
[INFO] Building SNOMED Release Validation Framework 3.12.0                [1/7]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ release-validation-framework ---
[INFO]
[INFO] --------------------< org.ihtsdo.snomed.rvf:model >---------------------
[INFO] Building model 3.12.0                                              [2/7]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ model ---
[INFO] Deleting /home/me/release-validation-framework/model/target
[INFO]
[INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ model ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/me/release-validation-framework/model/src/main/resources
[INFO] skip non existing resourceDirectory /home/me/release-validation-framework/model/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ model ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 14 source files to /home/me/release-validation-framework/model/target/classes
[INFO]
[INFO] -----------------< org.ihtsdo.snomed.rvf:data-service >-----------------
[INFO] Building data-service 3.12.0                                       [3/7]
[INFO] --------------------------------[ jar ]---------------------------------
Downloading from ihtsdo-releases: https://nexus3.ihtsdotools.org/repository/maven-releases/org/ihtsdo/otf/common/resource-manager/3.2.0/resource-manager-3.2.0.pom
Downloading from ihtsdo-old-public-nexus: https://maven.ihtsdotools.org/content/repositories/releases/org/ihtsdo/otf/common/resource-manager/3.2.0/resource-manager-3.2.0.pom
Downloading from ihtsdo-snapshots: https://nexus3.ihtsdotools.org/repository/maven-snapshots/org/ihtsdo/otf/common/resource-manager/3.2.0/resource-manager-3.2.0.pom
Downloading from ihtsdo-releases: https://nexus3.ihtsdotools.org/repository/maven-releases/org/ihtsdo/otf/common/otf-common/3.2.0/otf-common-3.2.0.pom
Downloading from ihtsdo-old-public-nexus: https://maven.ihtsdotools.org/content/repositories/releases/org/ihtsdo/otf/common/otf-common/3.2.0/otf-common-3.2.0.pom
Downloading from ihtsdo-snapshots: https://nexus3.ihtsdotools.org/repository/maven-snapshots/org/ihtsdo/otf/common/otf-common/3.2.0/otf-common-3.2.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for SNOMED Release Validation Framework 3.12.0:
[INFO]
[INFO] SNOMED Release Validation Framework ................ SUCCESS [  0.238 s]
[INFO] model .............................................. SUCCESS [  1.582 s]
[INFO] data-service ....................................... FAILURE [  0.641 s]
[INFO] validation-service ................................. SKIPPED
[INFO] importer ........................................... SKIPPED
[INFO] execution-service .................................. SKIPPED
[INFO] api ................................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.811 s
[INFO] Finished at: 2023-02-02T15:24:34+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project data-service: Could not resolve dependencies for project org.ihtsdo.snomed.rvf:data-service:jar:3.12.0: Failed to collect dependencies at org.ihtsdo.otf.common:resource-manager:jar:3.2.0: Failed to read artifact descriptor for org.ihtsdo.otf.common:resource-manager:jar:3.2.0: Could not transfer artifact org.ihtsdo.otf.common:resource-manager:pom:3.2.0 from/to ihtsdo-releases (https://nexus3.ihtsdotools.org/repository/maven-releases/): Transfer failed for https://nexus3.ihtsdotools.org/repository/maven-releases/org/ihtsdo/otf/common/resource-manager/3.2.0/resource-manager-3.2.0.pom: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :data-service
me@host:~/release-validation-framework$

Docker container cannot be started

I tried (several times) to run RVF via sudo docker-compose up -d. Unfortunately the rvf container is not starting correctly. In the log is as a last message (before it restarts):

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/ihtsdo/rvf/App has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

I already changed the version of mysql as mentioned in #57
Are there any recommendations to get that running?

component-centric-snapshot-description-active-inactive-term-match rules do not consider languageCode

Docker file error rvf-api.jar exited with code 1.

As mentioned in the question , I am getting this specific error for the latest release of rvf , while running from Docker file, error rvf-api.jar exited with code 1. unable to access rvf-api.jar inside docker.
OS : ubuntu 22.
Please help

Spring security is not configured properly

The first time you hit RVF in a browser and you hit the /api endpoint you receive an error message:

Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served. For e.g. if the api is available at http://example.org/api/v2/api-docs then the base url is http://example.org/api/. Please enter the location manually: 

The tab has to be closed and reopened to be able to see the swagger page.

This is caused by spring security misconfiguration. /api/swagger-ui.html, /api/swagger-resources/** and other swagger related endpoints need to be added to the non secure pages during spring security initialisation with permitAll(). Currently they are incorrectly added without the /api path in them.

Docker "quickstart" instructions don't work

Using Ubuntu 18.04.4 LTS.

Done:
sudo snap install docker
(docker 19.03.11 from Canonical✓ installed)
sudo apt install git

and then
git clone https://github.com/IHTSDO/release-validation-framework.git
cd release-validation-framework
docker-compose up -d

but get
ERROR: Couldn't connect to Docker daemon - you might need to run docker-machine start default.

so tried
docker-machine start default

and got
Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.

..at which point, not knowing much about what "docker" even is or does, and not wanting to RTFM, I came here to blow off steam.

Could not resolve placeholder 'rvf.qa.data.maxKeepTime' in string value "${rvf.qa.data.maxKeepTime}"

I get the following error when starting the validation-api.jar:

20170222_12:39:00 INFO org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties - Loading properties file from class path resource [validation-service-defaults.properties]
20170222_12:39:00 WARN org.springframework.context.support.AbstractApplicationContext.refresh - Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'scheduleEventGenerator' defined in class path resource [executionServiceContext.xml]: Could not resolve placeholder 'rvf.qa.data.maxKeepTime' in string value "${rvf.qa.data.maxKeepTime}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'rvf.qa.data.maxKeepTime' in string value "${rvf.qa.data.maxKeepTime}"
at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:211)
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.processProperties(PropertySourcesPlaceholderConfigurer.java:180)
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.postProcessBeanFactory(PropertySourcesPlaceholderConfigurer.java:155)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:265)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:162)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5033)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5317)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'rvf.qa.data.maxKeepTime' in string value "${rvf.qa.data.maxKeepTime}"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174)
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126)
at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:204)
at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:178)
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer$2.resolveStringValue(PropertySourcesPlaceholderConfigurer.java:175)
at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveStringValue(BeanDefinitionVisitor.java:282)
at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveValue(BeanDefinitionVisitor.java:204)
at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitGenericArgumentValues(BeanDefinitionVisitor.java:159)
at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitBeanDefinition(BeanDefinitionVisitor.java:85)
at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:208)
... 25 more
20170222_12:39:00 ERROR org.springframework.web.servlet.FrameworkServlet.initServletBean - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'scheduleEventGenerator' defined in class path resource [executionServiceContext.xml]: Could not resolve placeholder 'rvf.qa.data.maxKeepTime' in string value "${rvf.qa.data.maxKeepTime}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'rvf.qa.data.maxKeepTime' in string value "${rvf.qa.data.maxKeepTime}"

Any guidance for resolving this error would be appriciated.

Whitelist check failing

I was trying to manually build rvf and was successful in building version 4.1.0 . I tried to run a sample rvf which i had earlier tested on previous release with docker based deployment , But program threw error. And program finished in failed state.

`20240712_17:55:18 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeTest - TestRunItem{assertionUuid=4572d730-7d08-11e1-b0c4-0800200c9a66'assertionText=No Concept has 2 inferred relationships with the same type, destination and group.'executionId=null'testCategory=component-centric-validation'testType=null'runTime=15056'failureCount=-1}
20240712_17:55:18 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Executing drop table if exists rvf_int_20240715_12072024_combined.act_inferred_isa statement:
20240712_17:55:18 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Completed in 85ms, result = 0
20240712_17:55:18 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Executing create table if not exists rvf_int_20240715_12072024_combined.act_inferred_isa (INDEX(sourceid)) as select sourceid from rvf_int_20240715_12072024_combined.relationship_s where active = '1' and typeid = 116680003 statement:
20240712_17:55:34 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Completed in 16263ms, result = 862225
20240712_17:55:34 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Executing insert into rvf_master.qa_result (run_id, assertion_id, concept_id, details, component_id, table_name) select 12072024, '226', a.id, concat('CONCEPT: id=',a.id, ': Concept does not have an inferred is-a relationship.'), a.id, 'rvf_int_20240715_12072024_combined.concept_s' from rvf_int_20240715_12072024_combined.concept_s a left join rvf_int_20240715_12072024_combined.act_inferred_isa b on a.id = b.sourceid where a.active = '1' and b.sourceid is null and a.id != 138875005 statement:
20240712_17:55:36 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Completed in 2234ms, result = 0
20240712_17:55:36 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Executing drop table if exists rvf_int_20240715_12072024_combined.act_inferred_isa statement:
20240712_17:55:37 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Completed in 604ms, result = 0
20240712_17:55:37 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeTest - TestRunItem{assertionUuid=3ab84230-7d08-11e1-b0c4-0800200c9a66'assertionText=All concepts have at least one inferred is-a relationship.'executionId=null'testCategory=component-centric-validation'testType=null'runTime=19187'failureCount=-1}
20240712_17:55:37 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Executing insert into rvf_master.qa_result (run_id, assertion_id, concept_id, details, component_id, table_name) select 12072024, '166', a.referencedcomponentid, concat('ASSOC RS: id=',a.id, ':Non unique id in current release file.'), a.id, 'rvf_int_20240715_12072024_combined.associationrefset_s' from rvf_int_20240715_12072024_combined.associationrefset_s a group by a.id having count(a.id) > 1 statement:
20240712_17:55:38 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Completed in 916ms, result = 0
20240712_17:55:38 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Executing commit statement:
20240712_17:55:38 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeUpdateStatement - Completed in 1ms, result = 0
20240712_17:55:38 INFO org.ihtsdo.rvf.core.service.AssertionExecutionService.executeTest - TestRunItem{assertionUuid=18a9f6b4-b66f-4af3-8c67-2a07b4655d27'assertionText=ID is unique in the ASSOCIATION REFSET snapshot.'executionId=null'testCategory=file-centric-validation'testType=null'runTime=917'failureCount=-1}
20240712_17:55:40 ERROR org.ihtsdo.rvf.core.service.ValidationRunner.run - Exception thrown, writing as result
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: URI is not absolute
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.ihtsdo.rvf.core.service.ValidationRunner.doRunValidations(ValidationRunner.java:167)
at org.ihtsdo.rvf.core.service.ValidationRunner.runValidations(ValidationRunner.java:105)
at org.ihtsdo.rvf.core.service.ValidationRunner.run(ValidationRunner.java:68)
at org.ihtsdo.rvf.core.messaging.ValidationMessageListener.runValidation(ValidationMessageListener.java:60)
at org.ihtsdo.rvf.core.messaging.ValidationMessageListener.processMessage(ValidationMessageListener.java:45)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:169)
at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:119)
at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:114)
at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:77)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:331)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:270)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1237)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1227)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1120)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: URI is not absolute
at java.base/java.net.URL.fromURI(URL.java:692)
at java.base/java.net.URI.toURL(URI.java:1116)
at org.springframework.http.client.SimpleClientHttpRequestFactory.createRequest(SimpleClientHttpRequestFactory.java:145)
at org.springframework.http.client.support.HttpAccessor.createRequest(HttpAccessor.java:124)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:778)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:717)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:608)
at org.ihtsdo.otf.rest.client.ims.IMSRestClient.login(IMSRestClient.java:59)
at org.ihtsdo.rvf.core.service.whitelist.AcceptanceGatewayClient.createClient(AcceptanceGatewayClient.java:58)
at org.ihtsdo.rvf.core.service.whitelist.AcceptanceGatewayClientFactory.getClient(AcceptanceGatewayClientFactory.java:46)
at org.ihtsdo.rvf.core.service.WhitelistService.checkComponentFailuresAgainstWhitelist(WhitelistService.java:33)
at org.ihtsdo.rvf.core.service.MysqlFailuresExtractor.validateFailuresAndExtractTestResults(MysqlFailuresExtractor.java:115)
at org.ihtsdo.rvf.core.service.MysqlFailuresExtractor.extractTestResults(MysqlFailuresExtractor.java:55)
at org.ihtsdo.rvf.core.service.MysqlValidationService.constructTestReport(MysqlValidationService.java:227)
at org.ihtsdo.rvf.core.service.MysqlValidationService.runExtensionReleaseValidation(MysqlValidationService.java:120)
at org.ihtsdo.rvf.core.service.MysqlValidationService.runRF2MysqlValidations(MysqlValidationService.java:77)
at org.ihtsdo.rvf.core.service.ValidationRunner.lambda$doRunValidations$0(ValidationRunner.java:137)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
... 1 more

`

Docker HUB snomedinternational/release-validation-framework images are not tagged

Unfortunately there are only two tags in docker hub that get overwritten with new builds.

Because of that I cannot point my Kubernetes job to a tagged image to go around the latest issue with mysql being updated but not the code or the docker image.

Please introduce some tagging process so whenever there are major modifications done on the main branch and there are issues we can use a tagged working version of RVF to fall back to.

Docker-compose is out of date

Hi,
There was a change lately to update mysql from 5.7 to 8.0.28 (commit b9f775d) and now the docker server startup dies with java.util.concurrent.ExecutionException: java.sql.SQLSyntaxErrorException: The used command is not allowed with this MySQL version

Can you please update docker-compose.yml to use mysql 8.0.28?

RVF fails to connect to the database randomly

I receive this issue randomly when I spin up a Kubernetes (docker) container with the new Mysql 8.0.25 setup

20230310_02:06:54 WARN  org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService - HHH000342: Could not obtain connection to query metadata
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Public Key Retrieval is not allowed)
	at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
	at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:181)
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68)
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
	at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:175)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
	at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:173)
	at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:127)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1460)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1494)
	at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58)
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409)
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396)
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
	at org.ihtsdo.rvf.App.main(App.java:40)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
	at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65)
Caused by: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:829)
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:449)
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:242)
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
	at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
	... 49 more
Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
	at com.mysql.cj.protocol.a.authentication.CachingSha2PasswordPlugin.nextAuthenticationStep(CachingSha2PasswordPlugin.java:130)
	at com.mysql.cj.protocol.a.authentication.CachingSha2PasswordPlugin.nextAuthenticationStep(CachingSha2PasswordPlugin.java:49)
	at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:445)
	at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:211)
	at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1369)
	at com.mysql.cj.NativeSession.connect(NativeSession.java:133)
	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:949)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:819)
	... 56 more
20230310_02:06:54 INFO  org.hibernate.dialect.Dialect.<init> - HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect

Doesn't compile with JDK 11

Using Ubuntu 18.04.4 LTS.
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)

Done:
sudo apt install maven

Get
Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 11.0.7, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "5.3.0-62-generic", arch: "amd64", family: "unix"

Tried
cd ~/release-validation-framework
mvn clean install

Get

[INFO] Changes detected - recompiling the module!
[INFO] Compiling 12 source files to /home/iresuser/release-validation-framework/model/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[13,33] package javax.xml.bind.annotation does not exist
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[14,33] package javax.xml.bind.annotation does not exist
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[24,2] cannot find symbol
symbol: class XmlRootElement
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[62,10] cannot find symbol
symbol: class XmlElement
location: class org.ihtsdo.rvf.entity.Assertion
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[71,10] cannot find symbol
symbol: class XmlElement
location: class org.ihtsdo.rvf.entity.Assertion
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[88,10] cannot find symbol
symbol: class XmlElement
location: class org.ihtsdo.rvf.entity.Assertion
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[97,10] cannot find symbol
symbol: class XmlElement
location: class org.ihtsdo.rvf.entity.Assertion
[INFO] 7 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for SNOMED Release Validation Framework 2.8.0:
[INFO]
[INFO] SNOMED Release Validation Framework ................ SUCCESS [01:33 min]
[INFO] model .............................................. FAILURE [ 8.834 s]
[INFO] data-service ....................................... SKIPPED
[INFO] validation-service ................................. SKIPPED
[INFO] importer ........................................... SKIPPED
[INFO] execution-service .................................. SKIPPED
[INFO] api ................................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:57 min
[INFO] Finished at: 2020-07-17T15:40:12+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project model: Compilation failure: Compilation failure:
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[13,33] package javax.xml.bind.annotation does not exist
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[14,33] package javax.xml.bind.annotation does not exist
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[24,2] cannot find symbol
[ERROR] symbol: class XmlRootElement
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[62,10] cannot find symbol
[ERROR] symbol: class XmlElement
[ERROR] location: class org.ihtsdo.rvf.entity.Assertion
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[71,10] cannot find symbol
[ERROR] symbol: class XmlElement
[ERROR] location: class org.ihtsdo.rvf.entity.Assertion
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[88,10] cannot find symbol
[ERROR] symbol: class XmlElement
[ERROR] location: class org.ihtsdo.rvf.entity.Assertion
[ERROR] /home/iresuser/release-validation-framework/model/src/main/java/org/ihtsdo/rvf/entity/Assertion.java:[97,10] cannot find symbol
[ERROR] symbol: class XmlElement
[ERROR] location: class org.ihtsdo.rvf.entity.Assertion
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :model

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.