Development

From jOrgan Wiki v1.25.1
Jump to: navigation, search

jOrgan is developed in the wikipedia:Java_(programming_language) programming language. The project is developed on Ubuntu Linux and hosted on sourceforge.net.

We recommend using Eclipse for an easy start into jOrgan development. Each module contains an Eclipse project file which you can import into your workspace.

Source code

If you want to participate in our development you can access the program's source code from our wikipedia:Subversion_(software) Subversion repository:

 https://sourceforge.net/p/jorgan/code

jOrgan is divided into several modules: One core module and one additional module for each extension.

With the following command you get a full copy of the program's source code into a local folder 'jorgan':

svn checkout https://svn.code.sf.net/p/jorgan/code/trunk jorgan

Building from Source

To build jOrgan your system has to fulfill the following prerequisites:

Depending on your setup you will have to adjust paths in the file build.properties. Start ant in the root folder to build all modules:

ant

You can now use the script ./run.sh to start jOrgan.

Windows users can use the Mingw-w64 compiler. Twilight Dragon Media offers a convenient TDM-GCC installer.

For linux there are additional prerequisites:

  • fluidsynth headers for the fluidsynth extension (sudo apt-get install libfluidsynth-dev)
  • awesfx for the Creative extension (unpack the source and run ./configure)


Trouble shooting

No program is free of bugs, neither is jOrgan.

Exception

If jOrgan reports an unexpected exception, we might find a clue in your application log. This is a file written in your home folder as .jorgan/app.log. Check its contents and report the last entries on our mailing list.

Crash

Under rare circumstances the wikipedia:JVM might crash, i.e. it ends immediately. Please check the existence of a file hs_err_pidxxxx.log and post it on our mailing list.

Sluggishness

If you experience sluggishness with the program, the activity of the garbage collector might give use some clues. Please start jOrgan with the following parameters:

java -verbose:gc -jar jorgan.jar

Freeze

If you encounter program freezes, this might caused by threading problems. Please start jOrgan with the following parameters:

java -jar jorgan.jar

As soon as jOrgan becomes unresponsive, press Ctrl+Pause (CTRL+\ for Unix) on the command line to generate a thread dump:

Dump.png

If jOrgan is running in the background then send it the QUIT signal:

kill -QUIT <pid>

Memory exhaustion

For memory usage analysis it might be necessary to have a heap dump available. For this start jOrgan with the hprof agent enabled:

java -agentlib:hprof=format=b -jar jorgan.jar

On program exit the file java.hprof will be generated which we'll be able to analyse later on.