On Mon, Mar 4, 2013 at 10:37 PM, Vincent Massol <[email protected]> wrote:
>
> On Mar 4, 2013, at 9:23 PM, Marius Dumitru Florea 
> <[email protected]> wrote:
>
>> On Mon, Mar 4, 2013 at 5:46 PM, Eduard Moraru <[email protected]> wrote:
>>> Hi devs,
>>>
>>> On Wed, Feb 27, 2013 at 6:34 PM, Marius Dumitru Florea <
>>> [email protected]> wrote:
>>>
>>>> On Wed, Feb 27, 2013 at 11:21 AM, Eduard Moraru <[email protected]>
>>>> wrote:
>>>>> Hi devs,
>>>>>
>>>>> To further fuel this discussion, I will mention some points that are more
>>>>> or less problematic when removing the notion of virtual mode (checks for
>>>>> xwiki.isVirtualMode()), since a direct change would leave a some pieces
>>>> of
>>>>> code dead (never called) or just need a bit of discussion on them:
>>>>>
>>>>> 1. c.x.x.s.XWikiHibernateBaseStore.initHibernate(XWikiContext context)
>>>> [1]
>>>>>
>>>>> That piece of code seems to only run when the wiki is not in virtual
>>>> mode.
>>>>> From what I managed to understand from Thomas [2], it's probably this
>>>> case:
>>>>> "in your hibernate configuration if you set a database which is not
>>>> called
>>>>> 'xwiki'. In virtual mode this configuration is not taken into account and
>>>>> you have to indicate the name of the database in xwiki.cfg".
>>>>> I think we need to review this behavior. IMO, we should do take this
>>>>> configuration into account in virtual mode as well, as long as there is
>>>> no
>>>>> other technical impediment. It is a configuration for the main wiki after
>>>>> all, and it should still be valid.
>>>>>
>>>>> 2. c.x.x.XWiki.onPluginPreferenceEvent(Event event, XWikiDocument doc,
>>>>> XWikiContext context) [3]
>>>>>
>>>>> This piece of code seems to reload the plugins if the "plugins" property
>>>>> changed in XWikiPreferences, but only if the wiki is not in virtual
>>>> mode. I
>>>>> think we need to change this to happen for any wiki and the plugins need
>>>> to
>>>>> be reloaded only for that specific wiki for which the change happened (if
>>>>> it is possible).
>>>>>
>>>>
>>>
>>> Any input on this?
>>>
>>>
>>>>
>>>>> 3. extension.vm - extensionActionButton macro [4]
>>>>>
>>>>> This UI code decides when to displays the (Un)Install button of an
>>>>> extension for the current wiki or for the entire farm. Removing the
>>>> virtual
>>>>> mode check will always show the (un)install on farm button. I think
>>>> Marius
>>>>> had some concerns about his one.
>>>>
>>>> As I said in my comment on GitHub I think the isVirtualMode() test
>>>> should be replaced in this particular case with something like
>>>> hasVirtualWikis() . It makes sense to display EM buttons that target
>>>> multiple wikis only if you have multiple wikis.
>>>>
>>>
>>> Adding $xwiki.hasVirtualWikis() (convenience for
>>> $xwiki.getWikiNames().size() > 1).
>>>
>>>>
>>>>>
>>>>> 4. distribution.vm - displayMainUiStep_unknownPreviousUI [5]
>>>>>
>>>>> This code assumes that if virtualMode is true, then the product is XEM,
>>>>> otherwise it's XE. This is used to propose old version names for the 2
>>>>> products. Obviously this is needs to be refactored and use a different
>>>> way
>>>>> of determining which is which.
>>>>
>>>> Yes.
>>>>
>>>
>>> Any suggestions?
>>>
>>> Maybe use the EM script service to check if the extension
>>> xwiki-enterprise-ui or xwiki-manager-ui is installed?
>>
>> As discussed in private, for now it's better to use hasVirtualWikis()
>

> Just make sure you don't call it like this :)

That's the code-name ;)

Thanks,
Marius

>
> See the comments on http://jira.xwiki.org/jira/browse/XWIKI-8875
>
> Thanks
> -Vincent
>
>> as a quick fix because I'm going to refactor this code soon to take
>> the list of available versions for the configured UI so there won't be
>> any need to distinguish between xwiki-enterprise-ui and
>> xwiki-manager-ui. Also, with Thomas' work to support DW on subwikis
>> we're going to split the distribution.vm template so don't spend time
>> on distribution.vm changes because soon they will be hard to
>> integrate.
>>
>> Thanks,
>> Marius
>>
>>>
>>> Thanks,
>>> Eduard
>>>
>>>
>>>> Thanks,
>>>> Marius
>>>>
>>>>>
>>>>> 5. c.x.x.p.w.WikiManager
>>>>>    public List<Wiki> getAllWikis(XWikiContext context) throws
>>>>> XWikiException [6]
>>>>>
>>>>> We have decided that c.x.x.XWiki.getVirtualWikisDatabaseNames will also
>>>>> return the main wiki's name. However, the WikiManager plugin can not do
>>>>> this so easily because the main wiki's descriptor may not exist. How
>>>> could
>>>>> we handle this, in order to be consistent? Would creating
>>>> programmatically
>>>>> the main wiki's descriptor with default values on ApplicationReady event
>>>> do
>>>>> any good? Will it do any harm?
>>>>>
>>>>> Thanks,
>>>>> Eduard
>>>>>
>>>>> ----------
>>>>> [1]
>>>>>
>>>> https://github.com/xwiki/xwiki-platform/blob/3019c6e0df112adf980641c75aaaffb2f0b17c6f/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/store/XWikiHibernateBaseStore.java#L214
>>>>> [2]
>>>>>
>>>> https://github.com/xwiki/xwiki-platform/commit/ce3d9d28aefdb327d407ef179a4c869ccce74478#commitcomment-2679994
>>>>> [3]
>>>>>
>>>> https://github.com/xwiki/xwiki-platform/blob/3019c6e0df112adf980641c75aaaffb2f0b17c6f/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/XWiki.java#L6521
>>>>> [4]
>>>>>
>>>> https://github.com/xwiki/xwiki-platform/blob/3019c6e0df112adf980641c75aaaffb2f0b17c6f/xwiki-platform-core/xwiki-platform-web/src/main/webapp/templates/extension.vm#L971
>>>>> [5]
>>>>>
>>>> https://github.com/xwiki/xwiki-platform/blob/3019c6e0df112adf980641c75aaaffb2f0b17c6f/xwiki-platform-core/xwiki-platform-web/src/main/webapp/templates/distribution.vm#L194
>>>>> [6]
>>>>>
>>>> https://github.com/xwiki/xwiki-platform/blob/3019c6e0df112adf980641c75aaaffb2f0b17c6f/xwiki-platform-core/xwiki-platform-wiki-manager/xwiki-platform-wiki-manager-api/src/main/java/com/xpn/xwiki/plugin/wikimanager/WikiManager.java#L223
>>>>>
>>>>>
>>>>> On Fri, Feb 22, 2013 at 3:48 PM, Eduard Moraru <[email protected]>
>>>> wrote:
>>>>>
>>>>>> Hi devs,
>>>>>>
>>>>>> To be more precise, the essence of my proposed change [1] is to actually
>>>>>> always return "true" in the isVirtualMode() method, ignoring any
>>>>>> configuration and marking the method as @deprecated, to be removed in
>>>>>> future versions.
>>>>>>
>>>>>> Is there any reason not to do this? (Why) Would we want to preserve the
>>>>>> possibility of going back to a non-virtual mode? (mostly addressed to
>>>>>> Thomas, but to others as well)
>>>>>>
>>>>>> Thanks,
>>>>>> Eduard
>>>>>>
>>>>>> ----------
>>>>>> [1]
>>>>>>
>>>> https://github.com/xwiki/xwiki-platform/commit/ce3d9d28aefdb327d407ef179a4c869ccce74478
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Feb 22, 2013 at 3:39 PM, Eduard Moraru <[email protected]
>>>>> wrote:
>>>>>>
>>>>>>> Hi devs,
>>>>>>>
>>>>>>> As some of you have already noticed and already started providing
>>>>>>> feedback (thank you), I have pushed a feature branch [1] that proposes
>>>> the
>>>>>>> removal of the virtual mode concept (making it enabled and fixed by
>>>>>>> default).
>>>>>>>
>>>>>>> I have also gone trough the code in xwiki-platform and removed, in the
>>>>>>> feature branch, dead code (code branches that will never be reached
>>>> because
>>>>>>> of this change). Some tests were also adapted to the new change. I have
>>>>>>> also tried a build of xwiki-platform with these changes and it built
>>>>>>> successfully.
>>>>>>>
>>>>>>> First of all, I want to make sure that we agree on the change, since
>>>>>>> Thomas already mentioned that he does not agree (but I need more
>>>> details).
>>>>>>>
>>>>>>> Second, if we agree, please take the time to look over the changes
>>>>>>> (particularly in the modules that you each have experience in) and
>>>> double
>>>>>>> check that the logic of the code was not altered in any way.
>>>>>>>
>>>>>>> I will not be merging this branch until I get a general green light
>>>> from
>>>>>>> the committers, and until everybody is happy :)
>>>>>>>
>>>>>>> Please share your opinion both on this mail and/or on the specific
>>>>>>> changes in the github commits.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Eduard
>>>>>>>
>>>>>>> ----------
>>>>>>> [1]
>>>>>>>
>>>> https://github.com/xwiki/xwiki-platform/commits/feature-deprecate-virtual-mode
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Feb 18, 2013 at 4:53 PM, Thomas Mortagne <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> On Mon, Feb 18, 2013 at 3:48 PM, Thomas Mortagne
>>>>>>>> <[email protected]> wrote:
>>>>>>>>> On Mon, Feb 18, 2013 at 3:38 PM, Eduard Moraru <
>>>> [email protected]>
>>>>>>>> wrote:
>>>>>>>>>> Hi Thomas,
>>>>>>>>>>
>>>>>>>>>> On Mon, Feb 18, 2013 at 3:45 PM, Thomas Mortagne
>>>>>>>>>> <[email protected]>wrote:
>>>>>>>>>>
>>>>>>>>>>> On Mon, Feb 18, 2013 at 2:07 PM, Eduard Moraru <
>>>> [email protected]
>>>>>>>>>
>>>>>>>>>>> wrote:
>>>>>>>>>>>> Hi devs,
>>>>>>>>>>>>
>>>>>>>>>>>> According to the Roadmap of 5.0 [1][2] we will be deprecating
>>>> the
>>>>>>>> virtual
>>>>>>>>>>>> mode API and moving to a virtual-by-default mode instead.
>>>>>>>>>>>>
>>>>>>>>>>>> The idea is that the multiwiki environment should be the default
>>>>>>>> and,
>>>>>>>>>>>> anyone wanting to use the single-wiki mode (as XE was doing in
>>>> the
>>>>>>>> past),
>>>>>>>>>>>> will simply not create any subwiki. It is just pointless to
>>>> have 2
>>>>>>>>>>> products
>>>>>>>>>>>> for such a simple fact and it also confuses users that have
>>>>>>>> downloaded
>>>>>>>>>>> and
>>>>>>>>>>>> started to use one product and later on realise that they needed
>>>>>>>> the
>>>>>>>>>>> other.
>>>>>>>>>>>> Also, when installing the wiki-manager and/or workspace
>>>>>>>> extension(s)
>>>>>>>>>>>> (because you might want to create subwikis/workspaces), there
>>>> will
>>>>>>>> be no
>>>>>>>>>>>> need to stop the wiki, enable-virtual mode and restart it; all
>>>>>>>> will be
>>>>>>>>>>>> doable in the browser.
>>>>>>>>>>>>
>>>>>>>>>>>> Therefore, I`m sending this mail to ask your opinion about this
>>>>>>>> topic, in
>>>>>>>>>>>> case you might have something to say against it, and also to
>>>>>>>> brainstorm
>>>>>>>>>>> on
>>>>>>>>>>>> the required changes and implications on existing code so that
>>>> the
>>>>>>>>>>>> transition is as smooth and invisible as possible.
>>>>>>>>>>>>
>>>>>>>>>>>> Proposed changes:
>>>>>>>>>>>> - Remove "xwiki.virtual" from xwiki.cfg(.vm)
>>>>>>>>>>>> -- remove the usage of the "$xwikiCfgVirtual" maven property
>>>> from
>>>>>>>>>>>> xwiki-platform (, xwiki-enteprise and xwiki-manager)
>>>>>>>>>>>> - Deprecate boolean com.xpn.xwiki.XWiki.isVirtualMode() (and
>>>> the
>>>>>>>>>>> api.XWiki
>>>>>>>>>>>> version)
>>>>>>>>>>>> -- change its code to
>>>>>>>> ((getVirtualWikisDatabaseNames(context).size() ==
>>>>>>>>>>> 1)
>>>>>>>>>>>> ? true : false) until it is removed by the deprecation process.
>>>>>>>>>>>
>>>>>>>>>>> -1. It means that you are going to be in non virtual mode when
>>>>>>>>>>> starting XEM which is very wrong and the complete opposite of
>>>> what we
>>>>>>>>>>> want here. We should deprecate and don't touch it's
>>>> implementation in
>>>>>>>>>>> any way other that returning true by default instead of false when
>>>>>>>>>>> there is nothing in the configuration. Again as you said the goal
>>>> is
>>>>>>>>>>> to be in virtual mode by default, period. If the UI want to do
>>>>>>>>>>> something different when there is only one wiki the UI should
>>>> test if
>>>>>>>>>>> there is only one wiki but breaking all extensions counting on the
>>>>>>>>>>> virtual mode is very bad API breakage.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I agree. The isVirtualMode check was supposed to tell you if
>>>> "there
>>>>>>>> can be
>>>>>>>>>> more than one wiki", while I was suggesting to transform it to "are
>>>>>>>> there
>>>>>>>>>> currently more than one wikis?", which is obviously not equivalent.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Possibly needed changes:
>>>>>>>>>>>> - Add main wiki default descriptor to xwiki-enterprise-ui (so
>>>> that
>>>>>>>>>>>> getVirtualWikisDatabaseNames includes the main wiki and also to
>>>>>>>> avoid DNS
>>>>>>>>>>>> issues (?) caused by how we handle virtual mode)
>>>>>>>>>>>
>>>>>>>>>>> This is useless IMO:
>>>>>>>>>>> * the fact that getVirtualWikisDatabaseNames does not return the
>>>> main
>>>>>>>>>>> wiki when there is no descriptor for it is a bug that should be
>>>> fixed
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Ok. I have created the jira issue for it:
>>>>>>>>>> http://jira.xwiki.org/browse/XWIKI-8829
>>>>>>>>>>
>>>>>>>>>> Also, on the same topic, I think that we should also expose the
>>>>>>>>>> getVirtualWikisDatabaseNames method in api.XWiki. Maybe we should
>>>>>>>> rename it
>>>>>>>>>> to something simpler like api.XWiki.getAllWikis() or
>>>>>>>> getAllWikiNames().
>>>>>>>>>
>>>>>>>>> Yes, "getVirtualWikisDatabaseNames" is not very nice.
>>>>>>>>
>>>>>>>> This name is also pretty wrong btw since that's wiki names and not
>>>>>>>> database names which could be very different.
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> * I don't see how having a descriptor with localhost in it will
>>>> help
>>>>>>>>>>> in any way not having DNS issue, it's not helping much in XEM it's
>>>>>>>> not
>>>>>>>>>>> going to be better in XE. IMO the right solution is to fallback on
>>>>>>>>>>> main wiki by default when the wiki is unknown instead of sending a
>>>>>>>>>>> redirect to some URL which cannot work and only allow to enable
>>>> this
>>>>>>>>>>> redirect URL as an option
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Ok, so we comment out xwiki.virtual.redirect in xwiki.cfg and, by
>>>>>>>> default,
>>>>>>>>>> redirect to the main wiki's Main.WebHome.
>>>>>>>>>
>>>>>>>>> I carefully chose "fallback" and not "redirect" because a real
>>>>>>>>> redirect is impossible here since no URL will really be right or the
>>>>>>>>> main wiki. The idea would be to do exactly the same thing we do with
>>>>>>>>> IP, www.*,.
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> An existing jira issue that is very related to this topic is
>>>>>>>>>> http://jira.xwiki.org/browse/XWIKI-479 We could reuse that.
>>>>>>>>>
>>>>>>>>> Yes we can reuse it but not follow the proposal in the comments.
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Eduard
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> -- or have it generated programmatically at startup if it does
>>>> not
>>>>>>>> exist
>>>>>>>>>>>> (might be safer this way, since people might be using a
>>>> different
>>>>>>>> UI than
>>>>>>>>>>>> xwiki-enterprise-ui)
>>>>>>>>>>>>
>>>>>>>>>>>> I will start working on this locally and see if I can spot other
>>>>>>>> issues,
>>>>>>>>>>>> but please share your thoughts.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Eduard
>>>>>>>>>>>>
>>>>>>>>>>>> ----------
>>>>>>>>>>>> [1] http://markmail.org/message/o6adfbscpidnn7zr
>>>>>>>>>>>> [2] http://jira.xwiki.org/browse/XWIKI-8822
>>>>>>>>>>>> _____________________________________
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to