Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

smallrye-fault-tolerance 1.0.4 changes public interface, protean-shamrock fails to build #433

Closed
rsvoboda opened this issue Jan 5, 2019 · 1 comment · Fixed by #439
Closed
Assignees
Milestone

Comments

@rsvoboda
Copy link
Member

rsvoboda commented Jan 5, 2019

smallrye-fault-tolerance 1.0.4 changes FaultToleranceOperationProvider interface, protean-shamrock fails to build. Public API changes on micro version are bit unpleasant.

smallrye-fault-tolerance API changes were introduced by @mkouba in smallrye/smallrye-fault-tolerance@3c9a1e3

I tried to change extensions/fault-tolerance/runtime/src/main/java/org/jboss/shamrock/faulttolerance/runtime/ShamrockFaultToleranceOperationProvider.java

-    public FaultToleranceOperation apply(Method method) {
-        return FaultToleranceOperation.of(method);
+    public FaultToleranceOperation get(Class<?> beanClass, Method method) {
+        return FaultToleranceOperation.of(beanClass, method);

But the build doesn't pass the tests

[ERROR] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.923 s <<< FAILURE! - in org.jboss.shamrock.example.test.RequestScopeTestCase
...
 Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: InjectionPointInfo 
 [requiredType=io.smallrye.faulttolerance.CommandListenersProvider,
 requiredQualifiers=[@Default]] on INTERCEPTOR bean [bindings=[@HystrixCommandBinding],
 target=Optional[io.smallrye.faulttolerance.HystrixCommandInterceptor]]
	at org.jboss.protean.arc.processor.Beans.resolveInjectionPoint(Beans.java:315)
	at org.jboss.protean.arc.processor.BeanInfo.init(BeanInfo.java:328)
	at org.jboss.protean.arc.processor.BeanDeployment.init(BeanDeployment.java:264)
	at org.jboss.protean.arc.processor.BeanProcessor.process(BeanProcessor.java:152)
	at org.jboss.shamrock.arc.deployment.ArcAnnotationProcessor.build(ArcAnnotationProcessor.java:201)
	at org.jboss.shamrock.arc.deployment.ArcAnnotationProcessorBuildStep1.execute(Unknown Source)
	at org.jboss.builder.BuildContext.run(BuildContext.java:401)
...

@mkouba can you please look into it ?

@mkouba
Copy link
Contributor

mkouba commented Jan 7, 2019

@rsvoboda FaultToleranceOperationProvider is not intended to be part of the public API but more like an integrator SPI. I agree that it's not the best idea to introduce similar changes in minor versions but we needed to fix a bug and since Thorntail was the only integrator and there was no other feature added we decided to go with micro version.

I'll look at it today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants