This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
We must specify which level of distribution should hold logic for upgrade. Platform? Ide?
At first sight I would bet that upgrade is responsibility of final product. E.g. NetBeans, S1S, Rave, etc. There can be some kind of support from platform, so they do not need to write that from scratch, but the final logic shall be part of a product. As soon as we start to use cluster infrastructure (issue 32080) it means that the updater shall go to nb4.0 cluster (not platform4, not ide4).
Yarda, I also agree that this should fall under products but how products can plug in their upgrade logics to the startup sequence? Any API to do that?
Dirty: -J-Dnetbeans.mainclass=nbide.own.Main that calls org.netbeans.core.Main after doing all of its upgrade stuffs. The property is not stable, but one would be able to access openide.jar and possibly core.jar at that time. LessDirty: Do the update inside the netbeans launcher, by running separate java vm, if the user dir does not exists. Cleanly separated in launcher, but probably harder access to openide. CleanButNotDesignedYet: Provide some API in core to allow modules to "plug into". Not clear how the api should look like and when it should be called. Btw. this was our current state when core.jar called core/ide.jar by using reflection, if I remember correctly. Complex: Design StatupStages API that would define well known points of statup sequence, would go thru one to other and allow any module to register at certain points and do some actions at that time. Very needed in order to have microcore, but even less designed than previous solution.
Well, here is a link to proposal how we can solve the issue: http://www.netbeans.org/source/browse/core/arch/arch-core-launcher.xml.diff?r1=1.20&r2=1.20.2
I've choosen communication using a property netbeans.importclass as this is a friend API can be made unsupported easily. If I wanted to use Lookup, I would need to define a class somewhere and removing it would lead to linkage errors. With property and calls to main method this is unlikely to happen. I am writing tests to cover the behaviour. Reviewers please comment soon if you want another solution to be choosen.
Created attachment 15482 [details] Rewrite that seems to import something sometimes. Ready to commit.
The solution recognizes 3.6 user dir and is able to import from it. Only files listed in copy3.6 file (using regexp syntax described in the file) are copied (from system to config dirs). The import from 3.6 is a bit complicated by the fact that there could be multiple projects there and user was able to move the definition of any setting from global to project and from project to global. The result is that one setting can exist in multiple copies and we need to select one that will be imported into 4.0. Based on module writer feedback the following strategy has been choosen: 1. if a setting is available in Project/Default, it is copied. 2. otherwise if it is available in any Project/* it is copied, 3. if none of the above happens, the global setting is copied.
Checking in core/arch/arch-core-launcher.xml; /cvs/core/arch/arch-core-launcher.xml,v <-- arch-core-launcher.xml new revision: 1.21; previous revision: 1.20 done Processing log script arguments... More commits to come... Removing core/ide/src/org/netbeans/core/upgrade/AutoUpgrade.java; /cvs/core/ide/src/org/netbeans/core/upgrade/AutoUpgrade.java,v <-- AutoUpgrade.java new revision: delete; previous revision: 1.8 done Removing core/ide/src/org/netbeans/core/upgrade/AutoUpgradePanel.form; /cvs/core/ide/src/org/netbeans/core/upgrade/AutoUpgradePanel.form,v <-- AutoUpgradePanel.form new revision: delete; previous revision: 1.1 done Removing core/ide/src/org/netbeans/core/upgrade/AutoUpgradePanel.java; /cvs/core/ide/src/org/netbeans/core/upgrade/AutoUpgradePanel.java,v <-- AutoUpgradePanel.java new revision: delete; previous revision: 1.1 done Removing core/ide/src/org/netbeans/core/upgrade/Bundle.properties; /cvs/core/ide/src/org/netbeans/core/upgrade/Bundle.properties,v <-- Bundle.properties new revision: delete; previous revision: 1.15 done Removing core/ide/src/org/netbeans/core/upgrade/CopyUtil.java; /cvs/core/ide/src/org/netbeans/core/upgrade/CopyUtil.java,v <-- CopyUtil.java new revision: delete; previous revision: 1.19 done Removing core/ide/src/org/netbeans/core/upgrade/FileCopy.java; /cvs/core/ide/src/org/netbeans/core/upgrade/FileCopy.java,v <-- FileCopy.java new revision: delete; previous revision: 1.2 done Removing core/ide/src/org/netbeans/core/upgrade/InternalCopy.java; /cvs/core/ide/src/org/netbeans/core/upgrade/InternalCopy.java,v <-- InternalCopy.java new revision: delete; previous revision: 1.2 done Removing core/ide/src/org/netbeans/core/upgrade/UpgradeProcessListener.java; /cvs/core/ide/src/org/netbeans/core/upgrade/UpgradeProcessListener.java,v <-- UpgradeProcessListener.java new revision: delete; previous revision: 1.1 done Removing core/ide/src/org/netbeans/core/upgrade/forte4j20CE.cfg; /cvs/core/ide/src/org/netbeans/core/upgrade/forte4j20CE.cfg,v <-- forte4j20CE.cfg new revision: delete; previous revision: 1.1 done Removing core/ide/src/org/netbeans/core/upgrade/forte4j20IE.cfg; /cvs/core/ide/src/org/netbeans/core/upgrade/forte4j20IE.cfg,v <-- forte4j20IE.cfg new revision: delete; previous revision: 1.1 done Removing core/ide/src/org/netbeans/core/upgrade/nbdev.cfg; /cvs/core/ide/src/org/netbeans/core/upgrade/nbdev.cfg,v <-- nbdev.cfg new revision: delete; previous revision: 1.4 done Removing core/ide/src/org/netbeans/core/upgrade/netbeans30.cfg; /cvs/core/ide/src/org/netbeans/core/upgrade/netbeans30.cfg,v <-- netbeans30.cfg new revision: delete; previous revision: 1.1 done Removing core/ide/src/org/netbeans/core/upgrade/netbeans31.cfg; /cvs/core/ide/src/org/netbeans/core/upgrade/netbeans31.cfg,v <-- netbeans31.cfg new revision: delete; previous revision: 1.1 done Removing core/ide/src/org/netbeans/core/upgrade/userdir.cfg; /cvs/core/ide/src/org/netbeans/core/upgrade/userdir.cfg,v <-- userdir.cfg new revision: delete; previous revision: 1.8 done Processing log script arguments... More commits to come... Checking in core/src/org/netbeans/core/NonGui.java; /cvs/core/src/org/netbeans/core/NonGui.java,v <-- NonGui.java new revision: 1.112; previous revision: 1.111 done Processing log script arguments... More commits to come... RCS file: /cvs/core/test/unit/src/org/netbeans/core/NonGuiHandleImportOfUserDirTest.java,v done Checking in core/test/unit/src/org/netbeans/core/NonGuiHandleImportOfUserDirTest.java; /cvs/core/test/unit/src/org/netbeans/core/NonGuiHandleImportOfUserDirTest.java,v <-- NonGuiHandleImportOfUserDirTest.java initial revision: 1.1 done Processing log script arguments... More commits to come... Checking in ide/launcher/os2/netbeans.cmd; /cvs/ide/launcher/os2/netbeans.cmd,v <-- netbeans.cmd new revision: 1.3; previous revision: 1.2 done Processing log script arguments... More commits to come... Checking in ide/launcher/unix/netbeans; /cvs/ide/launcher/unix/netbeans,v <-- netbeans new revision: 1.6; previous revision: 1.5 done Processing log script arguments... More commits to come... RCS file: /cvs/ide/launcher/upgrade/.cvsignore,v done Checking in ide/launcher/upgrade/.cvsignore; /cvs/ide/launcher/upgrade/.cvsignore,v <-- .cvsignore initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/build.xml,v done Checking in ide/launcher/upgrade/build.xml; /cvs/ide/launcher/upgrade/build.xml,v <-- build.xml initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/manifest.mf,v done Checking in ide/launcher/upgrade/manifest.mf; /cvs/ide/launcher/upgrade/manifest.mf,v <-- manifest.mf initial revision: 1.1 done Processing log script arguments... More commits to come... RCS file: /cvs/ide/launcher/upgrade/nbproject/project.properties,v done Checking in ide/launcher/upgrade/nbproject/project.properties; /cvs/ide/launcher/upgrade/nbproject/project.properties,v <-- project.properties initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/nbproject/project.xml,v done Checking in ide/launcher/upgrade/nbproject/project.xml; /cvs/ide/launcher/upgrade/nbproject/project.xml,v <-- project.xml initial revision: 1.1 done Processing log script arguments... More commits to come... RCS file: /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/AutoUpgrade.java,v done Checking in ide/launcher/upgrade/src/org/netbeans/upgrade/AutoUpgrade.java; /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/AutoUpgrade.java,v <-- AutoUpgrade.java initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/AutoUpgradePanel.form,v done Checking in ide/launcher/upgrade/src/org/netbeans/upgrade/AutoUpgradePanel.form; /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/AutoUpgradePanel.form,v <-- AutoUpgradePanel.form initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/AutoUpgradePanel.java,v done Checking in ide/launcher/upgrade/src/org/netbeans/upgrade/AutoUpgradePanel.java; /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/AutoUpgradePanel.java,v <-- AutoUpgradePanel.java initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/Bundle.properties,v done Checking in ide/launcher/upgrade/src/org/netbeans/upgrade/Bundle.properties; /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/Bundle.properties,v <-- Bundle.properties initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/Copy.java,v done Checking in ide/launcher/upgrade/src/org/netbeans/upgrade/Copy.java; /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/Copy.java,v <-- Copy.java initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/IncludeExclude.java,v done Checking in ide/launcher/upgrade/src/org/netbeans/upgrade/IncludeExclude.java; /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/IncludeExclude.java,v <-- IncludeExclude.java initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/copy3.6,v done Checking in ide/launcher/upgrade/src/org/netbeans/upgrade/copy3.6; /cvs/ide/launcher/upgrade/src/org/netbeans/upgrade/copy3.6,v <-- copy3.6 initial revision: 1.1 done Processing log script arguments... More commits to come... RCS file: /cvs/ide/launcher/upgrade/test/.cvsignore,v done Checking in ide/launcher/upgrade/test/.cvsignore; /cvs/ide/launcher/upgrade/test/.cvsignore,v <-- .cvsignore initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/test/build-unit.xml,v done Checking in ide/launcher/upgrade/test/build-unit.xml; /cvs/ide/launcher/upgrade/test/build-unit.xml,v <-- build-unit.xml initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/test/build.xml,v done Checking in ide/launcher/upgrade/test/build.xml; /cvs/ide/launcher/upgrade/test/build.xml,v <-- build.xml initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/test/cfg-unit.xml,v done Checking in ide/launcher/upgrade/test/cfg-unit.xml; /cvs/ide/launcher/upgrade/test/cfg-unit.xml,v <-- cfg-unit.xml initial revision: 1.1 done Processing log script arguments... More commits to come... RCS file: /cvs/ide/launcher/upgrade/test/unit/src/org/netbeans/upgrade/CopyTest.java,v done Checking in ide/launcher/upgrade/test/unit/src/org/netbeans/upgrade/CopyTest.java; /cvs/ide/launcher/upgrade/test/unit/src/org/netbeans/upgrade/CopyTest.java,v <-- CopyTest.java initial revision: 1.1 done RCS file: /cvs/ide/launcher/upgrade/test/unit/src/org/netbeans/upgrade/IncludeExcludeTest.java,v done Checking in ide/launcher/upgrade/test/unit/src/org/netbeans/upgrade/IncludeExcludeTest.java; /cvs/ide/launcher/upgrade/test/unit/src/org/netbeans/upgrade/IncludeExcludeTest.java,v <-- IncludeExcludeTest.java initial revision: 1.1 done Processing log script arguments... More commits to come... Checking in ide/launcher/windows/netbeans.cpp; /cvs/ide/launcher/windows/netbeans.cpp,v <-- netbeans.cpp new revision: 1.6; previous revision: 1.5 done Processing log script arguments... More commits to come... Checking in nbbuild/build.xml; /cvs/nbbuild/build.xml,v <-- build.xml new revision: 1.508; previous revision: 1.507 done Checking in nbbuild/cluster.properties; /cvs/nbbuild/cluster.properties,v <-- cluster.properties new revision: 1.44; previous revision: 1.43 done
make the summary match what we did
nb.exe and netbeans.exe recompiled and checked in CVS
This issue was solved long time ago. Because nobody has reopened it neither added comments, we are verifying/closing it now. If you are still able to reproduce the problem, please reopen. Thanks in advance.