I haven't seen the code, so its difficult to suggest anything - where would you expect it to be loaded - in a CDI extension?
On Mon, Nov 19, 2018 at 10:31 AM Bruno Baptista <bruno...@gmail.com> wrote: > Hi all, > > I've created a jira for this task to properly track the commits: > https://issues.apache.org/jira/browse/TOMEE-2278 > > Right now I have a problem activating the code... The code is in the lib > folder but it's not being loaded into the classpath. > > Do I need to create some kind of a service like this? > > Or am I missing to declare it in some xml file? > > Cheers > Bruno Baptista > http://twitter.com/brunobat_ > > > On 18/11/18 12:55, Bruno Baptista wrote: > > Hi All, > > I came up with a test that successfully overrides the original > *FailsafeExecutionManagerProvider* Safeguard class. > > It was a bit of a surprise but, in this case, beans.xml is useless because > "The alternatives that you specify in the beans.xml file apply only to > classes in the same archive." see: > https://docs.oracle.com/javaee/7/tutorial/cdi-adv002.htm > > Because the beans are in different jar files, priority has to be used > instead: > > @Priority(Interceptor.Priority.APPLICATION+10) > The precise priority might need to be fine tuned because of the fault > tolerance interceptor... Will have to test the final behavior. > > Also, we probably need to reorganize the tomee-microprofile-webapp > project... > This is needed because the code overriding the bean needs to be in a > library and this project only creates a war file, which is in fact a > container for the bundled libraries. The classes we place in there will not > be in the final server. > > I'm thinking on something like: > > tomee > | > --- tomee-microprofile > | > --- tomee-microprofile-common (The JAR > to be included in .../lib) > | > --- tomee-microprofile-webapp (The > same as now with an additional dependency) > > Cheers. > > Bruno Baptista > http://twitter.com/brunobat_ > > > On 16/11/18 16:26, Bruno Baptista wrote: > > Hi Romain, > > Yeah... @Resource would be the right thing to use in order to inject the > managed resource. Something like this: > > @Resource(name = "DefaultManagedScheduledExecutorService") > private ManagedScheduledExecutorService executor; > Creating the test now. > Thanks for the help Romain. > > Bruno Baptista > http://twitter.com/brunobat_ > > > On 16/11/18 16:07, Romain Manni-Bucau wrote: > > FYI this works: > > > @ApplicationScoped > public class CustomProvider extends FailsafeExecutionManagerProvider { > @Override > @Produces > @Specializes > @ApplicationScoped > public ExecutionManager createExecutionManager() { > return new FailsafeExecutionManager() { > @Override // hardcoded impl for testing purposes > public Object execute(final InvocationContext invocationContext) { > return "replaced"; > } > }; > } > } > > > Side note: did you want to use @Resource for the executor injection? > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> > <https://twitter.com/rmannibucau> | Blog<https://rmannibucau.metawerx.net/> > <https://rmannibucau.metawerx.net/> | Old > Blog<http://rmannibucau.wordpress.com> <http://rmannibucau.wordpress.com> | > Github <https://github.com/rmannibucau> <https://github.com/rmannibucau> | > LinkedIn <https://www.linkedin.com/in/rmannibucau> > <https://www.linkedin.com/in/rmannibucau> | > Book<https://www.packtpub.com/application-development/java-ee-8-high-performance> > <https://www.packtpub.com/application-development/java-ee-8-high-performance> > > > Le ven. 16 nov. 2018 à 14:54, Romain Manni-Bucau <rmannibu...@gmail.com> > <rmannibu...@gmail.com> a > écrit : > > > Hi Bruno, > > I assume the alternative is activated in the beans.xml? (if not try adding > a @Priority maybe or just drop the annotation which should be useless) > > If it is i'd start by writing a small test (with application composer) to > check if it is a bug in tomee cause this is how it must work > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> > <https://twitter.com/rmannibucau> | Blog<https://rmannibucau.metawerx.net/> > <https://rmannibucau.metawerx.net/> | Old > Blog<http://rmannibucau.wordpress.com> <http://rmannibucau.wordpress.com> | > Github<https://github.com/rmannibucau> <https://github.com/rmannibucau> | > LinkedIn<https://www.linkedin.com/in/rmannibucau> > <https://www.linkedin.com/in/rmannibucau> | > Book<https://www.packtpub.com/application-development/java-ee-8-high-performance> > <https://www.packtpub.com/application-development/java-ee-8-high-performance> > > > Le ven. 16 nov. 2018 à 12:44, Bruno Baptista <bruno...@gmail.com> > <bruno...@gmail.com> a > écrit : > > > Hi Roman, > > This is what I did and it doesn't work. The original bean is always > picked up: > > @Specializes@Alternative@ApplicationScopedpublic class > FailsafeContainerExecutionManagerProvider extends > FailsafeExecutionManagerProvider { > > @Inject private ManagedScheduledExecutorService executor; > > @Produces @ApplicationScoped @Override public ExecutionManager > createExecutionManager() throws Exception { > > > final MicroprofileAnnotationMapper mapper = > MicroprofileAnnotationMapper.getInstance(); > final DefaultExecutorServiceProvider executorServiceProvider = new > DefaultExecutorServiceProvider(executor); > final BulkheadManagerImpl bulkheadManager = new BulkheadManagerImpl(); > final FailsafeCircuitBreakerManager circuitBreakerManager = new > FailsafeCircuitBreakerManager(); > final FailsafeRetryManager retryManager = new FailsafeRetryManager(); > > return new FailsafeExecutionManager( > mapper, > bulkheadManager, > circuitBreakerManager, > retryManager, > new ExecutionPlanFactory(circuitBreakerManager, retryManager, > bulkheadManager, mapper, > executorServiceProvider), > executorServiceProvider); > } > } > > > I feel that this needs to be done in a different way... Would you be able > to point me to a similar override currently being done? > > Cheers > Bruno > Baptistahttps://twitter.com/brunobat_http://tomitribe.comhttps://tribestream.io > Bruno Baptistahttp://twitter.com/brunobat_ > > > On 16/11/18 10:28, Romain Manni-Bucau wrote: > > Hi Bruno, > > it is a palin bean so @Specializes works, did you put it on the method? > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> > <https://twitter.com/rmannibucau> <https://twitter.com/rmannibucau> > <https://twitter.com/rmannibucau> | Blog<https://rmannibucau.metawerx.net/> > <https://rmannibucau.metawerx.net/> <https://rmannibucau.metawerx.net/> > <https://rmannibucau.metawerx.net/> | Old > Blog<http://rmannibucau.wordpress.com> <http://rmannibucau.wordpress.com> > <http://rmannibucau.wordpress.com> <http://rmannibucau.wordpress.com> | > Github <https://github.com/rmannibucau> <https://github.com/rmannibucau> > <https://github.com/rmannibucau> <https://github.com/rmannibucau> | > LinkedIn <https://www.linkedin.com/in/rmannibucau> > <https://www.linkedin.com/in/rmannibucau> > <https://www.linkedin.com/in/rmannibucau> > <https://www.linkedin.com/in/rmannibucau> | > Book<https://www.packtpub.com/application-development/java-ee-8-high-performance> > > <https://www.packtpub.com/application-development/java-ee-8-high-performance> > <https://www.packtpub.com/application-development/java-ee-8-high-performance> > <https://www.packtpub.com/application-development/java-ee-8-high-performance> > > > Le ven. 16 nov. 2018 à 11:00, Bruno Baptista <bruno...@gmail.com> > <bruno...@gmail.com> <bruno...@gmail.com> <bruno...@gmail.com> a écrit : > > > Hi all, > > We have a problem with the integration of the Safeguard Fault Tolerance > library on TomEE 8 and I need help to solve it. This is a follow up to > the original email thread, from Oct 3, in the Geronimo mailing list, > where we decided to do perform the override in the container side. > > I need to override the starting point for the library, originally here: > https://github.com/apache/geronimo-safeguard/blob/master/safeguard-impl/src/main/java/org/apache/safeguard/impl/cdi/FailsafeExecutionManagerProvider.java > > Because it's not using a managed executor service from TomEE... Like > this one: "java:comp/DefaultManagedScheduledExecutorService" > > I Expect to do the wiring in here > .../apache-tomee/tomee/tomee-microprofile-webapp/src > > Like using a @Specializes bean or something, but I think we cannot do > that there. Could someone help me wire up this new bean? > > I had a PR to fix this the lib itself but it was decided not to move > with it. For the curious, it's > here:https://github.com/apache/geronimo-safeguard/pull/2 > > Cheers > -- > Bruno Baptistahttp://twitter.com/brunobat_ > > >