etf-validator / etf-webapp

:earth_africa: :mag: ETF is an open source testing framework for spatial data and services
https://www.etf-validator.net
European Union Public License 1.2
18 stars 19 forks source link

Incompatible test drivers #117

Closed elisabettastruzzi closed 7 years ago

elisabettastruzzi commented 7 years ago

The etf-webapp.war build runs. Anyway the deploy on Tomcat fails retrieving the following exception: de.interactive_instruments.etf.testdriver.sui.SuiTestDriver.setLifeCycleMediator(Lde/interactive_instruments/etf/testdriver/ExecutableTestSuiteLifeCycleListenerMediator;)V 2017-07-06 11:10:32.576 [http-nio-8080-exec-4] INFO d.i.e.d.d.b.BsxDataStorage - BsxDataStorage released 2017-07-06 11:10:32.576 [http-nio-8080-exec-4] INFO d.i.e.w.c.EtfConfigController - Bye 2017-07-06 11:10:32.580 [http-nio-8080-exec-4] ERROR o.s.w.c.ContextLoader - Context initialization failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'etsController': Unsatisfied dependency expressed through field 'testDriverController'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testDriverController': Invocation of init method failed; nested exception is java.lang.AbstractMethodError: de.interactive_instruments.etf.testdriver.sui.SuiTestDriver.setLifeCycleMediator(Lde/interactive_instruments/etf/testdriver/ExecutableTestSuiteLifeCycleListenerMediator;)V at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testDriverController': Invocation of init method failed; nested exception is java.lang.AbstractMethodError: de.interactive_instruments.etf.testdriver.sui.SuiTestDriver.setLifeCycleMediator(Lde/interactive_instruments/etf/testdriver/ExecutableTestSuiteLifeCycleListenerMediator;)V at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ... 53 common frames omitted Caused by: java.lang.AbstractMethodError: de.interactive_instruments.etf.testdriver.sui.SuiTestDriver.setLifeCycleMediator(Lde/interactive_instruments/etf/testdriver/ExecutableTestSuiteLifeCycleListenerMediator;)V at de.interactive_instruments.etf.testdriver.ComponentContainer.loadAndInit(ComponentContainer.java:134) at de.interactive_instruments.etf.testdriver.TestDriverLoader.load(TestDriverLoader.java:126) at de.interactive_instruments.etf.testdriver.TestDriverLoader.load(TestDriverLoader.java:139) at de.interactive_instruments.etf.testdriver.DefaultTestDriverManager.loadAll(DefaultTestDriverManager.java:67) at de.interactive_instruments.etf.weapp.controller.TestDriverController.init(TestDriverController.java:117)

jonherrmann commented 7 years ago

Reference deleted

elisabettastruzzi commented 7 years ago

I notice that installing the latest ETF-Webapp on Tomcat, I obtain the same error then above.

jonherrmann commented 7 years ago

During development, we use the same version for the test drivers. Therefore changed Test Drivers can not be determined by the webapp and it tries to load old drivers you have deployed before. These are not compatible with the current version

Workaround:

On the basis of the version number, changed test drivers will be detected automatically, when ETF is released.