If you have Java programming experience, there are example source codes available on request to help to get you started writing custom code in EASA. If you are interested, send us an email at firstname.lastname@example.org.
Custom code can be used to create special scalar or list object values that come from external sources or to run additional tasks. For instance, the custom code can connect to web services and return values based on the current web service information. Sample source files of this type of example are provided in
in which you will see the example GetQuote class which returns stock market values of different stocks. Other examples include new data processing methods, such as the Beta and Gamma functions or random number generation. Some data processing examples are provided in
Custom code can be written to perform custom actions on the client, for example, to show a new GUI component, such as a calendar-like date entry, or to run third party software. Examples of custom actions can be seen in
Custom code can be used to define new compute server configurations that use protocols not currently supported by EASA, such as RMI or Corba. A simple example of a custom compute server is available in
Once you have decided that you need to write custom code to extend EASA, there is a 10 step procedure that you can follow as part of your custom code development. These steps are as follows:
After completing these steps, EASAPs can now be authored using Custom Objects that make use of your custom code. A detailed description of this procedure is provided in Custom Action Examples.
Though the possibility for improving your EASA System through the use of custom code can be very powerful, the possible downside is that custom code can cause the EASA Server or the EASA Client to crash if coded in an unfriendly manner. For example, if custom code uses large amounts of memory, CPU or does not return when called, it is possible to stop the EASA Server working in some instances.
Other examples of where this might happen are memory leaks where custom code stores values in java.util.Lists or java.util.Maps without clearing them at the right time, or methods that connect to an external source and wait continuously if the source is not available.
If creating your own code, here are a list of suggested actions to limit the possibility for problems when implementing custom code:
There are specific types of custom objects that you can create within the EASA API and the structure and content of your custom code will be dictated in large part by which custom object you are creating.
The types of custom objects available in the EASA API are as follows: