On Mon, Aug 1, 2016 at 2:45 PM, Marius Dumitru Florea <[email protected]> wrote: > Hi devs, > > Thomas raised this issue http://jira.xwiki.org/browse/XE-1570 . One of the > reasons we decided to keep the CKEditor Integration extension in contrib, > with its own release cycle, was to allow the users to upgrade it without > the need to upgrade the entire XWiki distribution. > > There wouldn't be any problem if the CKEditor Integration extension didn't > had any JAR dependencies. But it depends on the CKEditor WebJar which ends > up in the XWiki WAR and thus is considered a core extension, and core > extensions cannot be upgraded. > > Here's what happens: > * xwiki-enterprise-ui-common depends on ckeditor-ui ( > https://github.com/xwiki/xwiki-enterprise/blob/xwiki-enterprise-8.2.1/xwiki-enterprise-ui/xwiki-enterprise-ui-common/pom.xml#L168 > ) > * both xwiki-enterprise-ui-mainwiki and xwiki-enterprise-ui-wiki depend on > xwiki-enterprise-ui-common > * xwiki-enterprise-web depends on both xwiki-enterprise-ui-mainwiki and > xwiki-enterprise-ui-wiki ( > https://github.com/xwiki/xwiki-enterprise/blob/xwiki-enterprise-8.2.1/xwiki-enterprise-web/pom.xml#L837 > ) in order to "transitively include all JAR dependencies in the generated > WAR" > > So the ckeditor-webjar ends up in the XE WAR, thus it becomes a core > extension. In order to fix this Thomas has proposed two solutions: > > (1) Build 2 XE WARs: one that bundles the transitive JAR dependencies of > the UI (what we have currently) and one that doesn't bundle them. We would > offer only the later for download on xwiki.org, > knowing that the transitive JAR dependencies will be installed when the UI > is installed (with the Distribution Wizard for instance). The first WAR > would be used only for building the Jetty+HSQLDB distribution. > > The downside of this solution is: > * we don't fix the problem for the Jetty+HSQLDB distribution > * the ui-all XAR would work only with the "all" WAR (the first one that > bundles the XAR dependencies) > > (2) Exclude the JARs we don't want as core extensions from > https://github.com/xwiki/xwiki-enterprise/blob/xwiki-enterprise-8.2.1/xwiki-enterprise-web/pom.xml#L837 > , one by one. This would fix the WAR-based installations but not the > Jetty+HSQLDB distribution which uses the Import Mojo ( > https://github.com/xwiki/xwiki-enterprise/blob/xwiki-enterprise-8.2.1/xwiki-enterprise-data/pom.xml#L145 > ) to generate the distribution data folder and thus won't get the > ckeditor-webjar. For this we would need to introduce a new Install Mojo and > explicitly install the JAR dependecies we want (ckeditor-webjar in this > case). > > The problem with this solution is the maintenance cost. We'll forget for > sure to exclude/install the JAR in XE's pom whenever we add a new JAR > dependency to one of the contrib extensions that are bundled in XE > (CKEditor and Tour for the moment). > > Do you have any other ideas? > > Solution (1) seems the best so far.
Well the best result is in (2) but I think (1) is enough as a first step. What is important is that (1) is easy, better than the current situation and we can always improve later. > > Thanks, > Marius > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

