View source | View content page | Page history | Printable version   

Projects:Callout Performance Improvements/Specs


Functional Requirements

The main functional requirement of this project is to improve the time spent in callout invocation in general . Also, it will be an effort to improve the SimpleCallout in particular.

This project will not add new features, the changes involved within this project should be transparent for callouts: they must continue working as usual.

Technical Specs

General Performance Improvements

There are some general improvements that will be applied for the callouts infrastructure itself. They all help to reduce the time spent in callouts invocation. It have been checked that there exists an overhead when a callout is executed. This is the time that should be reduce or remove. For more information see this spreadsheet.

Callouts infrastructure

At first, a refactor should be done in runCallouts method in order to avoid some unnecessary reflective invocations. See changeset in temporal repository of the project.

Bulbgraph.png   This refactor provides a better legibility of the code not an improvement in the performance.

SimpleCallout improvements

The main goal of this project is to reduce overhead time related with legacy implementation of callouts as a Servlets. To avoid this overhead, SimpleCallouts should build directly result as a JSONObject instead of a StringBuilder. This should avoid managing a false request, parser the fake respose,...

IMPORTANT NOTE: These improvements are focused in SimpleCallout callouts. SimpleCallout callouts are 40% of callouts located in src/org/openbravo/erpCommon/ad_callouts.

Extended features

In addition to existing features, new capability will be implemented within the scope of this project.

Make the SimpleCallouts extensible

This new capability should make possible that a SimpleCallout extends from other SimpleCallout in an easy way.

public class prefix_name_callout2 extends prefix_name_callout1 {

For more information of this feature see How to create a callout that extends from another callout .

Closed topics

Review issues related

It is pending to review this list of issues are working with new changes:

Status: Pending

Retrieved from ""

This page has been accessed 1,307 times. This page was last modified on 10 August 2016, at 12:02. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.