JFileSync - Java File Synchronization

Features Overview

The following sections give a brief overview of some JFileSync 2.1 features.

The Main Window

Tool BarThe main JFileSync functionality can be accessed via the tool bar, which allows you to open and save synchronization profiles, to perform comparisons and synchronizations, and to start a local JFS server.

ToolsA menu provides comprehensive access to the JFileSync tooling including starting a synchronization assistant, specifying your synchronization profile, comparing and synchronizing file system structures, viewing the history of synchronized files, and viewing JFileSync standard output and error messages.

All individual program settings are restored at startup time, including changes to the last opened profile, the window positions, the last visited directories, and the last opened profiles. All those settings are automatically stored to the user's home directory after application termination and restored at startup time.

TableWhen comparing pairs of directories that have to be synchronized, the result is a table visualizing the differences between both file system structures. The necessary actions in order to synchronize both structures are shown according to your chosen synchronization mode. This includes files that have to be copied from one side to the other or deleted from one side as well as files for which the application has to ask the user interactively what to do (because the necessary actions cannot be automatically resolved, e.g., in case of inconsistent file sizes). You may change the actions for selected file pairs via a popup menu as well as activate and deactivate synchronization for certain file pairs.

AssistantA synchronization assistant is provided for newbies in order to ease JFileSync usage and to guide through the three synchronization steps: (1) specifying a synchronization profile, (2) comparing all specified directory pairs, and (3) synchronizing all pairs according to the chosen synchronization mode.

ErrorsJFileSync allows you to access standard output messages and an error log via the graphical user interface. This is especially useful when running a JFS server in background and for a detailed search for reasons in case of failed copy or delete statements during synchronization. You may therefore update and clear the log file's contents. If unread error messages are available a corresponding button is viewed at the bottom of the main window.

Plug-InsJFileSync provides a simple plug-in interface that allows you to enhance the basic functionality and to make use of the internal API. Currently, two plug-ins are provided: One is able to shift all time stamps of the source or target file system structure (e.g., in order to correct invalid time stamps because of incorrect shifting to summer/winter time). The second plug-in is able to detect write protected files in the source or target file system structure.

Synchronization Profiles

ProfilesA synchronization profile stores all settings for the synchronization process, including a set of directories that have to be synchronized and the chosen synchronization mode. If directories that have to be synchronized don't exist, JFileSync displays a warning and asks to automatically create them. Apart from that, more advanced settings are available that allow you to specify the granularity of comparing time stamps of files, the buffer size used for copying files, the system's test run mode, and whether JFileSync should store histories of synchronized files.

Moreover, the profile manager allows you to specify exclusion (or inclusion) criteria as a set of regular expressions in order to reduce the number of files that have to be compared and synchronized.

An automatic synchronization mode is provided that utilizes a history that is stored after each synchronization in order to determine synchronization actions (files and directories to copy and to delete) automatically. This is the current default mode used. Apart from that, you may choose between eight additional individual synchronization modes that allow you to merge file system structures, or forcing to copy a certain file system structure.

A synchronization profile also allows you to specify JFileSync server settings including the port the server is started on and the used timeout for connections.

Synchronization Process

Progress BarThe whole synchronization functionality (except for plug-ins) is available via the graphical user interface and the command line. JFileSync comes with a simple built-in shell so that you can perform synchronizations interactively in the same way as using the graphical user interface. You may also run JFileSync in quiet mode with no user-interaction at all in order to automate synchronization activities as part of shell scripts.

Before the synchronization itself is started, a list of de-select all copy and delete statements is computed and you may select and de-select individual items from the list.

You may also control the comparison and synchronization's process via a progression bar that shows you the currently performed synchronization command as well as the copied number of bytes, and gives you the possibility to cancel the synchronization process.

JFS Server

ExternalSometimes it is not possible to hook an external file system in your local structure. For instance, (1) a Unix/Linux file server doesn't provide Samba, or NFS sharing capabilities, (2) it is - for some reasons - not possible to share a Windows folder, or (3) the access to an external server is protected by a firewall or you have limited access to the server capabilities in general.

Server StartIn all those cases you can use a JFS server to synchronize your files. A JFS server provides a simple interface for clients to get information from or to modify a file system on server side. Those external directories (accessed through a JFS server) may be included into your user profile and handled without transition; that is, a directory pair you want to synchronize may include two local directories, a local and an external one, or even two external directories. You may start and stop the JFS server via the graphical user interface or alternatively via the command line.