Main Page

From JMoney

Jump to: navigation, search

  JMoney

Information
Maintainer: Johann Gyger, Nigel Westbury
Latest release: 0.4.5  ()
Latest preview: 1.0  ()
Platform: platform independent
Genre: financial
License: GNU GPL
Languages: multilanguage
Website: JMoney Homepage


JMoney RCP is a personal finance (accounting) manager written in Java. It is built using the Eclipse RCP and can be extended using plug-ins. If you wish your accounts program had a feature specific to your needs, download JMoney RCP and write a plugin.

Contents


Download

Latest developer preview (28 August 2007)
Filename Size Description
jmoney-rcp-1.0pre2-win32.zip 35 MB JMoney RCP 1.0pre2 for Windows
jmoney-rcp-1.0pre2-maxosx-carbon.zip 33 MB JMoney RCP 1.0pre2 for Mac

Screenshots

Screenshots

Plug-in Overview

No accounting program can hope to include all the features required by users. Attempts to provide features required by users usually result in a bloated and difficult to maintain program. Some users are happy with most features of an accounting program but have specialized requirements. Some users have data stored in existing databases and wish to leave the data in the database and have an accounting program that can work with the data. Users may have additional data that they want to store with each account, category or entry. JMoney addresses all of these requirements and more through its support for plug-ins.

In order to support plug-ins, JMoney has been re-written to run on top of the Eclipse 3.3 Rich Client Platform. The full power of the Eclipse plug-in framework makes the JMoney finance manager a powerful extensible accounting framework. In addition to all the usual extension points provided by Eclipse for adding views, menu items, actions etc., the JMoney framework provides extension points for extending the data model. Plug-ins can add new properties to accounts, transactions, categories, entries and any other class of object in the data model. Plug-ins can add new classes that are derived from existing classes in the data model. Plug-ins may add new base classes to the data model. The JMoney framework also allows plug-ins to be developed that implement a datastore. Users may thus chose to store their JMoney accounts in, for example, a local XML file, an SQL database, or even a mixture of different datastore types.

It is expected that a large number of plug-ins will be developed. Plug-ins are planned for graphs, online banking (HBCI), etc.

Installation from Source

If you are a developer and you would like try out the plugable JMoney then you will need to checkout the source code from CVS and build it. To run JMoney RCP from source, you will need to follow these steps:

  • Install Java 1.5 (JMoney uses generics and the enhanced for-each loop)
  • Install Eclipse 3.3 (3.2 and prior are no longer supported by JMoney), the Eclipse RCP package includes everything needed by JMoney (except the optional BIRT plug-ins), other packages may be ok too
  • Install Subclipse from update site http://subclipse.tigris.org/update_1.2.x
  • Optional: If you want to run BIRT reports then install the BIRT plug-ins and their dependencies
  • Start Eclipse with a new runtime workspace ('file' menu, select 'Switch Workspace')
  • Select the 'Go to Workbench' icon (it is the icon on the right side)
  • From the 'file' menu, select 'import'
  • Select 'Checkout Projects from SVN' (Under 'Other') and press 'Next'
  • Enter the repository location (URL) 'https://jmoney.svn.sf.net/svnroot/jmoney' and press 'Next'
  • Expand 'trunk', then select all the projects listed under 'trunk' and press 'Next'
  • Select 'Check out into the workspace as projects' and press 'Next'
  • Select your preferred workspace location and press 'Finish'

The following problems have been known to occur:

  • The net.sf.jmoney plug-in fails to build, showing the message "Project net.sf.jmoney is missing required source folder: 'src'". Cleaning all the projects fixes this problem.

Run JMoney as follows:

  • Select 'Run' or 'Debug' (these actions are found both in the Run menu and in the toolbar)
  • Create a new Eclipse Application
  • Main tab: Select 'Run a product' and select 'net.sf.jmoney.product'
  • Plugins tab: Select 'Choose plug-ins and fragments to launch from the list'. The quickest way to get a good list of plug-ins is as follows:
    • press the 'Deselect All' button
    • select 'Workspace Plug-ins' in the plug-in tree
    • press the 'Add Required Plug-ins' button
  • Press the 'Run' or 'Debug' button and that's it

Plug-ins

The following plug-ins are available from the JMoney project site on Sourceforge:

to run reports.

  • net.sf.jmoney.oda.ui The An ODA driver that provides the JMoney data to BIRT. This plug-in contains the pieces that are

required to design a report but are not required to run a report.

The following plug-ins are available from other providers:

  • <add your own plug-in here>

Architecture

Here is a list of main line topics that describe the architecture of JMoney. The JMoney framework allows plug-ins to add user interface components and user features, extend the metadata with new properties and objects, and implement different datastores. The plug-ins must be able to work together even if each plug-in is not aware of the other plug-ins. To meet these requirements, there are a number of components of the framework that should be understood by plug-in developers.

  • change notifications Plug-ins may need to know when changes have been made to the datastore. The plug-ins can then take action such as updating other tables in the datastore or displaying a message to the user.
  • transactions Transaction support allows a plug-in to make changes to the datastore and see those changes but without other views or plug-ins seeing those changes until committed. Transactions also allow a plug-in to temporarily set the datastore to a state that is inconsistent, needing to bring it back to a consistent state only when the changes are committed.
  • extending the data model Plug-ins may extend the data model. Properties may be added to accounting objects, or new object classes may be created by a plug-in.
  • undo and redo JMoney supports undo and redo. This topic covers issues that plug-in developers should know if undo and redo is to work well with the plug-in.
  • datastores JMoney allows plug-ins to be written that store the JMoney data in various different formats, including transactional databases. Implementing a datastore plug-in can be a complex task. However, if the datastore is a file format that follows the new/open/save/save as life cycle then the serializeddatastore plug-in provides an extension point which can be extended simply by implementing a method to read the data from file, a method to write the data to file, and a few other bits of information such as the file extension.

Release Instructions

Creating a new release is quite simple:

  • Precondition: you need an appropriate Eclipse 3.3 distribution including the RCP delta pack for cross platform builds.
  • Adapt the plug-in versions.
  • Open the file net.sf.jmoney/jmoney.product with the Product Configuration Editor.
  • Go to tab Branding > Text and adapt the version.
  • Go to tab Overview and click on the Exporting > Eclipse Product Export Wizard link.
  • The export wizard is quite intuitive.