Compiling

ENOVIA Live Collaboration is set up so that invoking JPOs will cause an automatic compile if necessary, using Java directly.

Two ini variables are related to compiling JPOs:


  • MX_JAVAC_FLAGS allows you to pass extra flags to the compiler.
  • MX_JAVA_DEBUG, when set to true, compiles JPOs with debugging information available and sets up MQL so that a debugger program can be attached to it.

To force compilation before invoking a JPO method, use the MQL command compile program. This is useful for bulk compiling and testing for compile errors after an iterative change to the JPO source.

compile program PATTERN [force] [update] [COMPILER_FLAGS];

When a JPO is compiled or executed, any other JPOs which are called by that JPO or call that JPO must be available in their most recent version. The compile command includes an update option which will update the requested JPO's dependencies on other JPOs that may have been added, deleted, or modified. Use the following command to ensure all JPOs have up-to-date dependencies:

<mql> compile prog * force update;

The class file resulting from the compile command is placed into the ENOVIA Live Collaboration database. A special class loader finds the class file in the database when referenced.

When a password trigger uses a JPO, the program must be compiled explicitly before it can be used, since there is no active context before a login transaction is committed. Business Administrators must compile the program when initially written and whenever modifications are made. Include the force option when you need to recompile a JPO. In order to recompile the JPO(s) used by password trigger, the Business Administrator can set MX_PASSWORD_TRIGGERS = false in enovia.ini and log in through MQL.

Deprecation warnings when compiling JPOs:

MX_JAVAC_OPTIONS is set to -nowarn, which suppresses deprecation warnings when compiling JPOs.

If you want to see deprecation warnings, for example, when debugging:


  • For automatic compiles, you can set MX_JAVAC_OPTIONS to -deprecation.
  • For compiles using the command line, include the -deprecation flag and precede the compile command with verbose on, for example:

    verbose on

    compile prog NAME -deprecation