iti-ict / wakamiti

BDD testing tool using step libraries
https://iti-ict.github.io/wakamiti/
Mozilla Public License 2.0
33 stars 5 forks source link

Falta dependencia el plugin rest #239

Closed mgalbis closed 6 days ago

mgalbis commented 6 months ago

Al usar el paso de comprobar esquema de la respuesta, da un error porque le falta una librería:

la respuesta cumple el siguiente esquema: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
stack trace:
es.iti.wakamiti.api.WakamitiException: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
    at es.iti.wakamiti.core.backend.RunnableStep.run(RunnableStep.java:122) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.backend.RunnableBackend.runStep(RunnableBackend.java:223) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.backend.RunnableBackend.runStep(RunnableBackend.java:92) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.runner.PlanNodeRunner.lambda$runStep$2(PlanNodeRunner.java:132) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at java.util.Optional.ifPresent(Unknown Source) ~[?:?]
    at es.iti.wakamiti.core.runner.PlanNodeRunner.runStep(PlanNodeRunner.java:132) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.runner.PlanNodeRunner.runNode(PlanNodeRunner.java:114) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?]
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:?]
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:?]
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
    at java.util.stream.ReferencePipeline.reduce(Unknown Source) ~[?:?]
    at java.util.stream.ReferencePipeline.max(Unknown Source) ~[?:?]
    at es.iti.wakamiti.core.runner.PlanNodeRunner.runChildren(PlanNodeRunner.java:126) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.runner.PlanNodeRunner.runNode(PlanNodeRunner.java:109) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?]
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:?]
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:?]
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
    at java.util.stream.ReferencePipeline.reduce(Unknown Source) ~[?:?]
    at java.util.stream.ReferencePipeline.max(Unknown Source) ~[?:?]
    at es.iti.wakamiti.core.runner.PlanNodeRunner.runChildren(PlanNodeRunner.java:126) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.runner.PlanNodeRunner.runNode(PlanNodeRunner.java:109) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.runner.PlanRunner.run(PlanRunner.java:61) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.Wakamiti.executePlan(Wakamiti.java:345) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.launcher.WakamitiRunner.run(WakamitiRunner.java:53) ~[wakamiti-launcher.jar:?]
    at es.iti.wakamiti.launcher.WakamitiLauncher.main(WakamitiLauncher.java:71) ~[wakamiti-launcher.jar:?]
