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 <[email protected]> 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:[email protected]]
>>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 <[email protected]>
>>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:[email protected]]
>>>>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 <[email protected]>
>>>>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:[email protected]]
>>>>>>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
>>>>>
>>>
>

Reply via email to