Jump to: navigation, search

EDT:Compiler Settings Introduction

Revision as of 17:29, 17 February 2012 by Tdramsey.us.ibm.com (Talk | contribs) (EDT compiler settings introduction: tdr edits)

EDT compiler settings introduction

EDT is designed for extensibility, which means that you can extend the EDT framework to customize their own compilers and generators. Currently, the EDT Compiler, and the Java and JavaScript generators are supported in EDT 0.7. We expect to have other compilers and generators available in EDT in the future. Compilers and generators should be configured when developing EGL applications.  Since EDT 0.7 only has the EDT Compiler and it is the default, you do not need to worry about the compiler setting.  

For the generators, EDT 0.7 supports Java and JavaScript. The Java generator is used for generating EGL code to Java. Generally, the EGL files configured with Java generators are EGL services and programs.  Interfaces, libraries, and records used in services and programs also need to be configured with the Java generator. On the other hand, the Rich UI handlers are mostly configured with the JavaScript generator, because normally they will be generated to JavaScript running in a browser. It's possible that interfaces, libraries, and records would be also used in RUI handlers; if so, then those parts should be configured with the JavaScript generator as well. Otherwise, the generated JavaScript file of a RUIHandler cannot resolve references to the interfaces, libraries or records. If a type is referenced in both services and RUI handlers, then the referenced part should be configured with both Java and JavaScript generators.

EDT allows you to specify the compiler and generator settings at the project level or package level. The settings in the parent level will be inherited by the children if they are not changed by the user. In most cases you can follow the default compiler settings created by the New EGL Project wizard, and you won't need to configure the settings manually if you follow the usage conventions for packages.

In the EGL Project wizard (File > New > EGL Project), four types of project templates are available. The second project template is a sample.

Project templates.jpg


If the Basic template is selected and you click Next, the second page let's you choose the compiler and generators. You can check Override generation settings from workspace preferences to override the settings for the project. If you keep the default settings, then the created project will be specified with Java and JavaScript generators, so the EGL source files under this project will be generated into both Java and JavaScript.

You can check the compiler and generators settings by right-clicking Projects or Packages > Properties > EGL Compiler. Also, you can specify whether the project or package is allowed to change the settings in this window. Please refer to the screen shot below to see the compiler settings for a package.

Compiler setting project.jpg

Web 2.0 client application

A project created by this template only has a package named client configured with JavaScript generator by default, which means that only JavaScript will be generated for the EGL source files in this project.

Web 2.0 client application with services

A project created by this template will have 3 packages; you can put the EGL source files in different packages depending on the purpose of each file. For example, if a type is referenced in both the client and server packages, then the type should be put into the common package. 

  • the client package is configured with JavaScript generator
  • the server package is configured with the Java generator
  • the common package is configured with both the Java and JavaScript generators

Set default compiler and generator setting for your workspace

You can set the default generator folder for the Java and JavaScript generators by clicking Windows > Preferences > EGL > Compiler > EDT.  You can specify a different generator folder for the Java and  JavaScript generators.

Compiler preference.jpg