You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Bruno Baptista <br...@gmail.com> on 2019/01/08 17:05:02 UTC

Upgrade to Safeguard 1.2

Hi folks,

This is a status update on the upgrade of Safeguard.

I was able to fix most issues, but a deeper problem remains.

When an app is being deployed, the /SafeguardExtension/ goes over it's 
annotations and if something wrong is detected, a /DefinitionException/ 
is thrown, as expected. This works perfectly in the standalone library.

The problem is that TomEE sees that exception through OpenWebBeans, 
where the exception is swollen here:

https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129

Thus, the Arquillian deployment doesn't receive /DefinitionException as 
expected/ but a /DeploymentException/.

Any suggestion on how to tackle this?

There is a work in progress here: https://github.com/apache/tomee/pull/365

Cheers

-- 
Bruno Baptista
https://twitter.com/brunobat_



Re: Upgrade to Safeguard 1.2

Posted by Jean-Louis Monteiro <jl...@tomitribe.com>.
Ok i have reviewed it and it’s good to go. Lemme merge it for you.

Le ven. 11 janv. 2019 à 09:07, Bruno Baptista <br...@gmail.com> a écrit :

> The new test run was successful.
>
> It's ready for review.
>
> Bruno Baptista
> https://twitter.com/brunobat_
>
>
> On 10/01/19 21:49, Bruno Baptista wrote:
> > Thanks Jean-Louis. It's appreciated. :)
> >
> > The problem seems to be the testng version. Some TCK tests, on Config
> > and JWT don't like the new v6.14.3. Will keep the old v6.8.21 globaly
> > and override on the Fault Tolerance TCK.
> >
> > We will have to come up with a migration plan.
> >
> > I'm going to run all the tests again.
> >
> > Cheers.
> >
> > Bruno Baptista
> > https://twitter.com/brunobat_
> >
> >
> > On 10/01/19 20:11, Jean-Louis Monteiro wrote:
> >> We can go step by step, it's fine if it's not perfect.
> >> --
> >> Jean-Louis Monteiro
> >> http://twitter.com/jlouismonteiro
> >> http://www.tomitribe.com
> >>
> >>
> >> On Thu, Jan 10, 2019 at 3:43 PM Bruno Baptista <br...@gmail.com>
> >> wrote:
> >>
> >>> Talked too soon. I found some issues. Investigating now.
> >>>
> >>> Bruno Baptista
> >>> https://twitter.com/brunobat_
> >>>
> >>>
> >>> On 10/01/19 14:34, Bruno Baptista wrote:
> >>>> I've run the full build and it was green.
> >>>>
> >>>> It should be good to go.
> >>>>
> >>>> Bruno Baptista
> >>>> https://twitter.com/brunobat_
> >>>>
> >>>>
> >>>> On 09/01/19 23:24, Bruno Baptista wrote:
> >>>>> Hi,
> >>>>>
> >>>>> The PR to integrate the latest Safeguard into TomEE is ready for
> >>>>> review here: https://github.com/apache/tomee/pull/365/
> >>>>>
> >>>>> The TCK now passes with TomEE.
> >>>>>
> >>>>> [INFO] Results:
> >>>>> [INFO]
> >>>>> [INFO] Tests run: 213, Failures: 0, Errors: 0, Skipped: 0
> >>>>> [INFO]
> >>>>> [INFO]
> >>>>>
> >>>>> I'll run a full build tomorrow because this upgrades a few
> >>>>> crosscutting libraries.
> >>>>>
> >>>>> Cheers
> >>>>>
> >>>>> Bruno Baptista
> >>>>> https://twitter.com/brunobat_
> >>>>>
> >>>>>
> >>>>> On 08/01/19 18:06, Bruno Baptista wrote:
> >>>>>> I think I found the problem.
> >>>>>>
> >>>>>> The old version uses a different lifecycle event to declare the
> >>>>>> errors:
> >>>>>>
> >>>>>> public void throwExceptions(@Observes AfterBeanDiscovery
> >>> afterBeanDiscovery) {
> >>>
> microProfileValidator.forThrowable(afterBeanDiscovery::addDefinitionError);
> >>>
> >>>>>> }
> >>>>>>
> >>>>>> The new one:
> >>>>>> void addDefinitionErrors(@Observes AfterDeploymentValidation
> >>> validation) {
> >>>
> this.beansToValidate.stream().map(this::validate).filter(Objects::nonNull).forEach(validation::addDeploymentProblem);
>
> >>>
> >>>>>> this.beansToValidate.clear();
> >>>>>> }
> >>>>>> /AfterBeanDiscovery/ happens before /AfterDeploymentValidation/.
> >>>>>> My guess is that /AfterDeploymentValidation/ should not be used to
> >>>>>> declare actual deployment problems.
> >>>>>> This is probably a Safegard bug.
> >>>>>>
> >>>>>> Cheers
> >>>>>>
> >>>>>> Bruno Baptista
> >>>>>> https://twitter.com/brunobat_
> >>>>>>
> >>>>>>
> >>>>>> On 08/01/19 17:53, Roberto Cortez wrote:
> >>>>>>> Yes, it was using a DefinitionException, but it shouldn’t matter
> >>>>>>> that
> >>> much, since the problem should happen anyway as you describe.
> >>>>>>>> On 8 Jan 2019, at 17:27, Bruno Baptista<br...@gmail.com>
> >>>>>>>> wrote:
> >>>>>>>>
> >>>>>>>> Correct, but on the TCK, the FaultToleranceDefinitionException has
> >>> not been released yet...
> >>>>>>>> I was also wondering about the old version while I was going for
> >>> some tea...
> >>>>>>>> I'll run the same test on the old version and see want happens.
> >>>>>>>>
> >>>>>>>> Bruno Baptista
> >>>>>>>> https://twitter.com/brunobat_
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 08/01/19 17:24, Roberto Cortez wrote:
> >>>>>>>>> Hum, I wonder how was that working before with the old version?
> >>>>>>>>>
> >>>>>>>>> Are the expected exceptions new in the TCK? Looking into the
> >>>>>>>>> code,
> >>> it seems they are there since 2017, and actually you changed the expect
> >>> from DefinitionException to FaultToleranceDefinitionException.
> >>>>>>>>> Anyway, in the previous Safeguard version the TCK executed fine,
> >>> and I guess the exception assertion was being done correctly, right?
> >>>>>>>>>> On 8 Jan 2019, at 17:05, Bruno Baptista<br...@gmail.com>
> >>> wrote:
> >>>>>>>>>> Hi folks,
> >>>>>>>>>>
> >>>>>>>>>> This is a status update on the upgrade of Safeguard.
> >>>>>>>>>>
> >>>>>>>>>> I was able to fix most issues, but a deeper problem remains.
> >>>>>>>>>>
> >>>>>>>>>> When an app is being deployed, the /SafeguardExtension/ goes
> >>>>>>>>>> over
> >>> it's annotations and if something wrong is detected, a
> >>> /DefinitionException/ is thrown, as expected. This works perfectly
> >>> in the
> >>> standalone library.
> >>>>>>>>>> The problem is that TomEE sees that exception through
> >>> OpenWebBeans, where the exception is swollen here:
> >>>>>>>>>>
> >>>
> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
> >>>
> >>>>>>>>>> Thus, the Arquillian deployment doesn't receive
> >>> /DefinitionException as expected/ but a /DeploymentException/.
> >>>>>>>>>> Any suggestion on how to tackle this?
> >>>>>>>>>>
> >>>>>>>>>> There is a work in progress here:
> >>> https://github.com/apache/tomee/pull/365
> >>>>>>>>>> Cheers
> >>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>> Bruno Baptista
> >>>>>>>>>> https://twitter.com/brunobat_
> >>>>>>>>>>
> >>>>>>>>>>
>
-- 
--
Jean-Louis Monteiro
http://twitter.com/jlouismonteiro
http://www.tomitribe.com

