On Thu, Sep 19, 2013 at 9:56 AM, Marius Dumitru Florea <mariusdumitru.flo...@xwiki.com> wrote: > On Thu, Sep 19, 2013 at 10:34 AM, Thomas Mortagne > <thomas.morta...@xwiki.com> wrote: >> On Thu, Sep 19, 2013 at 9:31 AM, Thomas Mortagne >> <thomas.morta...@xwiki.com> wrote: >>> On Thu, Sep 19, 2013 at 9:10 AM, Marius Dumitru Florea >>> <mariusdumitru.flo...@xwiki.com> wrote: >>>> On Wed, Sep 18, 2013 at 4:13 PM, Thomas Mortagne >>>> <thomas.morta...@xwiki.com> wrote: >>>>> On Wed, Sep 18, 2013 at 3:08 PM, Marius Dumitru Florea >>>>> <mariusdumitru.flo...@xwiki.com> wrote: >>>>>> On Wed, Sep 18, 2013 at 12:26 PM, Thomas Mortagne >>>>>> <thomas.morta...@xwiki.com> wrote: >>>>>>> On Wed, Sep 18, 2013 at 11:09 AM, Guillaume "Louis-Marie" Delhumeau >>>>>>> <gdelhum...@xwiki.com> wrote: >>>>>>>> Hi devs. >>>>>>>> I am testing the migration from XEM 4.5.4 to XE 5.2 (local build). >>>>>>>> Sorin >>>>>>>> has already reported some problems in JIRA. >>>>>>>> For me, the problem occurs when I use the "upgrade all wikis" option. >>>>>>>> >>>>>>>> Let me explain it: >>>>>>>> >>>>>>>> = Prerequisites = >>>>>>>> >>>>>>>> 1. Install a new XEM 4.5.4. >>>>>>>> 2. Create a workspace with WorkspaceManager (called 'workspace1') >>>>>>>> 3. Create a new subwiki with WikiManager (called 'subwiki1') - I >>>>>>>> create it >>>>>>>> from a XAR template which is xwiki-enterprise-ui-all. >>>>>>>> >>>>>>>> = Upgrade, part 1 = >>>>>>>> >>>>>>>> 1. Replace the webapp with a 5.2. >>>>>>>> 2. Put your own maven directory as the extension repository. (in >>>>>>>> xwiki.properties: >>>>>>>> extension.repositories=local:maven:file://${sys:user.home}/.m2/repository) >>>>>>>> 3. Upgrade the main wiki >>>>>>>> >>>>>>>> It works: >>>>>>>> - For example Main.SpaceIndex is in version 2.1. >>>>>>>> - In the "installed extensions" menu, I can see all extensions >>>>>>>> correctly >>>>>>>> upgraded. >>>>>>>> >>>>>>>> = Upgrade, part 2 = >>>>>>>> >>>>>>>> == Scenario 1 == >>>>>>>> 1. In the DW, choose "Upgrade all wikis. Choose this option if all >>>>>>>> wikis >>>>>>>> are administrated by the same entity.". >>>>>>>> It displays "All extensions are up to date. " >>>>>>>> >>>>>>>> But: >>>>>>>> 'workspace1' is not upgraded: >>>>>>>> - for example Panels.WorkspaceInformationPanel is still in version 1.1 >>>>>>>> - In the "installed extensions" menu, I see 'XWiki Enterprise - UI >>>>>>>> All'. It >>>>>>>> has not been upgraded because there is no new version for it. It has >>>>>>>> been >>>>>>>> replaced by xwiki-enterprise-ui-wiki-all. >>>>>>>> >>>>>>>> 'subwiki1' is not upgraded: >>>>>>>> - for example Main.SpaceIndex is still in version 1.1 >>>>>>>> - In the "installed extensions" menu, I see 'XWiki Enterprise - UI All >>>>>>>> ' >>>>>>>> with the message 'Installed but not valid'. It has not been upgraded >>>>>>>> because there is no new version for it. It has been replaced by >>>>>>>> xwiki-enterprise-ui-common. >>>>>>>> >>>>>>>> == Scenario 2 == >>>>>>>> 1. In the DW, choose "Upgrade only the current wiki. Choose this >>>>>>>> option if >>>>>>>> each wiki is administrated by a separate entity. In this case it's >>>>>>>> best if >>>>>>>> each wiki is upgraded by its owner. ". >>>>>>>> 2. Go to every subwiki, logged as Admin. You will see the DW. >>>>>>> >>>>>>>> 3. Select "Yes, this is an upgrade". >>>>>>> >>>>>>> I don't understand this part, it's not supposed to ask you if it's an >>>>>>> upgrade. You are supposed to get this question only for old previous >>>>>>> wikis where there was no extensions registered corresponding to the >>>>>>> installed pages. >>>>>>> >>>>>> >>>>>>> Marius ? >>>>>> >>>>>> I have this code: >>>>>> >>>>>> #macro (displayDefaultUIExtension $distributionUIId) >>>>>> #set ($installedVersion = >>>>>> $services.extension.getInstalledExtension($distributionUIId.id, >>>>>> $extensionNamespace)) >>>>>> ... >>>>>> #set ($discard = "#getExtensionJobStatus($distributionUIId.id >>>>>> $distributionUIId.version.value $distributionUIJobStatus)") >>>>>> #if (!$installedVersion && (!$distributionUIJobStatus || >>>>>> $distributionUIJobStatus.state == 'FINISHED')) >>>>>> ## There is no previous version of the default UI installed on the >>>>>> current wiki and there is no job running for >>>>>> ## the default UI either. >>>>>> #set ($documentCount = $xwiki.countDocuments('')) >>>>>> #if ($distributionState == 'NEW' && $documentCount > 30) >>>>>> ## There are documents in the database but there is no info >>>>>> about the default UI that was previously installed. >>>>>> #repairPreviousUI() >>>>>> #elseif ($distributionState == 'DIFFERENT') >>>>>> ## TODO: Display the previous distribution UI extension to let >>>>>> the user uninstall it. >>>>>> #end >>>>>> #end >>>>>> ... >>>>>> #end >>>>>> >>>>>> So $distributionUIId is probably >>>>>> 'org.xwiki.enterprise:xwiki-enterprise-ui-wiki' and $installedVersion >>>>>> is null because EM doesn't think it's installed. The installed version >>>>>> is probably xwiki-enterprise-ui. The the upgrade question is displayed >>>>>> because the id of the default UI has changed. Is there are way to >>>>>> improve the condition on my side or should EM detect that >>>>>> 'xwiki-enterprise-ui' is a previous version of >>>>>> 'xwiki-enterprise-ui-wiki'? >>>>> >>>> >>>>> We talked about it already and the issue is that you are searching for >>>>> xwiki-enterprise-ui-wiki id that you will obviously don't find, you >>>>> need to test all features of xwiki-enterprise-ui-wiki. A some point >>>>> you worked around it by putting an hardcoded list somewhere of all the >>>>> previous ids of XE AFAIK so you could probably just update it but the >>>>> best really would be to to it properly by looking at features. >>>> >>>> The hard-coded list of XE/XEM XAR ids is still used but only when >>>> repairing the installed UI (when DW doesn't know which version is >>>> currently installed). >>>> >>>> I'll update the code to take into account all the features (recursively?). >>> >>> The last version is supposed to contains all previous names so no need >>> to do it recursively. >> > >> Hmm actually the best is maybe to simply don't ask anything if there >> is any XAR extension installed. If there is something whatever it is, >> it's an upgrade, done. > > You mean iterating over getInstalledExtensions and checking if there > is one with type XAR?
Yep. > >> >>> >>>> >>>> Thanks, >>>> Marius >>>> >>>>> >>>>>> >>>>>> Thanks, >>>>>> Marius >>>>>> >>>>>>> >>>>>>>> Note: if you upgrade a subwiki, the proposed UI will be XWiki >>>>>>>> Enterprise - >>>>>>>> UI - Common meanwhile if you upgrade a workspace, it will be XWiki >>>>>>>> Enterprise - UI - Wiki. It is normal. >>>>>>>> 4. You will see "Administration Application - 5.2-SNAPSHOT - Installed >>>>>>>> version 4.5.4 is not valid", and the same for several extensions. >>>>>>>> 5. Click on "continue", anyway. >>>>>>>> >>>>>>>> All is OK. In the "installed extensions" menu, I can see all extensions >>>>>>>> correctly upgraded. >>>>>>>> >>>>>>>> = Conclusion = >>>>>>>> >>>>>>>> - The scenario 1 don't work at all. >>>>>>>> - In the scenario 2, it displays "Installed version 4.5.4 is not valid" >>>>>>>> which is disturbing, because everything go right in the end. >>>>>>>> >>>>>>>> As Marius and Thomas explained me: >>>>>>>> >>>>>>>>> When you have an extension installed with version X, and then a new >>>>>>>>> version Y is released but with the id changed, extension manager is >>>>>>>>> not >>>>>>>>> able to detect it. Ideally the EM should detect this and propose the >>>>>>>>> user >>>>>>>>> to upgrade from version X to Y even if the extension id has changed >>>>>>>>> between >>>>>>>>> version X and Y. >>>>>>>>> >>>>>>>> >>>>>>>> How can we solve these issues? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Guillaume Louis-Marie Delhumeau >>>>>>>> _______________________________________________ >>>>>>>> devs mailing list >>>>>>>> devs@xwiki.org >>>>>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Thomas Mortagne >>>>>>> _______________________________________________ >>>>>>> devs mailing list >>>>>>> devs@xwiki.org >>>>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>>>> _______________________________________________ >>>>>> devs mailing list >>>>>> devs@xwiki.org >>>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>>> >>>>> >>>>> >>>>> -- >>>>> Thomas Mortagne >>>>> _______________________________________________ >>>>> devs mailing list >>>>> devs@xwiki.org >>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>> _______________________________________________ >>>> devs mailing list >>>> devs@xwiki.org >>>> http://lists.xwiki.org/mailman/listinfo/devs >>> >>> >>> >>> -- >>> Thomas Mortagne >> >> >> >> -- >> Thomas Mortagne >> _______________________________________________ >> devs mailing list >> devs@xwiki.org >> http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ > devs mailing list > devs@xwiki.org > http://lists.xwiki.org/mailman/listinfo/devs -- Thomas Mortagne _______________________________________________ devs mailing list devs@xwiki.org http://lists.xwiki.org/mailman/listinfo/devs