#*
#*******************************************************************************
#* Copyright (C) 2006-2010, 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.2

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

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

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

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

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

icu4j.eclipse.build.version.string=4.2.1.v20100212
