Hi Oscar,
thanks for this.  The ASF mailing lists don't allow attachments, so you'll
need to raise a Jira issue.

(The other reason is because a patch associated to a Jira implicitly - if
you read the small print somewhere - implies that you are granting a
license to ASF to use the patch in its codebase).

So, raise a Jira and I'll apply the patch.  (I must also do your other
patch on choices ... thx for that)

Cheers
Dan



On 31 July 2013 18:12, GESCONSULTOR - Óscar Bou <[email protected]>wrote:

>
> Hi to all.
>
> We've made a "small" change on Isis applib that allows clearer messages
> for validation exceptions.
>
> We wanted to move from this:
>
> org.apache.isis.applib.services.wrapper.InvalidException: Mandatory
>         at
> org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.toException(DomainObjectInvocationHandler.java:584)
>         at
> org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.notifyListenersAndVetoIfRequired(DomainObjectInvocationHandler.java:556)
>         at
> org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.handleActionMethod(DomainObjectInvocationHandler.java:506)
>         at
> org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.invoke(DomainObjectInvocationHandler.java:236)
>         at
> org.apache.isis.core.wrapper.internal.InvocationHandlerMethodInterceptor.intercept(InvocationHandlerMethodInterceptor.java:37)
>         at
> com.xms.framework.risk.domain.model.RiskRegister$$EnhancerByCGLIB$$d42e255.addQuantitativeRiskToAsset(<generated>)
>         at
> com.xms.framework.risk.integration.glue.risk.RiskRegisterGlue.when_add_quantitative_risk_to_this_risk_register_with_asset_and_threat_and_likelihood_and_impact(RiskRegisterGlue.java:152)
>         at ✽.When I add a new quantitative risk to the risk register with
> name "risk 1" and asset "A1" and threat "T1" and likelihood 0.50 and impact
> 1000.00(com/xms/framework/risk/integration/specs/RiskAssessmentSpec_Risk_levelOfRisk.feature:56)
>
>
> To something like this:
>
> org.apache.isis.applib.services.wrapper.InvalidException: Source:
> com.xms.framework.risk.domain.model.RiskRegister@2012052f. Reason:
> Mandatory. Identifier:
> com.xms.framework.risk.domain.model.RiskRegister#addQuantitativeRiskToAsset(java.lang.String,java.lang.String,com.xms.framework.architecture.domain.model.Entity,com.xms.framework.risk.domain.model.threat.Threat,java.math.BigDecimal,java.math.BigDecimal).
> Position: 2. Proposed: null
>         at
> org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.toException(DomainObjectInvocationHandler.java:584)
>         at
> org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.notifyListenersAndVetoIfRequired(DomainObjectInvocationHandler.java:556)
>         at
> org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.handleActionMethod(DomainObjectInvocationHandler.java:506)
>         at
> org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.invoke(DomainObjectInvocationHandler.java:236)
>         at
> org.apache.isis.core.wrapper.internal.InvocationHandlerMethodInterceptor.intercept(InvocationHandlerMethodInterceptor.java:37)
>         at
> com.xms.framework.risk.domain.model.RiskRegister$$EnhancerByCGLIB$$d42e255.addQuantitativeRiskToAsset(<generated>)
>         at
> com.xms.framework.risk.integration.glue.risk.RiskRegisterGlue.when_add_quantitative_risk_to_this_risk_register_with_asset_and_threat_and_likelihood_and_impact(RiskRegisterGlue.java:152)
>         at ✽.When I add a new quantitative risk to the risk register with
> name "risk 1" and asset "A1" and threat "T1" and likelihood 0.50 and impact
> 1000.00(com/xms/framework/risk/integration/specs/RiskAssessmentSpec_Risk_levelOfRisk.feature:56)
>
>
>
> We have created a new "getReasonMessage()" method on InteractionEvent as
> this:
>
>
> public abstract class InteractionEvent extends EventObject {
>
> .....
>
>     /**
>      * The reason message, if any, that this interaction may have been
> vetoed or
>      * otherwise disallowed.
>      *
>      * <p>
>      * This message should be overridden by subclasses for containing the
> Reason, the Identifier and any other relevant context information.
>      *
>      * @return
>      */
>     public String getReasonMessage() {
>         if (this.getIdentifier() != null) {
>         return String.format("Reason: %s. Identifier: %s",
> this.getReason(), this.getIdentifier());
>     } else {
>         return String.format("Reason: %s", this.getReason());
>     }
>     }
>
> .....
>
> }
>
> And use that method to "construct" the InteractionException, instead of
>  "getReason()":
>
> public abstract class InteractionException extends ApplicationException {
>
> ....
>
>      public InteractionException(final InteractionEvent interactionEvent) {
> -        super(interactionEvent.getReason());
> +        super(interactionEvent.getReasonMessage());
>          this.interactionEvent = interactionEvent;
>      }
>
> ....
> }
>
>
> Please, find a git patch attached.
>
> Perhaps there are better ways to implement it. If needed we can create the
> Jira issue.
>
>
> Thanks,
>
> Oscar
>
>
>
>
>
>

Reply via email to