Index: src/META-INF/netbeans/translate.names =================================================================== RCS file: /cvs/core/settings/test/unit/src/META-INF/netbeans/translate.names,v retrieving revision 1.2 diff -c -r1.2 translate.names *** src/META-INF/netbeans/translate.names 16 May 2002 17:32:17 -0000 1.2 --- src/META-INF/netbeans/translate.names 1 Oct 2002 13:51:32 -0000 *************** *** 11,13 **** --- 11,14 ---- # Old repackaging. org.UnknownClass=org.netbeans.modules.settings.convertors.FooSetting + org.netbeans.modules.settings.convertors.ObsoleteClass=org.netbeans.modules.settings.convertors.FooSetting Index: src/org/netbeans/modules/settings/convertors/XMLPropertiesConvertorTest.java =================================================================== RCS file: /cvs/core/settings/test/unit/src/org/netbeans/modules/settings/convertors/XMLPropertiesConvertorTest.java,v retrieving revision 1.7 diff -c -r1.7 XMLPropertiesConvertorTest.java *** src/org/netbeans/modules/settings/convertors/XMLPropertiesConvertorTest.java 3 Sep 2002 12:40:21 -0000 1.7 --- src/org/netbeans/modules/settings/convertors/XMLPropertiesConvertorTest.java 1 Oct 2002 13:51:33 -0000 *************** *** 56,68 **** protected void setUp() throws java.lang.Exception { super.setUp(); - org.openide.TopManager.getDefault(); java.net.URL layer = this.getClass().getResource("data/layer.xml"); fs = new XMLFileSystem(layer); sfs = Repository.getDefault().getDefaultFileSystem(); root = sfs.getRoot(); assertNotNull("SFS root not found", root); } public void testReadWrite() throws Exception { --- 56,73 ---- protected void setUp() throws java.lang.Exception { super.setUp(); org.openide.TopManager.getDefault(); java.net.URL layer = this.getClass().getResource("data/layer.xml"); fs = new XMLFileSystem(layer); sfs = Repository.getDefault().getDefaultFileSystem(); root = sfs.getRoot(); assertNotNull("SFS root not found", root); + + FileObject serdata = sfs.findResource("xml/lookups/NetBeans/DTD_Session_settings_1_0.instance"); + assertNotNull("missing registration for serialdata format", serdata); + Object attr = serdata.getAttribute("instanceCreate"); + assertNotNull("core's registration for serialdata format", attr); + assertEquals(SerialDataConvertor.Provider.class, attr.getClass()); } public void testReadWrite() throws Exception { *************** *** 220,225 **** --- 225,232 ---- assertEquals("localhost", foo.getProperty1()); } + /* default instance in serial data format -> xml properties format + */ public void testUpgradeSetting() throws Exception { String res = "Settings/org-netbeans-modules-settings-convertors-FooSettingSerialData.settings"; FileObject fo = sfs.findResource(res); *************** *** 227,232 **** --- 234,262 ---- long last = fo.lastModified().getTime(); DataObject dobj = DataObject.find (fo); + InstanceCookie.Of ic = (InstanceCookie.Of) dobj.getCookie(InstanceCookie.Of.class); + assertNotNull (dobj + " does not contain instance cookie", ic); + assertTrue("instanceOf failed", ic.instanceOf(FooSetting.class)); + assertEquals("instanceClass failed", FooSetting.class, ic.instanceClass()); + + FooSetting foo = (FooSetting) ic.instanceCreate(); + assertEquals("too early upgrade", last, fo.lastModified().getTime()); + + foo.setProperty1("A"); + Thread.sleep(3000); + assertTrue("upgrade failed", last != fo.lastModified().getTime()); + } + + /* object of deprecated class persisted in serial data format -> new object + * persisted in xml properties format + */ + public void testUpgradeSetting2() throws Exception { + String res = "Settings/testUpgradeSetting2/ObsoleteClass.settings"; + FileObject fo = sfs.findResource(res); + assertNotNull(res, fo); + long last = fo.lastModified().getTime(); + + DataObject dobj = DataObject.find(fo); InstanceCookie.Of ic = (InstanceCookie.Of) dobj.getCookie(InstanceCookie.Of.class); assertNotNull (dobj + " does not contain instance cookie", ic); assertTrue("instanceOf failed", ic.instanceOf(FooSetting.class)); Index: src/org/netbeans/modules/settings/convertors/ObsoleteClass.java =================================================================== RCS file: src/org/netbeans/modules/settings/convertors/ObsoleteClass.java diff -N src/org/netbeans/modules/settings/convertors/ObsoleteClass.java *** /dev/null 1 Jan 1970 00:00:00 -0000 --- src/org/netbeans/modules/settings/convertors/ObsoleteClass.java 1 Oct 2002 13:51:33 -0000 *************** *** 0 **** --- 1,39 ---- + /* + * Sun Public License Notice + * + * The contents of this file are subject to the Sun Public License + * Version 1.0 (the "License"). You may not use this file except in + * compliance with the License. A copy of the License is available at + * http://www.sun.com/ + * + * The Original Code is NetBeans. The Initial Developer of the Original + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2002 Sun + * Microsystems, Inc. All Rights Reserved. + */ + + package org.netbeans.modules.settings.convertors; + + import java.io.IOException; + import java.io.ObjectInputStream; + import java.io.ObjectStreamException; + + /** Obsolete setting class + * + * @author Jan Pokorsky + */ + public class ObsoleteClass implements java.io.Serializable { + + private static final long serialVersionUID = 3465637344523787865L; + private String prop; + + public ObsoleteClass() { + } + public ObsoleteClass(String t) { + prop = t; + } + + private Object readResolve() throws ObjectStreamException { + return new FooSetting(prop); + } + + } Index: src/org/netbeans/modules/settings/convertors/data/mf-layer.xml =================================================================== RCS file: /cvs/core/settings/test/unit/src/org/netbeans/modules/settings/convertors/data/mf-layer.xml,v retrieving revision 1.6 diff -c -r1.6 mf-layer.xml *** src/org/netbeans/modules/settings/convertors/data/mf-layer.xml 22 Aug 2002 16:38:54 -0000 1.6 --- src/org/netbeans/modules/settings/convertors/data/mf-layer.xml 1 Oct 2002 13:51:33 -0000 *************** *** 52,57 **** --- 52,61 ---- ]]> + + + Index: src/org/netbeans/modules/settings/convertors/data/obsolete_class.xml =================================================================== RCS file: src/org/netbeans/modules/settings/convertors/data/obsolete_class.xml diff -N src/org/netbeans/modules/settings/convertors/data/obsolete_class.xml *** /dev/null 1 Jan 1970 00:00:00 -0000 --- src/org/netbeans/modules/settings/convertors/data/obsolete_class.xml 1 Oct 2002 13:51:33 -0000 *************** *** 0 **** --- 1,12 ---- + + + + + + + + ACED0005737200366F72672E6E65746265616E732E6D6F64756C65732E73657474696E67732E636F6E766572746F72732E4F + 62736F6C657465436C61737330186ACD98AB1E590200014C000470726F707400124C6A6176612F6C616E672F537472696E67 + 3B787074000D4F62736F6C657465436C617373 + +