#*
#*******************************************************************************
#* Copyright (C) 2006-2009, International Business Machines Corporation and    *
#* others. All Rights Reserved.                                                *
#*******************************************************************************
#* This is the properties file for ICU4J builds. 
#*

# spec version won't be changed in a feature stream
icu4j.spec.version.string=4.0

# impl version will be updated for maintenance releases.
# It must be <icu4j.spec.version.string>[.<maint-version>]
icu4j.impl.version.string=4.0.1.1

# data version number won't be changed in a feature stream
icu4j.data.version.number=40

# these version numbers are used by API change report
icu4j.version.number=401
icu4j.previous.version.number=400

current.year=2009
api.report.out=${api.dir}/icu4j_compare_${icu4j.previous.version.number}_${icu4j.version.number}.html
copyright=Copyright (c) 2000-2009, International Business Machines Corporation and others.  All Rights Reserved.
corp=IBM Corporation
default.target.rt.version=J2SE15

icu4j.plugin.impl.version.string=4.0.1
copyright.eclipse=Licensed Materials - Property of IBM \n (C) Copyright IBM Corp. 2000, 2009. All Rights Reserved. \n IBM is a registered trademark of IBM Corp.