Re: Upgrade to Safeguard 1.2

Posted by Bruno Baptista <br...@gmail.com>.
The new test run was successful.

It's ready for review.

Bruno Baptista
https://twitter.com/brunobat_


On 10/01/19 21:49, Bruno Baptista wrote:
> Thanks Jean-Louis. It's appreciated. :)
>
> The problem seems to be the testng version. Some TCK tests, on Config 
> and JWT don't like the new v6.14.3. Will keep the old v6.8.21 globaly 
> and override on the Fault Tolerance TCK.
>
> We will have to come up with a migration plan.
>
> I'm going to run all the tests again.
>
> Cheers.
>
> Bruno Baptista
> https://twitter.com/brunobat_
>
>
> On 10/01/19 20:11, Jean-Louis Monteiro wrote:
>> We can go step by step, it's fine if it's not perfect.
>> -- 
>> Jean-Louis Monteiro
>> http://twitter.com/jlouismonteiro
>> http://www.tomitribe.com
>>
>>
>> On Thu, Jan 10, 2019 at 3:43 PM Bruno Baptista <br...@gmail.com> 
>> wrote:
>>
>>> Talked too soon. I found some issues. Investigating now.
>>>
>>> Bruno Baptista
>>> https://twitter.com/brunobat_
>>>
>>>
>>> On 10/01/19 14:34, Bruno Baptista wrote:
>>>> I've run the full build and it was green.
>>>>
>>>> It should be good to go.
>>>>
>>>> Bruno Baptista
>>>> https://twitter.com/brunobat_
>>>>
>>>>
>>>> On 09/01/19 23:24, Bruno Baptista wrote:
>>>>> Hi,
>>>>>
>>>>> The PR to integrate the latest Safeguard into TomEE is ready for
>>>>> review here: https://github.com/apache/tomee/pull/365/
>>>>>
>>>>> The TCK now passes with TomEE.
>>>>>
>>>>> [INFO] Results:
>>>>> [INFO]
>>>>> [INFO] Tests run: 213, Failures: 0, Errors: 0, Skipped: 0
>>>>> [INFO]
>>>>> [INFO]
>>>>>
>>>>> I'll run a full build tomorrow because this upgrades a few
>>>>> crosscutting libraries.
>>>>>
>>>>> Cheers
>>>>>
>>>>> Bruno Baptista
>>>>> https://twitter.com/brunobat_
>>>>>
>>>>>
>>>>> On 08/01/19 18:06, Bruno Baptista wrote:
>>>>>> I think I found the problem.
>>>>>>
>>>>>> The old version uses a different lifecycle event to declare the 
>>>>>> errors:
>>>>>>
>>>>>> public void throwExceptions(@Observes AfterBeanDiscovery
>>> afterBeanDiscovery) {
>>> microProfileValidator.forThrowable(afterBeanDiscovery::addDefinitionError); 
>>>
>>>>>> }
>>>>>>
>>>>>> The new one:
>>>>>> void addDefinitionErrors(@Observes AfterDeploymentValidation
>>> validation) {
>>> this.beansToValidate.stream().map(this::validate).filter(Objects::nonNull).forEach(validation::addDeploymentProblem); 
>>>
>>>>>> this.beansToValidate.clear();
>>>>>> }
>>>>>> /AfterBeanDiscovery/ happens before /AfterDeploymentValidation/.
>>>>>> My guess is that /AfterDeploymentValidation/ should not be used to
>>>>>> declare actual deployment problems.
>>>>>> This is probably a Safegard bug.
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>> Bruno Baptista
>>>>>> https://twitter.com/brunobat_
>>>>>>
>>>>>>
>>>>>> On 08/01/19 17:53, Roberto Cortez wrote:
>>>>>>> Yes, it was using a DefinitionException, but it shouldn’t matter 
>>>>>>> that
>>> much, since the problem should happen anyway as you describe.
>>>>>>>> On 8 Jan 2019, at 17:27, Bruno Baptista<br...@gmail.com>  
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Correct, but on the TCK, the FaultToleranceDefinitionException has
>>> not been released yet...
>>>>>>>> I was also wondering about the old version while I was going for
>>> some tea...
>>>>>>>> I'll run the same test on the old version and see want happens.
>>>>>>>>
>>>>>>>> Bruno Baptista
>>>>>>>> https://twitter.com/brunobat_
>>>>>>>>
>>>>>>>>
>>>>>>>> On 08/01/19 17:24, Roberto Cortez wrote:
>>>>>>>>> Hum, I wonder how was that working before with the old version?
>>>>>>>>>
>>>>>>>>> Are the expected exceptions new in the TCK? Looking into the 
>>>>>>>>> code,
>>> it seems they are there since 2017, and actually you changed the expect
>>> from DefinitionException to FaultToleranceDefinitionException.
>>>>>>>>> Anyway, in the previous Safeguard version the TCK executed fine,
>>> and I guess the exception assertion was being done correctly, right?
>>>>>>>>>> On 8 Jan 2019, at 17:05, Bruno Baptista<br...@gmail.com>
>>> wrote:
>>>>>>>>>> Hi folks,
>>>>>>>>>>
>>>>>>>>>> This is a status update on the upgrade of Safeguard.
>>>>>>>>>>
>>>>>>>>>> I was able to fix most issues, but a deeper problem remains.
>>>>>>>>>>
>>>>>>>>>> When an app is being deployed, the /SafeguardExtension/ goes 
>>>>>>>>>> over
>>> it's annotations and if something wrong is detected, a
>>> /DefinitionException/ is thrown, as expected. This works perfectly 
>>> in the
>>> standalone library.
>>>>>>>>>> The problem is that TomEE sees that exception through
>>> OpenWebBeans, where the exception is swollen here:
>>>>>>>>>>
>>> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129 
>>>
>>>>>>>>>> Thus, the Arquillian deployment doesn't receive
>>> /DefinitionException as expected/ but a /DeploymentException/.
>>>>>>>>>> Any suggestion on how to tackle this?
>>>>>>>>>>
>>>>>>>>>> There is a work in progress here:
>>> https://github.com/apache/tomee/pull/365
>>>>>>>>>> Cheers
>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>>>> Bruno Baptista
>>>>>>>>>> https://twitter.com/brunobat_
>>>>>>>>>>
>>>>>>>>>>

