Hi Jens, I like the idea of decoupling the core and Bootstrap to make it easier to use other versions.
Maybe the components should be updated to BS4 for T5.5, with a legacy fallback or a component swap (can't remember the service doing it, we have our own implementation, it's doing an advice on ComponentClassResolver#resolveComponentTypeToClassName or ComponentInstantiatorSource#getInstantiator). For 5.4 we've developed an internal solution for using different BS versions, here are some specifics. We have multi-tenant-apps with different BS versions (so far up to 3), so we needed a flexible solution that supports the internal BS and other versions dynamically. To make it even more flexible we've added SASS-support and compile Bootstrap from the source files, with the possibility to add files beforehand to the compilation step with custom variables etc. The layout component has an annotation that triggers a ComponentClassTransformWorker2 attaching a JavaScriptStack containing the BS version decided by a contributable strategy pipeline. JavaScript modules were the biggest problems, we started with replacing the internal modules, but ended up adding additional modules instead. This worked fine after getting all the dependencies right, but every BS version might break it again, so we're now using the bundled version of BS JS. We think this could all be cleaned up nicely if the internal BS wouldn't be as integrated as it is right now. Eventually we will release it as open-source, but having an integration into Tapestry (as a new tapestry-*) would be even nicer :-) Best regards Ben On Thu, Feb 14, 2019 at 10:14 AM Jens Breitenstein <mailingl...@j-b-s.de> wrote: > Hi Tapestry guys! > > I want to hear/read your opinion about getting rid of the Bootstrap > Library from T5 core. > I would like to move all BS related code (css/js) to a seperate module > like "tapestry-bootstrap3" and decouple the hardcoded BS from T5. > Furthermore I would like to see a second module "tapestry-bootstrap4" > which uses BS4. > > From the sources I see direct dependencies are less than expected. Some > tml's use it (I just ignore the internal T5 pages for now): > > AjaxFormLoop.tml > class="btn btn-default btn-sm" > <t:glyphicon name="plus-sign"/> > > BeanEditForm.tml > class="btn-toolbar" > class="btn-group" > class="btn btn-primary" > > DevTool.tml > <t:glyphicon name="cog"/> > class="dropdown-menu" > class="dropdown-header" > > ExceptionDisplay.tml > class="well" > class="pull-right" > class="checkbox" // ? > > Palette.tml > class="btn-group-vertical" > > and some JAVA references like: > > JavaScriptModule.java > configuration.add("bootstrap/ ...") > > bundledModules=... > > > Do you think it's worths looking into it, digging deeper? > Any pitfalls I should consider? > Anyone interested to discuss it? > > > Jens > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >