Hi Ivan,

Thank you of describing the issue and a possible solution accompanied by
test cases.

Any improvement to the code base is a good idea. And if you'll submit a
patch in JIRA I will do my best to review it.

Best regards,

Pierre Smits

*ORRTIZ.COM <http://www.orrtiz.com>*
Services & Solutions for Cloud-
Based Manufacturing, Professional
Services and Retail & Trade
http://www.orrtiz.com

On Wed, Oct 1, 2014 at 1:59 PM, Falcon ICT Pty Ltd <falcon...@gmail.com>
wrote:

> Background
> ----------------
> Recenlty, the trunk version of OFBiz was augmented with a new service
> called runServiceUponSubscriptionExpiry through JIRA5333. This service
> is scheduled to run, using the demo data, once a day. Its algorithm
> looks up all subscriptions which have expired, which is defined as the
> current time being greater than the sum of the subscription.thruDate +
> subscription.gracePeriodOnExpiry, and Subscription.automaticExtend is
> false. For all such subscriptions, the service runs any service named
> in SubscriptionResource.serviceNameOnExpiry.
>
>
> This provides users of the OFBiz framework who provide subscriptions
> to their customers using the framework, to trigger an external
> deprovisioning action when a subscription expires, implemented as a
> service whose name is inserted into
> SubscriptionResource.serviceNameOnExpiry.
>
>
> Currently, the service mentioned in
> SubscriptionResource.serviceNameOnExpiry is run every time the master
> service runServiceUponSubscriptionExpiry goes through its algorithm
> (once a day in the demo data). Typically, for subscriptions which
> require a deprovisioning action when the subscription expired, one and
> only one deprovisioning action would be required.
>
>
> proposed solution
> ------------------------
> To resolve this, it is being proposed to make the following adjustments:
>
> a) augment the OFBiz data model with the following new field:
>
> Subscription.serviceNameOnExpiryRunDate
>
> b) modify the algorithm of runServiceUponSubscriptionExpiry to also
> check whether the expiry service has already run, by checking that
> serviceNameOnExpiryRunDate is null.
>
> - if serviceNameOnExpiryRunDate is null (and the other conditions are
> satisfied), run the service in
> SubscriptionResource.serviceNameOnExpiry and update the date/time into
> serviceNameOnExpiryRunDate
>
> - if serviceNameOnExpiryRunDate is not null, skip the expired
> subscription and move to the next
>
>
> Testing
> ----------
> - create a new subscription through OFBiz with demo data
> - modify the subscription's thru date and gracePeriodOnExpiry so the
> result of their addition is in the past of the system date
> - verify that Subscription. serviceNameOnExpiryRunDate is empty
> - either wait for the daily running of
> runServiceUponSubscriptionExpiry, or trigger the service manually
> - verify that the log file contains a reference to the subscription
> having expired, and that Subscription. serviceNameOnExpiryRunDate
> contains the date/time the service was run
> - either wait for the daily running of
> runServiceUponSubscriptionExpiry, or trigger the service manually, for
> a second time
> - verify that the log file does not contain a reference to the
> subscription having expired, and that Subscription.
> serviceNameOnExpiryRunDate still contains the date/time the service
> was run.
>
>
> I'd like to ask:
> a) is there agreement in the developer community that this is a good idea
> b) We propose to develop the patch and release it to the OFBiz
> project.  Would any committer be interested in promoting into trunk
> when we provide the patch?
>
> regards
> --
> Ivan Cauchi
> Director
> Falcon ICT Pty Ltd
>

Reply via email to