Re: Upgrade to Safeguard 1.2

Posted by Bruno Baptista <br...@gmail.com>.
Thanks Jean-Louis. It's appreciated. :)

The problem seems to be the testng version. Some TCK tests, on Config 
and JWT don't like the new v6.14.3. Will keep the old v6.8.21 globaly 
and override on the Fault Tolerance TCK.

We will have to come up with a migration plan.

I'm going to run all the tests again.

Cheers.

Bruno Baptista
https://twitter.com/brunobat_


On 10/01/19 20:11, Jean-Louis Monteiro wrote:
> We can go step by step, it's fine if it's not perfect.
> --
> Jean-Louis Monteiro
> http://twitter.com/jlouismonteiro
> http://www.tomitribe.com
>
>
> On Thu, Jan 10, 2019 at 3:43 PM Bruno Baptista <br...@gmail.com> wrote:
>
>> Talked too soon. I found some issues. Investigating now.
>>
>> Bruno Baptista
>> https://twitter.com/brunobat_
>>
>>
>> On 10/01/19 14:34, Bruno Baptista wrote:
>>> I've run the full build and it was green.
>>>
>>> It should be good to go.
>>>
>>> Bruno Baptista
>>> https://twitter.com/brunobat_
>>>
>>>
>>> On 09/01/19 23:24, Bruno Baptista wrote:
>>>> Hi,
>>>>
>>>> The PR to integrate the latest Safeguard into TomEE is ready for
>>>> review here: https://github.com/apache/tomee/pull/365/
>>>>
>>>> The TCK now passes with TomEE.
>>>>
>>>> [INFO] Results:
>>>> [INFO]
>>>> [INFO] Tests run: 213, Failures: 0, Errors: 0, Skipped: 0
>>>> [INFO]
>>>> [INFO]
>>>>
>>>> I'll run a full build tomorrow because this upgrades a few
>>>> crosscutting libraries.
>>>>
>>>> Cheers
>>>>
>>>> Bruno Baptista
>>>> https://twitter.com/brunobat_
>>>>
>>>>
>>>> On 08/01/19 18:06, Bruno Baptista wrote:
>>>>> I think I found the problem.
>>>>>
>>>>> The old version uses a different lifecycle event to declare the errors:
>>>>>
>>>>> public void throwExceptions(@Observes AfterBeanDiscovery
>> afterBeanDiscovery) {
>> microProfileValidator.forThrowable(afterBeanDiscovery::addDefinitionError);
>>>>> }
>>>>>
>>>>> The new one:
>>>>> void addDefinitionErrors(@Observes AfterDeploymentValidation
>> validation) {
>> this.beansToValidate.stream().map(this::validate).filter(Objects::nonNull).forEach(validation::addDeploymentProblem);
>>>>>       this.beansToValidate.clear();
>>>>> }
>>>>> /AfterBeanDiscovery/ happens before /AfterDeploymentValidation/.
>>>>> My guess is that /AfterDeploymentValidation/ should not be used to
>>>>> declare actual deployment problems.
>>>>> This is probably a Safegard bug.
>>>>>
>>>>> Cheers
>>>>>
>>>>> Bruno Baptista
>>>>> https://twitter.com/brunobat_
>>>>>
>>>>>
>>>>> On 08/01/19 17:53, Roberto Cortez wrote:
>>>>>> Yes, it was using a DefinitionException, but it shouldn’t matter that
>> much, since the problem should happen anyway as you describe.
>>>>>>> On 8 Jan 2019, at 17:27, Bruno Baptista<br...@gmail.com>  wrote:
>>>>>>>
>>>>>>> Correct, but on the TCK, the FaultToleranceDefinitionException has
>> not been released yet...
>>>>>>> I was also wondering about the old version while I was going for
>> some tea...
>>>>>>> I'll run the same test on the old version and see want happens.
>>>>>>>
>>>>>>> Bruno Baptista
>>>>>>> https://twitter.com/brunobat_
>>>>>>>
>>>>>>>
>>>>>>> On 08/01/19 17:24, Roberto Cortez wrote:
>>>>>>>> Hum, I wonder how was that working before with the old version?
>>>>>>>>
>>>>>>>> Are the expected exceptions new in the TCK? Looking into the code,
>> it seems they are there since 2017, and actually you changed the expect
>> from DefinitionException to FaultToleranceDefinitionException.
>>>>>>>> Anyway, in the previous Safeguard version the TCK executed fine,
>> and I guess the exception assertion was being done correctly, right?
>>>>>>>>> On 8 Jan 2019, at 17:05, Bruno Baptista<br...@gmail.com>
>> wrote:
>>>>>>>>> Hi folks,
>>>>>>>>>
>>>>>>>>> This is a status update on the upgrade of Safeguard.
>>>>>>>>>
>>>>>>>>> I was able to fix most issues, but a deeper problem remains.
>>>>>>>>>
>>>>>>>>> When an app is being deployed, the /SafeguardExtension/ goes over
>> it's annotations and if something wrong is detected, a
>> /DefinitionException/ is thrown, as expected. This works perfectly in the
>> standalone library.
>>>>>>>>> The problem is that TomEE sees that exception through
>> OpenWebBeans, where the exception is swollen here:
>>>>>>>>>
>> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
>>>>>>>>> Thus, the Arquillian deployment doesn't receive
>> /DefinitionException as expected/ but a /DeploymentException/.
>>>>>>>>> Any suggestion on how to tackle this?
>>>>>>>>>
>>>>>>>>> There is a work in progress here:
>> https://github.com/apache/tomee/pull/365
>>>>>>>>> Cheers
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Bruno Baptista
>>>>>>>>> https://twitter.com/brunobat_
>>>>>>>>>
>>>>>>>>>

