Design and Coding Requirements
Red Apps are expected to conform to the following requirements.
-
(Optional) The main plug-in has the most important or significant functionality. While it is preferred for the main plug-in to include all business logic, it is not required.
-
The functionality in a Red App can be distributed among multiple plug-in projects within a Red App bundle. All JARs for each plug-in project must be located in the
plugins
directory in the Red App bundle ZIP file. -
All communications with the SRWRuntime communications bus are in the main Red App plug-in within the Red App bundle. For communications requirements, see Communications Components in Red Apps.
-
Dependent plug-ins within a Red App bundle consist of libraries and other dependencies. They may also include business logic. Dependent plug-ins must not have communications.
-
Red Apps cannot call any methods on the System.out and System.err objects. These objects are static fields in the java.lang.System class.
If your Red App calls any of these methods, it will fail certification. Instead, use methods in ILoggerService. (See Creating Access to ILoggerService.)
-
Red Apps are not permitted to listen for the
AG
command. Red Apps that listen forAG
will fail certification. Red Apps can listen for all commands with an emptyaction_code
, however, if passwords are returned, they will be masked with thexxxxxx
characters. For general information, see About Emulator Command Intercept and About Event Listeners and Event Listening. -
If a Red App has a GUI or creates a website, the Red App conforms to Sabre Red 360 Styles.
-
A Red App includes the technologies, UI elements, services, and other criteria that are in the corresponding Red App proposal.
-
The technologies, UI elements, wrappers, services, and communications in all plug-ins comply with all Sabre Red App requirements and guidelines as described in the Red App help. For example, a plug-in that has an editor complies with the description of an editor in the topics about editors.
-
Your Sabre Red 360 menu contributions must be assigned according to the functionality in your app, for example, an air booking tool is on the Tools > Air menu. For more information, see the topics in Basic Menus.
Important
|
During validation of your Red App, Sabre verifies that your menu contribution is appropriate for the functionality in your app. |
-
A Red App cannot contribute to the following launcher bar menus: Tools menu root, Help Desk sub-menu on the Admin menu, and Favorites.
-
If any plug-ins are based on the Red App sample plug-ins, the content for Sabre Red 360 classes is put into new classes and new packages. Sabre will not accept or certify Red Apps with classes or packages that are taken from Red App sample plug-ins.
-
The
plugin.xml
file in the main Red App plug-in project includes a dependency to the com.sabre.edge.redapp.contactdetails extension point. Other dependent plug-in projects within a Red App bundle must not have contact details.
You have several options for adding contact details:
-
Add the com.sabre.edge.redapp.contactdetails.provider extension point manually using Eclipse. Do not add any extension points outside of Eclipse.
-
Use the Red App Contact Details wizard to add contact details.
If your support contact information for your Red App changes, you are required to update the contact details in your plug-in. Even if this is the only change you make to a published Red App, you are required to submit a new release with this updated information. It is most likely that this will be a patch release.
For important information about contact details and an example of an entry in the manifest, see all topics in the Contact Details book.
-
Versions of SR360 bundles (starting with com.sabre.edge.*) declared in java manifest, should not contain maximum allowed version in the *Required-Bundles* field. Example of an incorrect entry:
com.sabre.edge.platform.core.common;bundle-version="[1.2.0,1.3.0]"
-
The
plugin.xml
file in the main Red App plug-in project includes the com.sabre.edge.cf.redapp extension point. This extension point triggers SRWRuntime to search forredapp.xml
. Other dependent plug-in projects within a Red App bundle must not have this extension. Use Eclipse to add this extension point. Do not add any extension points outside of Eclipse.
An example is shown below.
<extension point="com.sabre.edge.cf.redapp" />
-
Only the main Red App plug-in project within a Red App bundle has a
redapp.xml
file. For more information, see Building a redapp.xml File. -
Your
redapp.xml
file must be encoded as UTF-8. -
If a Red App consumes external non Sabre services, it is recommended to follow the Accessing External Services guidelines available in this chapter.