I discovered the configuration option "fileVaultJcrRootFile", which allows me to do most of what I want. Not sure why I missed it before.
Regards Julian On Thu, Dec 14, 2017 at 9:53 AM, Julian Sedding <jsedd...@gmail.com> wrote: > Ok, great! That clarifies things. > > You're right of course that my setup depends on copying all > content-package assets to target/classes. Given that I have a > pre-compilation step for js and css files (from ts and scss), that > seems to be not too bad. > > However, your questioning just made me wonder if I should only create > the pre-compiled js and css into target/classes and add a files & > folders config for target/classes in addition to the filevault_xml > config for src/main/content/jcr_root. > > I'll experiment with these ideas and will come up with a suggestion > for a change. > > Regards > Julian > > > On Thu, Dec 14, 2017 at 9:40 AM, Stefan Seifert <sseif...@pro-vision.de> > wrote: >> if all your jcr content (the copied one and the generated one) resided in >> target/classes then you proposal would be fine. >> however it depends on the setup of your filevault xml project if this ist he >> case - and often it's not. >> >> but if you have a build/resources/resource declaration in your project that >> copies everything to target/classes (which is not required, but is seen >> often in project setups), then it should work. >> >> yes, it would make sense to have an optional configuration property in the >> maven-sling-plugin to support this use case. >> >> stefan >> >>>-----Original Message----- >>>From: Julian Sedding [mailto:jsedd...@gmail.com] >>>Sent: Thursday, December 14, 2017 9:35 AM >>>To: Sling Developers List >>>Subject: Re: Maven Sling Plugin - fsmount >>> >>>Hi Stefan >>> >>>Thanks again for your reply. However, I still don't understand why you >>>think I need to use "files and folders" mode. I can run sling:fsmount >>>on my content-package module, which creates a FILEVAULT_XML >>>configuration, and then manually adjust the configuration to point to >>>my "target/classes" directory instead of the >>>"src/main/content/jcr_root" and this (seems?) to work fine in initial >>>tests. >>> >>>What I would like to achieve is that I can (optionally) influence the >>>configurations that sling:fsmount creates for me. I.e. the automatic >>>discovery would not be changed, but it would be possible to create >>>additional configurations or tweak discovered configurations (e.g. >>>setting "Check Interval" lower can be useful with auto-refresh >>>scenarios). >>> >>>I'll see if I can come up with a PR. Maybe it's easier to discuss it in >>>code ;) >>> >>>Regards >>>Julian >>> >>> >>>On Wed, Dec 13, 2017 at 5:23 PM, Stefan Seifert <sseif...@pro-vision.de> >>>wrote: >>>> currently the goal is to provide a "full automatic experience" - when >>>calling "sling:fsmount" on a maven project it is detected automatically if >>>it is a Sling-Initial-Content or filevault project and creates the OSGi >>>mapping accordingly. >>>> >>>> you need a custom additional mapping beyond this automatic. this is >>>already possible by creating a manual mapping in the osgi configuration, >>>but in your case only for the "files and folder" mode, without interpreting >>>.content.xml files - not sure if this is enough. >>>> >>>> if you need more i suppose it would not be too hard to extend the >>>existing mapping configuration to support additional folders. perhaps an >>>new mapping type or a variant of the filevault mapping type which does not >>>rely on the filter.xml, but allows to specify the source path and the >>>repository target path manually. this has to be added in the fsresource >>>implementation; i'm not sure if it makes sense to integrate this special >>>usecase also in the logic of the sling:fsmount goal. >>>> >>>> stefan >>>> >>>> >>>>>-----Original Message----- >>>>>From: Julian Sedding [mailto:jsedd...@gmail.com] >>>>>Sent: Wednesday, December 13, 2017 2:32 PM >>>>>To: Sling Developers List >>>>>Subject: Re: Maven Sling Plugin - fsmount >>>>> >>>>>Hi Stefan >>>>> >>>>>Thanks for your reply. >>>>> >>>>>I was hoping that we could avoid generating build artifacts inside the >>>>>"src" folder. It just doesn't feel quite right. Also, I would like to >>>>>locate the respective "*.ts" and "*.scss" files in the location where >>>>>the compiled "*.js" and "*.css" files end up. I think that makes it >>>>>easier to understand, especially for frontend devs with only a >>>>>superficial understanding of Sling/AEM. >>>>> >>>>>Is there a big technical obstacle with adding the ability for custom >>>>>additional mappings with filevault support? If so, can you expalin >>>>>and/or give me a pointer? I'm happy to invest some time into improving >>>>>the plugin, so any guidance is appreciated. >>>>> >>>>>Thanks >>>>>Julian >>>>> >>>>> >>>>> >>>>>On Wed, Dec 13, 2017 at 1:23 PM, Stefan Seifert <sseif...@pro-vision.de> >>>>>wrote: >>>>>> hello julian. >>>>>> >>>>>> yes, i think your assumptions are right. in case of filevault project >>>>>there is currently no way to add some "custom additional mappings" >>>>>(although you could of course add an additional mapping with only "files >>>>>and folders" only for your target dir, when there are no content fragment >>>>>in xml or json files involved. >>>>>> >>>>>> we solve this problem usually this way: configure the frontend tooling >>>to >>>>>compile directly in the destination folder (e.g. >>>>>src/main/content/jcr_root), but exclude this folder from SCM management >>>by >>>>>providing a path for the affected subfolder containing compiled code via >>>>>.gitignore. is this an option for you as well? >>>>>> >>>>>> stefan >>>>>> >>>>>>>-----Original Message----- >>>>>>>From: Julian Sedding [mailto:jsedd...@apache.org] >>>>>>>Sent: Wednesday, December 13, 2017 11:47 AM >>>>>>>To: Sling Developers List >>>>>>>Subject: Maven Sling Plugin - fsmount >>>>>>> >>>>>>>Hi all and Stefan in particular >>>>>>> >>>>>>>I am in the process of setting up a maven build for a joint frontend >>>>>>>(HTML, CSS, JS) and backend team (Sling / AEM). >>>>>>> >>>>>>>The goals for the frontend team workflow are: >>>>>>> >>>>>>>- use Node.js based tooling / frontend build (integrated using >>>>>>>frontend-maven-plugin - works) >>>>>>>- develop HTL templates and sample content (JSON via initial content >>>>>>>and fsmount) >>>>>>>- develop using SCSS and TypeScript, which is compiled to CSS and JS >>>>>>>by the frontend build into target/classes >>>>>>>- use as little maven as possible >>>>>>>- day to day work is done on the FS using Node.js based tooling with a >>>>>>>"watch" job and with live-reload or similar >>>>>>>- development speed is essential, i.e. changes done on FS should be >>>>>>>visible in a browser in < 500ms >>>>>>> >>>>>>>Due to the compilation step, which generates CSS and JS in >>>>>>>target/classes, I would like mvn sling:fsmount to set up a FS resource >>>>>>>provider mapping for target/classes rather than >>>>>>>src/main/content/jcr_root (or maybe both, with service.ranking so that >>>>>>>target/classes is preferred). As far as I can see the "fsmount" goal >>>>>>>currently determines which configurations to create from the >>>>>>>filter.xml file (in case of filevault packages), but there is no way >>>>>>>to explicitly configure other mappings. >>>>>>> >>>>>>>- Are my above assumptions regarding the state of "fsmount" correct? >>>>>>>- Do you think extending the fsmount config to allow for explicit >>>>>>>mappings would be useful? >>>>>>>- Do you have experiences to share with similar setups? >>>>>>> >>>>>>>Regards >>>>>>>Julian >>>>>> >>>> >>