Re: Upgrade to Safeguard 1.2

Posted by Jean-Louis Monteiro <jl...@tomitribe.com>.
We can go step by step, it's fine if it's not perfect.
--
Jean-Louis Monteiro
http://twitter.com/jlouismonteiro
http://www.tomitribe.com


On Thu, Jan 10, 2019 at 3:43 PM Bruno Baptista <br...@gmail.com> wrote:

> Talked too soon. I found some issues. Investigating now.
>
> Bruno Baptista
> https://twitter.com/brunobat_
>
>
> On 10/01/19 14:34, Bruno Baptista wrote:
> >
> > I've run the full build and it was green.
> >
> > It should be good to go.
> >
> > Bruno Baptista
> > https://twitter.com/brunobat_
> >
> >
> > On 09/01/19 23:24, Bruno Baptista wrote:
> >>
> >> Hi,
> >>
> >> The PR to integrate the latest Safeguard into TomEE is ready for
> >> review here: https://github.com/apache/tomee/pull/365/
> >>
> >> The TCK now passes with TomEE.
> >>
> >> [INFO] Results:
> >> [INFO]
> >> [INFO] Tests run: 213, Failures: 0, Errors: 0, Skipped: 0
> >> [INFO]
> >> [INFO]
> >>
> >> I'll run a full build tomorrow because this upgrades a few
> >> crosscutting libraries.
> >>
> >> Cheers
> >>
> >> Bruno Baptista
> >> https://twitter.com/brunobat_
> >>
> >>
> >> On 08/01/19 18:06, Bruno Baptista wrote:
> >>>
> >>> I think I found the problem.
> >>>
> >>> The old version uses a different lifecycle event to declare the errors:
> >>>
> >>> public void throwExceptions(@Observes AfterBeanDiscovery
> afterBeanDiscovery) {
> >>>
> microProfileValidator.forThrowable(afterBeanDiscovery::addDefinitionError);
> >>> }
> >>>
> >>> The new one:
> >>> void addDefinitionErrors(@Observes AfterDeploymentValidation
> validation) {
> >>>
> this.beansToValidate.stream().map(this::validate).filter(Objects::nonNull).forEach(validation::addDeploymentProblem);
> >>>      this.beansToValidate.clear();
> >>> }
> >>> /AfterBeanDiscovery/ happens before /AfterDeploymentValidation/.
> >>> My guess is that /AfterDeploymentValidation/ should not be used to
> >>> declare actual deployment problems.
> >>> This is probably a Safegard bug.
> >>>
> >>> Cheers
> >>>
> >>> Bruno Baptista
> >>> https://twitter.com/brunobat_
> >>>
> >>>
> >>> On 08/01/19 17:53, Roberto Cortez wrote:
> >>>> Yes, it was using a DefinitionException, but it shouldn’t matter that
> much, since the problem should happen anyway as you describe.
> >>>>
> >>>>> On 8 Jan 2019, at 17:27, Bruno Baptista<br...@gmail.com>  wrote:
> >>>>>
> >>>>> Correct, but on the TCK, the FaultToleranceDefinitionException has
> not been released yet...
> >>>>>
> >>>>> I was also wondering about the old version while I was going for
> some tea...
> >>>>>
> >>>>> I'll run the same test on the old version and see want happens.
> >>>>>
> >>>>> Bruno Baptista
> >>>>> https://twitter.com/brunobat_
> >>>>>
> >>>>>
> >>>>> On 08/01/19 17:24, Roberto Cortez wrote:
> >>>>>> Hum, I wonder how was that working before with the old version?
> >>>>>>
> >>>>>> Are the expected exceptions new in the TCK? Looking into the code,
> it seems they are there since 2017, and actually you changed the expect
> from DefinitionException to FaultToleranceDefinitionException.
> >>>>>>
> >>>>>> Anyway, in the previous Safeguard version the TCK executed fine,
> and I guess the exception assertion was being done correctly, right?
> >>>>>>
> >>>>>>> On 8 Jan 2019, at 17:05, Bruno Baptista<br...@gmail.com>
> wrote:
> >>>>>>>
> >>>>>>> Hi folks,
> >>>>>>>
> >>>>>>> This is a status update on the upgrade of Safeguard.
> >>>>>>>
> >>>>>>> I was able to fix most issues, but a deeper problem remains.
> >>>>>>>
> >>>>>>> When an app is being deployed, the /SafeguardExtension/ goes over
> it's annotations and if something wrong is detected, a
> /DefinitionException/ is thrown, as expected. This works perfectly in the
> standalone library.
> >>>>>>>
> >>>>>>> The problem is that TomEE sees that exception through
> OpenWebBeans, where the exception is swollen here:
> >>>>>>>
> >>>>>>>
> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
> >>>>>>>
> >>>>>>> Thus, the Arquillian deployment doesn't receive
> /DefinitionException as expected/ but a /DeploymentException/.
> >>>>>>>
> >>>>>>> Any suggestion on how to tackle this?
> >>>>>>>
> >>>>>>> There is a work in progress here:
> https://github.com/apache/tomee/pull/365
> >>>>>>>
> >>>>>>> Cheers
> >>>>>>>
> >>>>>>> --
> >>>>>>> Bruno Baptista
> >>>>>>> https://twitter.com/brunobat_
> >>>>>>>
> >>>>>>>
>

