Clone wiki

metaphora / Home


Welcome to Metaphora's wiki!

Metaphora is a JavaFX 2 rich application written in Java and Groovy, and uses the GroovyFX and Netty projects. Metaphora permits to send and receive large files between two machines, so it acts as client/server application.
You can see it in action in this screencast where, for the purpose of the demonstration, somes files are sent from and to the same instance of the application. The screenshot below also shows some progress bars when you send or receive files.


Using Metaphora

The application has a main form presenting a rectangular area, the DROP ZONE, and will show what's going on when files will be sent or received (to or from another instance of the application, normally on an another machine) by displaying progress bars for transfers progression.
Files can be sent simply by dragging them from the operating system and dropping them into the DROP ZONE. These files are then automatically transferred toward the destination machine. Of course, Metaphora must be running on this target machine in order to receive the files.

Configuring Metaphora

Metaphora uses a properties file to keep important parameters for its execution; this file,, is located in the .metaphora folder inside the user's folder. Normally, this file is created for you run the application for the first time. This repository gives an example of a such file, with conf/
Here the key/value pairs used in this file:

Key nameDescription
inboxFilenameAn absolute directory path in which received files will be saved
By default it's the .../.metaphora/in folder.
serverPortThe port number used by the TCP server.
clientHostHostname or IP of the target machine (that will receive files).
clientPortThe port number used by the Metaphora server target machine.

Building Metaphora

Metaphora can be built with Gradle 1.0.

The Gradle build file provides tasks to build the application, but also:

  • the metaphora task to run Metaphora from the command line
  • the dist task to produce the .jar files and a .jnlp file useful to start the application with Java Web Start. For that, you need to have a JRE 7 installed and that includes JavaFX 2 (we test it with Java 7 Update 5).
    This task generates files in the build/dist folder. For convenience, these files are provided in this repository.

Running Metaphora

As stated above, the best way (for now) to run Metaphora outside the build tool, is to run the metaphora-*.jnlp file via Java Web Start. So, it would be possible to create un shortcut to the application from the Java Web Start viewer cache.