To create and commit a DTK plugin:
Create the different Java files required for the type of plugin you want to create. See the chapters describing each plugin for further information.
Compile all the Java files for your plugin into classes:
> javac -classpath $CLASSPATH com/mycompany/myagent/*.java
Caution!
Do not use the default package context in the Java code. All classes in Usage Engine must have unique names.
Create a user-defined *.jar file containing the classes, see https://infozone.atlassian.net/wiki/spaces/UEPE3D/pages/21469889/Creating+a+DTK+Plugin+3.2#Creating-a-User-Defined-Jar below.
Create a user defined *.mzp package containing the *.jar file, see https://infozone.atlassian.net/wiki/spaces/UEPE3D/pages/21469889/Creating+a+DTK+Plugin+3.2#Creating-a-User-Defined-Package below.
Commit your user defined package, see https://infozone.atlassian.net/wiki/spaces/UEPE3D/pages/21469889/Creating+a+DTK+Plugin+3.2#Committing-a-User-Defined-Package below.
Creating a User Defined Jar
To create a *.jar file containing the classes, use the following command syntax:
> jar cvf my_agent.jar com/mycompany/myagent/*.class
It is also possible to add resources to a jar file, just append any resource name to your "jar create" command. This allows you to, for instance, add images that your class depends on to the jar:
> jar cvf my_agent.jar com/mycompany/myagent/*.class com/mycompany/myagent/myagent_icon.svg
Creating a User Defined Package
In order to insert the *.jar file into Usage Engine, a package containing the jar file must first be created. A package gives the *.jar file a name and a version. The mzsh pcreate
command creates a code package used for composing packages (.mzp)
in order to create additional functionality and updates. The name and version will be visible in the About window once the new package has been committed into the system.
A package is created using the pcreate
command in the mzsh Command Line Tool:
usage: pcreate <name> <version> <package-file> [-level <default level>] [-revision <revision> ] [-repository <repository> ] [-hidden] [[-level <level name>] file=<file-to-include> ... ] [-osgi <true/false>] [-exported <export-version> file=<jar file>] For Private Cloud, AWS or when you do not have a local installation, do: java -jar $DEVKIT_JAR pcreate ...
Argument | Description |
---|---|
| The name of the package |
| The version string of the package |
| The resulting package file name |
| Specifies if this software should support update to a running system. The default level can either be Note! Not all kinds of software using the development toolkit can be updated and also that a third party library being used by the software may or may not support the execution level. |
| Used to show the revision number from which the |
| Used to show the repository from which the |
| Used if the |
| The level name can either be platform or execution. Each filename to be included can optionally be preceded by a level. |
| When this argument is set to true, the MZP will be built as an OSGi bundle. This ensures that the Java code within the bundle is isolated from the rest of Usage Engine. Use OSGi bundling when your DTK plugin depends on third-party libraries that you need to include in the MZP, so they do not cause any conflicts with the rest of the system. Only the Java packages explicitly exported will be visible to Usage Engine. To specify which Java packages to export, use the following options:
The default value is |
| When the com.mycompany.myagent1,com.mycompany.myagent2 Example - Using -osgi and -exportpackages mzsh username/password pcreate "My Agent" 1.0 my_agent.mzp -level platform file=my_agent.jar file=my_third_party_library.jar -osgi true -exportpackages com.mycompany.myagent |
[ -exported <export-version> file=<jar file>] | This argument will export all Java packages contained within the specified JAR file when used with the argument Example Using -osgi and -exported mzsh username/password pcreate "My Agent" 1.0 my_agent.mzp -level platform file=my_third_party_library.jar -osgi true -exported 1.0.0 file=my_agent.jar |
Committing a User Defined Package
To commit a user defined package: 1. $ kubectl cp my_agent.mzp platform-0:/opt/mz 2. $ kubectl exec -it platform-0 -- bash 3. $ mzsh user/pw pcommit my_agent.mzp
Note!
The name (My Agent
from the example above, https://infozone.atlassian.net/wiki/spaces/UEPE3D/pages/21469889/Creating+a+DTK+Plugin+3.2#Creating-a-User-Defined-Jar) is the package key. Thus, if a new package with the same name is inserted, then the old code for that package name is replaced.
Add Comment