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

Reply via email to