Re: Upgrade to Safeguard 1.2

Posted by Bruno Baptista <br...@gmail.com>.
Talked too soon. I found some issues. Investigating now.

Bruno Baptista
https://twitter.com/brunobat_


On 10/01/19 14:34, Bruno Baptista wrote:
>
> I've run the full build and it was green.
>
> It should be good to go.
>
> Bruno Baptista
> https://twitter.com/brunobat_
>
>
> On 09/01/19 23:24, Bruno Baptista wrote:
>>
>> Hi,
>>
>> The PR to integrate the latest Safeguard into TomEE is ready for 
>> review here: https://github.com/apache/tomee/pull/365/
>>
>> The TCK now passes with TomEE.
>>
>> [INFO] Results:
>> [INFO]
>> [INFO] Tests run: 213, Failures: 0, Errors: 0, Skipped: 0
>> [INFO]
>> [INFO]
>>
>> I'll run a full build tomorrow because this upgrades a few 
>> crosscutting libraries.
>>
>> Cheers
>>
>> Bruno Baptista
>> https://twitter.com/brunobat_
>>
>>
>> On 08/01/19 18:06, Bruno Baptista wrote:
>>>
>>> I think I found the problem.
>>>
>>> The old version uses a different lifecycle event to declare the errors:
>>>
>>> public void throwExceptions(@Observes AfterBeanDiscovery afterBeanDiscovery) {
>>>      microProfileValidator.forThrowable(afterBeanDiscovery::addDefinitionError);
>>> }
>>>
>>> The new one:
>>> void addDefinitionErrors(@Observes AfterDeploymentValidation validation) {
>>>      this.beansToValidate.stream().map(this::validate).filter(Objects::nonNull).forEach(validation::addDeploymentProblem);
>>>      this.beansToValidate.clear();
>>> }
>>> /AfterBeanDiscovery/ happens before /AfterDeploymentValidation/.
>>> My guess is that /AfterDeploymentValidation/ should not be used to 
>>> declare actual deployment problems.
>>> This is probably a Safegard bug.
>>>
>>> Cheers
>>>
>>> Bruno Baptista
>>> https://twitter.com/brunobat_
>>>
>>>
>>> On 08/01/19 17:53, Roberto Cortez wrote:
>>>> Yes, it was using a DefinitionException, but it shouldn’t matter that much, since the problem should happen anyway as you describe.
>>>>
>>>>> On 8 Jan 2019, at 17:27, Bruno Baptista<br...@gmail.com>  wrote:
>>>>>
>>>>> Correct, but on the TCK, the FaultToleranceDefinitionException has not been released yet...
>>>>>
>>>>> I was also wondering about the old version while I was going for some tea...
>>>>>
>>>>> I'll run the same test on the old version and see want happens.
>>>>>
>>>>> Bruno Baptista
>>>>> https://twitter.com/brunobat_
>>>>>
>>>>>
>>>>> On 08/01/19 17:24, Roberto Cortez wrote:
>>>>>> Hum, I wonder how was that working before with the old version?
>>>>>>
>>>>>> Are the expected exceptions new in the TCK? Looking into the code, it seems they are there since 2017, and actually you changed the expect from DefinitionException to FaultToleranceDefinitionException.
>>>>>>
>>>>>> Anyway, in the previous Safeguard version the TCK executed fine, and I guess the exception assertion was being done correctly, right?
>>>>>>
>>>>>>> On 8 Jan 2019, at 17:05, Bruno Baptista<br...@gmail.com>  wrote:
>>>>>>>
>>>>>>> Hi folks,
>>>>>>>
>>>>>>> This is a status update on the upgrade of Safeguard.
>>>>>>>
>>>>>>> I was able to fix most issues, but a deeper problem remains.
>>>>>>>
>>>>>>> When an app is being deployed, the /SafeguardExtension/ goes over it's annotations and if something wrong is detected, a /DefinitionException/ is thrown, as expected. This works perfectly in the standalone library.
>>>>>>>
>>>>>>> The problem is that TomEE sees that exception through OpenWebBeans, where the exception is swollen here:
>>>>>>>
>>>>>>> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
>>>>>>>
>>>>>>> Thus, the Arquillian deployment doesn't receive /DefinitionException as expected/ but a /DeploymentException/.
>>>>>>>
>>>>>>> Any suggestion on how to tackle this?
>>>>>>>
>>>>>>> There is a work in progress here:https://github.com/apache/tomee/pull/365
>>>>>>>
>>>>>>> Cheers
>>>>>>>
>>>>>>> -- 
>>>>>>> Bruno Baptista
>>>>>>> https://twitter.com/brunobat_
>>>>>>>
>>>>>>>

