Le lun. 19 nov. 2018 17:58, Bruno Baptista <bruno...@gmail.com> a écrit :

> Thanks Romain,
>
> It's good to know. Where is that configuration?
>

https://github.com/apache/tomee/blob/master/container/openejb-core/src/main/resources/default.exclusions
and
https://github.com/apache/tomee/commit/23f44b17e6ab504561f32aa4ae92f2521e07261e


> However, the problem is before that... The test with the interceptor,
> somehow fails to load the alternative, which has me very puzzled.
>
> Cheers.
>
> Bruno Baptista
> http://twitter.com/brunobat_
>
>
> On 19/11/18 16:45, Romain Manni-Bucau wrote:
> > Le lun. 19 nov. 2018 à 16:59, Roberto Cortez <radcor...@yahoo.com.invalid
> >
> > a écrit :
> >
> >> Hi,
> >>
> >> We had that project before, and we ended up dropping with the
> >> justification that the libs should handle all of that.
> >>
> >> Not saying not to do it and I just don’t want to see code being blocked
> >> again for the same reason :)
> >>
> >> Cheers,
> >> Roberto
> >>
> >>> On 19 Nov 2018, at 15:31, Bruno Baptista <bruno...@gmail.com> wrote:
> >>>
> >>> Hi Romain,
> >>>
> >>> In relation to the name of the lib to be /geronimo-safeguard-tomee/
> >> instead of /tomee-microprofile-common/ I would advise against it
> because we
> >> can put other overrides and utility classes on it instead of creating a
> >> single lib for every particular spec/need.
> >>
> > Point was more that geronimo-* are scanned and not tomee-*, so was more
> > technical than semantic ;) - i'm almost happy if you call it
> > "makeitwork.jar" :D.
> >
> >
> >>> Feedback is appreciated on the intended scope and name of that library.
> >> Let's see what's the opinion of the community over it.
> >>> In relation to the /DefaultManagedScheduledExecutorService/
> >> configuration, you are right. Will add it as soon as the injection
> mystery
> >> is solved. Any feedback on the injection of the alternative bean will be
> >> appreciated because I'm kind of stuck now.
> >>> Cheers
> >>>
> >>> Bruno Baptista
> >>> http://twitter.com/brunobat_
> >>>
> >>>
> >>> On 19/11/18 15:13, Romain Manni-Bucau wrote:
> >>>> rename the lib geronimo-safeguard-tomee or include the common MP jar
> in
> >> the
> >>>> scanned modules?
> >>>>
> >>>> side note: i mentionned it @geronimo: you likely don't want to
> hardcode
> >> a
> >>>> default name which will either be replaced by another one, not be the
> >>>> default one or not be controllable by the user (
> >>>> DefaultManagedScheduledExecutorService) so probably use tomee to
> inject
> >> a
> >>>> configuration (@Resource MicroprofileConfiguration config; in your
> >> common
> >>>> module) and then lookup the instance using tomee internal
> >> (containersystem
> >>>> -> jndicontext? for instance). Not a big thing but if not done users
> >> will
> >>>> have to code this bean themselves to control it I think.
> >>>>
> >>>> Romain Manni-Bucau
> >>>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >>>> <https://rmannibucau.metawerx.net/> | Old Blog
> >>>> <http://rmannibucau.wordpress.com> | Github <
> >> https://github.com/rmannibucau> |
> >>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> >>>> <
> >>
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >>>>
> >>>> Le lun. 19 nov. 2018 à 15:24, Bruno Baptista <bruno...@gmail.com> a
> >> écrit :
> >>>>> Hi All,
> >>>>>
> >>>>> I created a PR to make the discussion easier. It's here:
> >>>>> https://github.com/apache/tomee/pull/201
> >>>>>
> >>>>> There's another problem with the alternative bean implementation.
> After
> >>>>> including the SafeguardInterceptor in the test, the bean,
> >>>>> FailsafeContainerExecutionManagerProvider, is never picked up.
> >>>>>
> >>>>> I've played a bit with the priorities of both the interceptor and the
> >>>>> alternative without success.
> >>>>>
> >>>>> We still need to figure out a CDI extension to activate the code on
> >>>>> TomEE, but first, the existing test has to work on it's own.
> >>>>>
> >>>>> Cheers.
> >>>>>
> >>>>> Bruno Baptista
> >>>>> http://twitter.com/brunobat_
> >>>>>
> >>>>>
> >>>>> On 19/11/18 10:56, Bruno Baptista wrote:
> >>>>>> Hi Jon,
> >>>>>>
> >>>>>> I'm not sure what would be the right way to load that code.
> >>>>>>
> >>>>>> But now that you mention it, a CDI extension sounds the proper way
> to
> >>>>>> do it. The code now loads properly. Thanks!
> >>>>>>
> >>>>>> Will create a PR soon.
> >>>>>>
> >>>>>> Bruno Baptista
> >>>>>> http://twitter.com/brunobat_
> >>>>>>
> >>>>>>
> >>>>>> On 19/11/18 10:41, Jonathan Gallimore wrote:
> >>>>>>> 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
> >>>>>>> <mailto: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>  <mailto: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>
> >>>>> <mailto: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 Baptista
> >>>>>>>>>>>>      https://twitter.com/brunobat_
> >>>>>>>>>>>>      http://tomitribe.com
> >>>>>>>>>>>>      https://tribestream.io
> >>>>>>>>>>>>      Bruno Baptista
> >>>>>>>>>>>>      http://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>  <mailto:bruno...@gmail.com>  <
> bruno...@gmail.com>
> >>>>> <mailto: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_  <
> >>>>> http://twitter.com/brunobat_>
> >>>>>>>>>>>>
> >>
>

Reply via email to