Home
Categories
Dictionary
Glossary
Download
Project Details
Changes Log
What Links Here
FAQ
License

Deploying


This article is about how to deploy protoFramework. For about how to deploy modules, see deployment
The protoFramework comes with the following jar files:
  • The main protoFramework.jar library
  • Libraries used by the main protoFramework.jar jat file, which are under the lib directory

Framework Classpath

The protoFramework.jar jar file has the Jar files which are in the lib in its Manifest. It means that by default you don't need to add any of the Jar files used by the protoFramework in you Classpath.

Basic usage

The basic usage is when you start the framework directly by double-clicking on the protoFramework.jar jar file (or by using a shell to start it).

In the case the entire lib directory must be present alongside the jar file. For example:
      protoFramework.jar
      lib ->
         jEditor.jar
         jna.jar
         json.jar      
         ...

Usage in an owner module

You can start the framework from an external Java application (through the Framework Owner mechanism). In that case, you must put the protoFramework.jar jar file in your application Classpath.

However, you have two options for the support jars which are in the lib directory:
  • Either you distribute the entire lib directory with your library, and keep the relative path of this library relative to the protoFramework.jar jar file
  • Or you take care yourself of the Classpath of you application for all the jars used by the framework

First option: distribute the library

Suppose that we have the following Manifest for your application:
      Class-Path: protoFramework.jar
And you have the following file structure:
      myAppli.jar
      protoFramework.jar
      lib ->
         jEditor.jar
         jna.jar
         json.jar           
         ...
It will work correctly because your application has protoFramework.jar in its Manifest, and protoFramework.jar has the content of the lib directory in its own Manifest.

Second option: take care of the Classpath yourself

You can also take care of the Classpath yourself for your application. For example, suppose that you want to put all the jar files used by your application (including the protoFramework.jar jar file) in a lib directory directly under your application directory. You would have the following file structure:
      myAppli.jar
      lib ->      
         protoFramework.jar
         jEditor.jar
         jna.jar
         json.jar           
         ...
You can't rely on the protoFramework.jar Manifest because in that case you would need to have the following structure:
      myAppli.jar
      lib ->      
         protoFramework.jar
         lib ->    
           jEditor.jar
           jna.jar
           json.jar           
           ...
To handle this situation, you can add each of the jar files associated with the protoFramework.jar in your application Manifest:
      Class-Path: protoFramework.jar
                   jEditor.jar 
                   jna.jar 
                   json.jar
                   ...
Note that you don't need to add all the jar files in the distribution lib directory in your Manifest. See jar files dependencies

Jar files dependencies

You don't need all the jar files in the lib directory in your Manifest in all the use cases if you take care of the Classpath yourself. The following table shows the jar files which are mandatory:
Jar file Comment
MDIUtilities-core-LGPL.jar
MDIUtilities-ui-LGPL.jar
-
json.jar Used for the json types, necessary when parsing the types

Optional jar files

The following table shows the jar files which are not mandatory,and the use cases where you will need them:
Jar file Comment
groovy-3.0.7-indy.jar
scriptHelper.jar
scriptHelperGroovy.jar
scriptHelperSwing.jar
Used for the Groovy modules and the XUL interfacebuilt-in module
jEditor.jar Used only for the Groovy modules and Python modules
jna.jar
jna-platform
Used for the C modules, and some built-in modules (such as Joystick application and vosk module)
netty-all.jar Used for Python modules, allowing cross communication between instances of the framework, or some built-in modules (such as ExternalComm)

Unused jar files

The following table shows the jar files which are not used in the runtime, but only in the browser:
Jar file Comment
JGraphml.jar
jgraphx.jar
-
MDIFramework-swingAll.jar -

See also


Categories: general

Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence