OK, I get it. So the HttpServletRequest request has been injected
automatically just when we declare it in the method signatures.
Is there any difference between this declaration and the @Autowired ?
Do we need to guarantee that this is thread-safe ?

anyway, these should be documented very well and make sure the users
understand the usages.


Zhang Lei <coolbee...@gmail.com> 于2019年11月14日周四 上午10:51写道:

> We can refer to the method annotation of spring MVC. The parameter
> HttpServletRequest is optional
>
> @RequestMapping(xxxx)
> public void doXXXX(HttpServletRequest request){
>
> }
>
> Best regards,
> Lei Zhang
>
> On November 14, 2019 at 10:06:57 AM, Zheng Feng (zh.f...@gmail.com) wrote:
>
> But how can we reference this parameter in the method ? I don't think the
> Java support this kind of syntax.
>
> Willem Jiang <willem.ji...@gmail.com> 于2019年11月14日周四 上午9:43写道:
>
> > Can I invoke the booking method like this ?
> > booking().
> >
> > Then, the OmegaContext would be inject as a parameter?
> >
> > Willem Jiang
> >
> > Twitter: willemjiang
> > Weibo: 姜宁willem
> >
> > On Thu, Nov 14, 2019 at 9:34 AM Zheng Feng <zh.f...@gmail.com> wrote:
> > >
> > > So it could introduce an annotation or use the @Resource just like
> > > @SagaStart
> > > public void booking(@Resource OmegaContext context) {
> > > ...
> > > }
> > >
> > > and we also can inject the OmegaContext during invoking the method.
> > >
> > > Zhang Lei <coolbee...@gmail.com> 于2019年11月13日周三 下午11:42写道:
> > >
> > > > Hi, Zheng Feng
> > > >
> > > > Both are ok.
> > > >
> > > > I saw in [1] that the TransactionContext is passed using parameters.
> I
> > just
> > > > recommend passing some parameters in a consistent way.
> > > >
> > > > [1]
> > > >
> > > >
> >
>
> https://issues.apache.org/jira/browse/SCB-785?focusedCommentId=16561332&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16561332
> > > >
> > > > Best regards,
> > > > Lei Zhang
> > > >
> > > > On November 13, 2019 at 9:45:58 PM, Zheng Feng (zh.f...@gmail.com)
> > wrote:
> > > >
> > > > I'm not very clear what could be benefited from these changes ? with
> > > > declaring the OmegaContext explicitly ?
> > > >
> > > > Willem Jiang <willem.ji...@gmail.com> 于2019年11月13日周三 下午3:47写道:
> > > >
> > > > > If it is optional, we need to inject the OmegaContext dynamically
> and
> > > > > provide a wrap method for it.
> > > > >
> > > > > Willem Jiang
> > > > >
> > > > > Twitter: willemjiang
> > > > > Weibo: 姜宁willem
> > > > >
> > > > > On Wed, Nov 13, 2019 at 3:42 PM Zhang Lei <coolbee...@gmail.com>
> > wrote:
> > > > > >
> > > > > > Hi, Willem Jiang
> > > > > >
> > > > > > I think OmegaContext is an optional parameter in the method
> > > > > >
> > > > > >
> > > > > > Best regards,
> > > > > > Lei Zhang
> > > > > >
> > > > > > On November 13, 2019 at 2:48:08 PM, Willem Jiang (
> > > > willem.ji...@gmail.com
> > > > > )
> > > > > > wrote:
> > > > > >
> > > > > > Just a quick question, if user call the booking() method, he need
> > to
> > > > > > pass the OmegaContext as a parameter.
> > > > > > What if the invoker doesn't know anything about the OmegaContext.
> > > > > >
> > > > > >
> > > > > > Willem Jiang
> > > > > >
> > > > > > Twitter: willemjiang
> > > > > > Weibo: 姜宁willem
> > > > > >
> > > > > > On Tue, Nov 12, 2019 at 11:34 PM Zhang Lei <coolbee...@gmail.com
> >
> > > > wrote:
> > > > > > >
> > > > > > > Hi, Pack Team
> > > > > > >
> > > > > > > Currently, the @Autowired annotation is required to get the
> > > > > OmegaContext
> > > > > > on
> > > > > > > the Omega side, but most of the early use does not know the
> > existence
> > > > > of
> > > > > > > the OmegaContext object.
> > > > > > >
> > > > > > > @Autowired
> > > > > > > OmegaContext omegaContext;
> > > > > > >
> > > > > > > @SagaStart
> > > > > > > public void booking() {
> > > > > > > omegaContext.globalTxId()
> > > > > > > ...
> > > > > > > }
> > > > > > >
> > > > > > > @Compensable(compensationMethod="cancel")
> > > > > > > public void car(String from, int amount) {
> > > > > > > omegaContext.globalTxId()
> > > > > > > ...
> > > > > > > }
> > > > > > >
> > > > > > >
> > > > > > > Maybe we should allow the user to get the OmegaContext via
> method
> > > > > > > parameters. Use the method below to define the OmegaContext
> > > > parameter.
> > > > > > >
> > > > > > > @SagaStart
> > > > > > > public void booking(OmegaContext omegaContext) {
> > > > > > > omegaContext.globalTxId()
> > > > > > > ...
> > > > > > > }
> > > > > > >
> > > > > > > @Compensable(compensationMethod="cancel")
> > > > > > > public void car(OmegaContext omegaContext, String from, int
> > amount) {
> > > > > > > omegaContext.globalTxId()
> > > > > > > ...
> > > > > > > }
> > > > > > >
> > > > > > > Any suggestion?
> > > > > > >
> > > > > > > Best regards,
> > > > > > > Lei Zhang
> > > > >
> > > >
> >
>

Reply via email to