> On 22 Aug 2016, at 11:45, Guillaume Delhumeau <[email protected]> > wrote: > > I had a similar problem in a custom flavor for XWiki SAS. For the > Jetty/HSQL package, I made a custom maven plugin, based on the packager > plugin, which install all JAR dependencies in "data/extensions" instead of > WEB-INF/lib, and I did not include these dependences in the WAR > > See: > https://github.com/xwikisas/xcs/tree/master/xcs-tools/xcs-tools-dependenciespackager
Thanks Guillaume. We mentioned this but it doesn’t work for the WAR packaging. Thanks -Vincent > > 2016-08-16 21:03 GMT+02:00 Vincent Massol <[email protected]>: > >> >> >>> On 16 Aug 2016, at 19:18, Vincent Massol <[email protected]> wrote: >>> >>> Interesting problem :) >>> >>> So the CKEditor extension should not be considered a core extension, >> i.e. it should not find its way in WEB-INF/lib. >>> >>> One idea to achieve this is to allow bundling some uninstalled >> extensions in WEB-INF (for example inside WEB-INF/extensions) and have >> XWiki install them when it starts the first time (as a DW step for example). >>> >>> Basically they’re considered as bundled third-party extensions and not >> as core extensions, and we define a mechanism to bundle third-party >> extensions inside an XWiki WAR. >>> >>> For the Jetty/HSQLDB distribution, we could install them directly since >> we have access to the permanent directory. But we could also leave it as >> part of a DW step. >>> >>> WDYT? >> >> Note that an alternative would be to map WEB-INF/extensions as an >> additional extension repository. However, an important issue with this >> would be that a WAR file should be considered as read only by servlet >> containers (they can do whatever they want with it, expand it in some >> custom directory, etc) and thus it would not be possible to remove/update >> extensions. This is why I proposed that WEB-INF/extensions would contain >> uninstalled extensions that XWiki would need to install. >> >> Thanks >> -Vincent >> >>> >>> Thanks >>> -Vincent >>> >>>> On 01 Aug 2016, at 14:45, 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. >>>> >>>> Thanks, >>>> Marius _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