Caused by: java.lang.NoClassDefFoundError: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
    at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
    at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:?]
    at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
    at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:?]
    at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
    at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:?]
    at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at com.google.common.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3511) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3515) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2168) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache.get(LocalCache.java:4011) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4034) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5010) ~[guava-32.0.1-jre.jar:?]
    at com.github.fge.jsonschema.core.processing.CachingProcessor.process(CachingProcessor.java:122) ~[json-schema-core-1.2.14.jar:?]
    at com.github.fge.jsonschema.processors.validation.InstanceValidator.process(InstanceValidator.java:109) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.processors.validation.ValidationProcessor.process(ValidationProcessor.java:56) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.processors.validation.ValidationProcessor.process(ValidationProcessor.java:34) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.core.processing.ProcessingResult.of(ProcessingResult.java:79) ~[json-schema-core-1.2.14.jar:?]
    at com.github.fge.jsonschema.main.JsonSchemaImpl.doValidate(JsonSchemaImpl.java:77) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.main.JsonSchemaImpl.validate(JsonSchemaImpl.java:100) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.main.JsonSchemaImpl.validate(JsonSchemaImpl.java:110) ~[json-schema-validator-2.2.14.jar:?]
    at io.restassured.module.jsv.JsonSchemaValidator.matchesSafely(JsonSchemaValidator.java:227) ~[json-schema-validator-5.3.1.jar:?]
    at io.restassured.module.jsv.JsonSchemaValidator.matchesSafely(JsonSchemaValidator.java:75) ~[json-schema-validator-5.3.1.jar:?]
    at org.hamcrest.TypeSafeMatcher.matches(TypeSafeMatcher.java:67) ~[hamcrest-2.2.jar:2.2]
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:10) ~[hamcrest-2.2.jar:2.2]
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6) ~[hamcrest-2.2.jar:2.2]
    at es.iti.wakamiti.rest.helpers.JSONHelper.assertContentSchema(JSONHelper.java:65) ~[rest-wakamiti-plugin-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.rest.RestSupport.assertContentSchema(RestSupport.java:254) ~[rest-wakamiti-plugin-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.rest.RestStepContributor.assertBodyContentSchema(RestStepContributor.java:498) ~[rest-wakamiti-plugin-2.3.3.jar:2.3.3]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
    at es.iti.wakamiti.core.backend.DefaultBackendFactory.lambda$createRunnableStep$4(DefaultBackendFactory.java:398) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.backend.RunnableStep.run(RunnableStep.java:114) ~[wakamiti-core-2.3.3.jar:2.3.3]
    ... 30 more
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.internal.InternalFutureFailureAccess
    at jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
    at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:?]
    at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
    at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:?]
    at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
    at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:?]
    at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source) ~[?:?]
    at jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at com.google.common.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3511) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3515) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2168) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache.get(LocalCache.java:4011) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4034) ~[guava-32.0.1-jre.jar:?]
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5010) ~[guava-32.0.1-jre.jar:?]
    at com.github.fge.jsonschema.core.processing.CachingProcessor.process(CachingProcessor.java:122) ~[json-schema-core-1.2.14.jar:?]
    at com.github.fge.jsonschema.processors.validation.InstanceValidator.process(InstanceValidator.java:109) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.processors.validation.ValidationProcessor.process(ValidationProcessor.java:56) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.processors.validation.ValidationProcessor.process(ValidationProcessor.java:34) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.core.processing.ProcessingResult.of(ProcessingResult.java:79) ~[json-schema-core-1.2.14.jar:?]
    at com.github.fge.jsonschema.main.JsonSchemaImpl.doValidate(JsonSchemaImpl.java:77) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.main.JsonSchemaImpl.validate(JsonSchemaImpl.java:100) ~[json-schema-validator-2.2.14.jar:?]
    at com.github.fge.jsonschema.main.JsonSchemaImpl.validate(JsonSchemaImpl.java:110) ~[json-schema-validator-2.2.14.jar:?]
    at io.restassured.module.jsv.JsonSchemaValidator.matchesSafely(JsonSchemaValidator.java:227) ~[json-schema-validator-5.3.1.jar:?]
    at io.restassured.module.jsv.JsonSchemaValidator.matchesSafely(JsonSchemaValidator.java:75) ~[json-schema-validator-5.3.1.jar:?]
    at org.hamcrest.TypeSafeMatcher.matches(TypeSafeMatcher.java:67) ~[hamcrest-2.2.jar:2.2]
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:10) ~[hamcrest-2.2.jar:2.2]
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6) ~[hamcrest-2.2.jar:2.2]
    at es.iti.wakamiti.rest.helpers.JSONHelper.assertContentSchema(JSONHelper.java:65) ~[rest-wakamiti-plugin-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.rest.RestSupport.assertContentSchema(RestSupport.java:254) ~[rest-wakamiti-plugin-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.rest.RestStepContributor.assertBodyContentSchema(RestStepContributor.java:498) ~[rest-wakamiti-plugin-2.3.3.jar:2.3.3]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
    at es.iti.wakamiti.core.backend.DefaultBackendFactory.lambda$createRunnableStep$4(DefaultBackendFactory.java:398) ~[wakamiti-core-2.3.3.jar:2.3.3]
    at es.iti.wakamiti.core.backend.RunnableStep.run(RunnableStep.java:114) ~[wakamiti-core-2.3.3.jar:2.3.3]
    ... 30 more

La libreria pertenece a la dependencia com.google.guava:failureaccess:1.0.2.

EDITADO:

Hay dependencias que maven-fetcher no puede resolver, como por ejemplo com.google.guava:guava:33.1.0-jre

[ERROR] Failed to determine Java version for profile javadocs-jdk11-12 @ com.google.guava:guava-parent:33.1.0-jre
[ERROR] Failed to determine Java version for profile open-jre-modules @ com.google.guava:guava-parent:33.1.0-jre
[ERROR] Failed to determine Java version for profile javac9-for-jdk8 @ com.google.guava:guava-parent:33.1.0-jre
[ERROR] Failed to determine Java version for profile run-error-prone @ com.google.guava:guava-parent:33.1.0-jre
[ERROR] Failed to determine Java version for profile javac-for-jvm18plus @ com.google.guava:guava-parent:33.1.0-jre

Estos errores concretos ocurren en la línea 302 de org.apache.maven.model.building.DefaultModelBuilder:

List<Profile> activePomProfiles = profileSelector.getActiveProfiles(rawModel.getProfiles(), profileActivationContext, problems);

Esto provoca que no se descarguen todas las dependencias y provoque este error.

mgalbis commented 3 months ago

Solución encontrada en: https://github.com/nebula-plugins/nebula-dependency-recommender-plugin/issues/45#issuecomment-288812908

mgalbis commented 1 month ago
mgalbis commented 6 days ago

Se actualiza librería maven-fetcher a la versión 1.7.1