Re: Upgrade to Safeguard 1.2

Posted by Bruno Baptista <br...@gmail.com>.
I've run the full build and it was green.

It should be good to go.

Bruno Baptista
https://twitter.com/brunobat_


On 09/01/19 23:24, Bruno Baptista wrote:
>
> Hi,
>
> The PR to integrate the latest Safeguard into TomEE is ready for 
> review here: https://github.com/apache/tomee/pull/365/
>
> The TCK now passes with TomEE.
>
> [INFO] Results:
> [INFO]
> [INFO] Tests run: 213, Failures: 0, Errors: 0, Skipped: 0
> [INFO]
> [INFO]
>
> I'll run a full build tomorrow because this upgrades a few 
> crosscutting libraries.
>
> Cheers
>
> Bruno Baptista
> https://twitter.com/brunobat_
>
>
> On 08/01/19 18:06, Bruno Baptista wrote:
>>
>> I think I found the problem.
>>
>> The old version uses a different lifecycle event to declare the errors:
>>
>> public void throwExceptions(@Observes AfterBeanDiscovery afterBeanDiscovery) {
>>      microProfileValidator.forThrowable(afterBeanDiscovery::addDefinitionError);
>> }
>>
>> The new one:
>> void addDefinitionErrors(@Observes AfterDeploymentValidation validation) {
>>      this.beansToValidate.stream().map(this::validate).filter(Objects::nonNull).forEach(validation::addDeploymentProblem);
>>      this.beansToValidate.clear();
>> }
>> /AfterBeanDiscovery/ happens before /AfterDeploymentValidation/.
>> My guess is that /AfterDeploymentValidation/ should not be used to 
>> declare actual deployment problems.
>> This is probably a Safegard bug.
>>
>> Cheers
>>
>> Bruno Baptista
>> https://twitter.com/brunobat_
>>
>>
>> On 08/01/19 17:53, Roberto Cortez wrote:
>>> Yes, it was using a DefinitionException, but it shouldn’t matter that much, since the problem should happen anyway as you describe.
>>>
>>>> On 8 Jan 2019, at 17:27, Bruno Baptista<br...@gmail.com>  wrote:
>>>>
>>>> Correct, but on the TCK, the FaultToleranceDefinitionException has not been released yet...
>>>>
>>>> I was also wondering about the old version while I was going for some tea...
>>>>
>>>> I'll run the same test on the old version and see want happens.
>>>>
>>>> Bruno Baptista
>>>> https://twitter.com/brunobat_
>>>>
>>>>
>>>> On 08/01/19 17:24, Roberto Cortez wrote:
>>>>> Hum, I wonder how was that working before with the old version?
>>>>>
>>>>> Are the expected exceptions new in the TCK? Looking into the code, it seems they are there since 2017, and actually you changed the expect from DefinitionException to FaultToleranceDefinitionException.
>>>>>
>>>>> Anyway, in the previous Safeguard version the TCK executed fine, and I guess the exception assertion was being done correctly, right?
>>>>>
>>>>>> On 8 Jan 2019, at 17:05, Bruno Baptista<br...@gmail.com>  wrote:
>>>>>>
>>>>>> Hi folks,
>>>>>>
>>>>>> This is a status update on the upgrade of Safeguard.
>>>>>>
>>>>>> I was able to fix most issues, but a deeper problem remains.
>>>>>>
>>>>>> When an app is being deployed, the /SafeguardExtension/ goes over it's annotations and if something wrong is detected, a /DefinitionException/ is thrown, as expected. This works perfectly in the standalone library.
>>>>>>
>>>>>> The problem is that TomEE sees that exception through OpenWebBeans, where the exception is swollen here:
>>>>>>
>>>>>> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
>>>>>>
>>>>>> Thus, the Arquillian deployment doesn't receive /DefinitionException as expected/ but a /DeploymentException/.
>>>>>>
>>>>>> Any suggestion on how to tackle this?
>>>>>>
>>>>>> There is a work in progress here:https://github.com/apache/tomee/pull/365
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>> -- 
>>>>>> Bruno Baptista
>>>>>> https://twitter.com/brunobat_
>>>>>>
>>>>>>

Re: Upgrade to Safeguard 1.2

Posted by Bruno Baptista <br...@gmail.com>.
Hi,

The PR to integrate the latest Safeguard into TomEE is ready for review 
here: https://github.com/apache/tomee/pull/365/

The TCK now passes with TomEE.

[INFO] Results:
[INFO]
[INFO] Tests run: 213, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]

I'll run a full build tomorrow because this upgrades a few crosscutting 
libraries.

Cheers

Bruno Baptista
https://twitter.com/brunobat_


