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. Thanks, Marius _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

