Home  |  Software Components  |  Examples  |  Books  
   TVM Component -> Documentation -> History   

TVM Version History

Version 1.2.2-u - December 2003

This is an unsynchronized version of the TVM 1.2.2 specification. If multiple threads access an instance of TVMu concurrently, and at least one of them modifies a property, access must be synchronized externally.

Enhancements/Error Corrections:

  • Begining with version TVM 1.2.2, the TVM bean is now distributed as open source software licensed under the terms of the GNU Lesser General Public License.
  • Changed the package name to com.cedarspring.tvm
  • Corrected an error in computeNumberOfPeriods method that occured when interestRate = 0
  • Corrected localization errors in the demo applet and revised the GUI slightly
  • Added JUnit tests to the dev environment (on-going)
  • Began a project to document the algorithms, scaling, and rounding (on-going)

Known Errors:

  • The component icons (TVM16x16.gif, TVM32x32.gif) are in the top level directory of the jar instead of under com/cedarspring/tvm/ as they should be. Due to this error, visual builders will display a blank entry on the palatte without the calculator icon. The component can still be selected and used normally, however.
  • The component cannot be rebuilt under Java 5 due to an error in the /dev/build.xml file. The default is to build a component compatible with Java 1.1 so that it can be run with the Microsoft virtual machine. A source of Java 1.3 is required in Java 5 compiler to make this work. The entry should be:
  • The internationalization (/i18n) folder is missing from the classpath of the unit test task. It should be:
    	java classname="test.AllTests" fork="true"
    	  classpath path=".;${junit}/junit.jar;../TVM.jar;i18n" 
  • The ErrorSupport module sets the severity of all error events as ErrorEvent.ERROR. It does not recognize warning or info messages. Currently this is not a problem since all events in the standard group actually have severity of ERROR. However it does become a problem if you extend the ErrorResource file with warning or info messages.
  • The demo applet always displays years and effective interest with a period as the decimal separator. It does not change with locale. The labels do not stretch enough to accomodate different languages.

Version 1.2.1-u August 2002

Enhancements/Error Corrections:

  • Synchronzation was removed.
  • Added Enumeration to the AmortizationSchedule object. This will allow you to use the new Java Standard Tag Library (JSTL) tags (such as forEach) to display an amortization schedule in a Java Server Page (JSP).
  • Added the virtual property "years".
  • Designated several properties as "Expert" (Please see the properties table).
  • Corrected an error that caused a SecurityException when the component was added to the palette of some IDE's.
  • Removed display names from property descriptors. Spaces in the display names caused problems in some IDE's which used them to form method names.
  • New methods:
    • AmortizationSchedule.getAmortizations()
    • TVMu.setYears(BigDecimal years)
    • TVMu.getYears()

Version 1.2.0 November 2000:

Enhancements/Error Corrections:

  • Added a method to the TVM class to create loan amortization schedules:
    • getAmortizationSchedule() - Returns an amortization schedule. The schedule is a list of Amortization objects, each containing the principal, interest, and ending balance for one payment period.
  • Added two public classes to support loan amortization:
    • AmortizationSchedule
    • Amortization
  • Added version information to the jar file which can be extracted by Package methods:
      Package p = Package.getPackage("com.getobjects.tvm");
      if (p != null)
           System.out.println("Name: " + p.getName());
           System.out.println("SpecificationTitle: "    + p.getSpecificationTitle());
           System.out.println("SpecificationVersion: "  + p.getSpecificationVersion());
           System.out.println("SpecificationVendor: "   + p.getSpecificationVendor());
           System.out.println("ImplementationTitle: "   + p.getImplementationTitle());
           System.out.println("ImplementationVersion: " + p.getImplementationVersion());
           System.out.println("ImplementationVendor: "  + p.getImplementationVendor());
    See Sun's Package Versioning Specification for more info.

Version 1.1.0 January 2000

Enhancements/Error Corrections:

  • New methods:
    • getEffectiveRate() - Returns an annual effective rate that is equivalent to the annual nominal interest rate (read-only property).
    • setLocale(Locale); getLocale() - Sets and returns a the locale. Prior versions always used the default locale.
    • clearMessage() - Clears the last message returned by any ErrorEvent.
  • Corrected a property name error in the BeanInfo class.

Version 1.0.0 October 1999

  • First Release.

See the JavaDocs for more detail about the bean and concepts for information about time value of money.


Current Requirements and Limitations:

Minimum Requirements Java 1.1, JSP 1.0
Interest Per Year Range is 0-999.   Interest rates for money will generally always be positive, but a negative rate would be useful for some physical goods such as gold, forests, etc. that have a maintenance cost.
Number Of Periods Range is whole numbers between 0-1200. The computeNumberOfPeriods() method will round the result to the nearest whole number.
P/Y & C/Y Range of paymentsPerYear and compoundingPerYear is whole numbers between 1-365.
Localization A US English and German error message resource files are currently available.

Copyright ©1998-2003 Cedar Spring Software, Inc.  All Rights Reserved
Privacy | Legal & Terms of Use | Trademarks | Feedback | About