Home of Onyx Server
DnD Networks has migrated to their own dedicated server. This could bring some instability in the system during august. please report any issues using the help desk.
DnD team is currently working on a new project: Onyx Lite. More infos soon.
Onyx is a module container. Modules are contained in the modules directory in which each directory represents a module.
Modules can be downloaded from the Modul'Onyx repository.
To install it, just drop the module.zip file in the module directory, Onyx will detect the file and will deploy it.
{Description image}
Tree-based Architecture:
A module is part of a tree structure where the top element is Onyx itself. Follow the instruction of the parent to create a module. Entry-point of the module can vary, the programmation language itself can vary.
For example, a module written in java may load children written in javascript. To conclue, a module must respect the rules of the parent module.
{Description image}
Module desciption:
Creation of a module under Onyx
Children modules of Onyx must be written in java and requires a class as entry-point which implements 2 methods and has got a public empty constructor.
Onyx will call the load method when the module gets deployed and the unload method when the module gets undeployed.
/**
* Called by the parent module to load this module or one of
* his children. A module is responsible for his loading and
* his children's loading.
* @param prop the properties attached to the module to load
*/
public void load(Properties prop);
/**
* Called by the parent module to unload this module or one of
* his children. A module is responsible for his unloading and
* his children's unloading.
* @param prop the properties attached to the module to unload
*/
public void unload(Properties prop);
The Properties sent to the methods are system onyx properties and the ones coming from module.xml. So, if you add some user-defined parameters in the module.xml,
you will be able to pick them up in the load and unload methods.
Onyx creates a separate class loader for each module, so if you need to communicate between 2 modules, use the Services.
Helloworld example
We've prepared a full workspace of the classic Helloworld example. This example just displayed a message when loaded and unloaded by Onyx + some logging infos.
This workspace is using ant to compile, package and zip the module:
Here is the link to the HelloWorldModuleWorkspace.zip