On 08/01/19 18:06, Bruno Baptista wrote:
>
> I think I found the problem.
>
> The old version uses a different lifecycle event to declare the errors:
>
> public void throwExceptions(@Observes AfterBeanDiscovery afterBeanDiscovery) {
>      microProfileValidator.forThrowable(afterBeanDiscovery::addDefinitionError);
> }
>
> The new one:
> void addDefinitionErrors(@Observes AfterDeploymentValidation validation) {
>      this.beansToValidate.stream().map(this::validate).filter(Objects::nonNull).forEach(validation::addDeploymentProblem);
>      this.beansToValidate.clear();
> }
> /AfterBeanDiscovery/ happens before /AfterDeploymentValidation/.
> My guess is that /AfterDeploymentValidation/ should not be used to 
> declare actual deployment problems.
> This is probably a Safegard bug.
>
> Cheers
>
> Bruno Baptista
> https://twitter.com/brunobat_
>
>
> On 08/01/19 17:53, Roberto Cortez wrote:
>> Yes, it was using a DefinitionException, but it shouldn’t matter that much, since the problem should happen anyway as you describe.
>>
>>> On 8 Jan 2019, at 17:27, Bruno Baptista<br...@gmail.com>  wrote:
>>>
>>> Correct, but on the TCK, the FaultToleranceDefinitionException has not been released yet...
>>>
>>> I was also wondering about the old version while I was going for some tea...
>>>
>>> I'll run the same test on the old version and see want happens.
>>>
>>> Bruno Baptista
>>> https://twitter.com/brunobat_
>>>
>>>
>>> On 08/01/19 17:24, Roberto Cortez wrote:
>>>> Hum, I wonder how was that working before with the old version?
>>>>
>>>> Are the expected exceptions new in the TCK? Looking into the code, it seems they are there since 2017, and actually you changed the expect from DefinitionException to FaultToleranceDefinitionException.
>>>>
>>>> Anyway, in the previous Safeguard version the TCK executed fine, and I guess the exception assertion was being done correctly, right?
>>>>
>>>>> On 8 Jan 2019, at 17:05, Bruno Baptista<br...@gmail.com>  wrote:
>>>>>
>>>>> Hi folks,
>>>>>
>>>>> This is a status update on the upgrade of Safeguard.
>>>>>
>>>>> I was able to fix most issues, but a deeper problem remains.
>>>>>
>>>>> When an app is being deployed, the /SafeguardExtension/ goes over it's annotations and if something wrong is detected, a /DefinitionException/ is thrown, as expected. This works perfectly in the standalone library.
>>>>>
>>>>> The problem is that TomEE sees that exception through OpenWebBeans, where the exception is swollen here:
>>>>>
>>>>> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
>>>>>
>>>>> Thus, the Arquillian deployment doesn't receive /DefinitionException as expected/ but a /DeploymentException/.
>>>>>
>>>>> Any suggestion on how to tackle this?
>>>>>
>>>>> There is a work in progress here:https://github.com/apache/tomee/pull/365
>>>>>
>>>>> Cheers
>>>>>
>>>>> -- 
>>>>> Bruno Baptista
>>>>> https://twitter.com/brunobat_
>>>>>
>>>>>

Re: Upgrade to Safeguard 1.2

Posted by Bruno Baptista <br...@gmail.com>.
I think I found the problem.

The old version uses a different lifecycle event to declare the errors:

public void throwExceptions(@Observes AfterBeanDiscovery afterBeanDiscovery) {
     microProfileValidator.forThrowable(afterBeanDiscovery::addDefinitionError);
}

The new one:
void addDefinitionErrors(@Observes AfterDeploymentValidation validation) {
     this.beansToValidate.stream().map(this::validate).filter(Objects::nonNull).forEach(validation::addDeploymentProblem);
     this.beansToValidate.clear();
}

/AfterBeanDiscovery/ happens before /AfterDeploymentValidation/.
My guess is that /AfterDeploymentValidation/ should not be used to 
declare actual deployment problems.
This is probably a Safegard bug.

Cheers

Bruno Baptista
https://twitter.com/brunobat_


On 08/01/19 17:53, Roberto Cortez wrote:
> Yes, it was using a DefinitionException, but it shouldn’t matter that much, since the problem should happen anyway as you describe.
>
>> On 8 Jan 2019, at 17:27, Bruno Baptista <br...@gmail.com> wrote:
>>
>> Correct, but on the TCK, the FaultToleranceDefinitionException has not been released yet...
>>
>> I was also wondering about the old version while I was going for some tea...
>>
>> I'll run the same test on the old version and see want happens.
>>
>> Bruno Baptista
>> https://twitter.com/brunobat_
>>
>>
>> On 08/01/19 17:24, Roberto Cortez wrote:
>>> Hum, I wonder how was that working before with the old version?
>>>
>>> Are the expected exceptions new in the TCK? Looking into the code, it seems they are there since 2017, and actually you changed the expect from DefinitionException to FaultToleranceDefinitionException.
>>>
>>> Anyway, in the previous Safeguard version the TCK executed fine, and I guess the exception assertion was being done correctly, right?
>>>
>>>> On 8 Jan 2019, at 17:05, Bruno Baptista <br...@gmail.com> wrote:
>>>>
>>>> Hi folks,
>>>>
>>>> This is a status update on the upgrade of Safeguard.
>>>>
>>>> I was able to fix most issues, but a deeper problem remains.
>>>>
>>>> When an app is being deployed, the /SafeguardExtension/ goes over it's annotations and if something wrong is detected, a /DefinitionException/ is thrown, as expected. This works perfectly in the standalone library.
>>>>
>>>> The problem is that TomEE sees that exception through OpenWebBeans, where the exception is swollen here:
>>>>
>>>> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
>>>>
>>>> Thus, the Arquillian deployment doesn't receive /DefinitionException as expected/ but a /DeploymentException/.
>>>>
>>>> Any suggestion on how to tackle this?
>>>>
>>>> There is a work in progress here: https://github.com/apache/tomee/pull/365
>>>>
>>>> Cheers
>>>>
>>>> -- 
>>>> Bruno Baptista
>>>> https://twitter.com/brunobat_
>>>>
>>>>

