In order to get the best performance out of AndroMDA some improvements have been implemented that will significantly speed-up the generation process, one of these improvements is the AndroMDA server.
The server has been designed to (re)load the UML model in the background thereby minimizing the resources needed to keep track of the latest changes. There are at least two advantages:
In order to properly launch the server you'll need to configure it
in the andromda.xml
configuration file. Assuming you have
generated your project using andromdapp:generate
this file
will be located in /mda/conf/andromda.xml
.
Since AndroMDA 3.2 the server will be configured by default, to fine-tune please see Configuring AndroMDA .
Just make sure the server is listening on a port which isn't in use. Typically the configuration will look like this:
<server> <host>localhost</host> <port>4446</port> </server>
So you know how to configure the server, but you're wondering how to launch it.
It's very easy if you have generated your project using
andromdapp:generate
, just type maven start-andromda-server
in the root of your project. Mind you, this will block the console so you'll need
to open another one to call your project's maven goals. Call
maven stop-andromda-server
to stop the server process.
Starting and stopping the server has been included in the Maven
andromda
plugin, please see the corresponding
goals documentation
.
Here is a step-by-step example on how to make sure things are properly working, we'll assume you have generated your project using at least AndroMDA version 3.2 as described in the Getting Started page.
maven start-andromda-server
maven mda
to generate code
from the model (most of the time you'll want to build the entire
project by simply typing maven
, in this example
we're performing the code generation part only)
Don't forget Maven allows the -o
flag which will instruct it not
to download any dependencies, you should use it once you are certain all
dependencies have been downloaded into your local Maven repository.