Re: Upgrade to Safeguard 1.2

Posted by Roberto Cortez <ra...@yahoo.com.INVALID>.
Yes, it was using a DefinitionException, but it shouldn’t matter that much, since the problem should happen anyway as you describe.

> On 8 Jan 2019, at 17:27, Bruno Baptista <br...@gmail.com> wrote:
> 
> Correct, but on the TCK, the FaultToleranceDefinitionException has not been released yet...
> 
> I was also wondering about the old version while I was going for some tea...
> 
> I'll run the same test on the old version and see want happens.
> 
> Bruno Baptista
> https://twitter.com/brunobat_
> 
> 
> On 08/01/19 17:24, Roberto Cortez wrote:
>> Hum, I wonder how was that working before with the old version?
>> 
>> Are the expected exceptions new in the TCK? Looking into the code, it seems they are there since 2017, and actually you changed the expect from DefinitionException to FaultToleranceDefinitionException.
>> 
>> Anyway, in the previous Safeguard version the TCK executed fine, and I guess the exception assertion was being done correctly, right?
>> 
>>> On 8 Jan 2019, at 17:05, Bruno Baptista <br...@gmail.com> wrote:
>>> 
>>> Hi folks,
>>> 
>>> This is a status update on the upgrade of Safeguard.
>>> 
>>> I was able to fix most issues, but a deeper problem remains.
>>> 
>>> When an app is being deployed, the /SafeguardExtension/ goes over it's annotations and if something wrong is detected, a /DefinitionException/ is thrown, as expected. This works perfectly in the standalone library.
>>> 
>>> The problem is that TomEE sees that exception through OpenWebBeans, where the exception is swollen here:
>>> 
>>> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
>>> 
>>> Thus, the Arquillian deployment doesn't receive /DefinitionException as expected/ but a /DeploymentException/.
>>> 
>>> Any suggestion on how to tackle this?
>>> 
>>> There is a work in progress here: https://github.com/apache/tomee/pull/365
>>> 
>>> Cheers
>>> 
>>> -- 
>>> Bruno Baptista
>>> https://twitter.com/brunobat_
>>> 
>>> 


Re: Upgrade to Safeguard 1.2

Posted by Bruno Baptista <br...@gmail.com>.
Correct, but on the TCK, the FaultToleranceDefinitionException has not 
been released yet...

I was also wondering about the old version while I was going for some 
tea...

I'll run the same test on the old version and see want happens.

Bruno Baptista
https://twitter.com/brunobat_


On 08/01/19 17:24, Roberto Cortez wrote:
> Hum, I wonder how was that working before with the old version?
>
> Are the expected exceptions new in the TCK? Looking into the code, it seems they are there since 2017, and actually you changed the expect from DefinitionException to FaultToleranceDefinitionException.
>
> Anyway, in the previous Safeguard version the TCK executed fine, and I guess the exception assertion was being done correctly, right?
>
>> On 8 Jan 2019, at 17:05, Bruno Baptista <br...@gmail.com> wrote:
>>
>> Hi folks,
>>
>> This is a status update on the upgrade of Safeguard.
>>
>> I was able to fix most issues, but a deeper problem remains.
>>
>> When an app is being deployed, the /SafeguardExtension/ goes over it's annotations and if something wrong is detected, a /DefinitionException/ is thrown, as expected. This works perfectly in the standalone library.
>>
>> The problem is that TomEE sees that exception through OpenWebBeans, where the exception is swollen here:
>>
>> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
>>
>> Thus, the Arquillian deployment doesn't receive /DefinitionException as expected/ but a /DeploymentException/.
>>
>> Any suggestion on how to tackle this?
>>
>> There is a work in progress here: https://github.com/apache/tomee/pull/365
>>
>> Cheers
>>
>> -- 
>> Bruno Baptista
>> https://twitter.com/brunobat_
>>
>>

Re: Upgrade to Safeguard 1.2

Posted by Roberto Cortez <ra...@yahoo.com.INVALID>.
Hum, I wonder how was that working before with the old version?

Are the expected exceptions new in the TCK? Looking into the code, it seems they are there since 2017, and actually you changed the expect from DefinitionException to FaultToleranceDefinitionException.

Anyway, in the previous Safeguard version the TCK executed fine, and I guess the exception assertion was being done correctly, right?

> On 8 Jan 2019, at 17:05, Bruno Baptista <br...@gmail.com> wrote:
> 
> Hi folks,
> 
> This is a status update on the upgrade of Safeguard.
> 
> I was able to fix most issues, but a deeper problem remains.
> 
> When an app is being deployed, the /SafeguardExtension/ goes over it's annotations and if something wrong is detected, a /DefinitionException/ is thrown, as expected. This works perfectly in the standalone library.
> 
> The problem is that TomEE sees that exception through OpenWebBeans, where the exception is swollen here:
> 
> https://github.com/apache/openwebbeans/blob/4c7ee3d192b56cc74e5218f99f7e7f5a78e60d56/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java#L1129
> 
> Thus, the Arquillian deployment doesn't receive /DefinitionException as expected/ but a /DeploymentException/.
> 
> Any suggestion on how to tackle this?
> 
> There is a work in progress here: https://github.com/apache/tomee/pull/365
> 
> Cheers
> 
> -- 
> Bruno Baptista
> https://twitter.com/brunobat_
> 
>