RetroFit Mode ~ The new feature introduced in the DXA 1.7
It’s time to discuss about a new feature of DXA 1.7
Recently I am working on a project where we are migrating the application from classic implementation (using Dreamweaver Template and TBB) to DXA 1.7.
At the beginning of the project the first point that strikes me is –
Are we going to build a complete new content-model set up? Or Do we have to work with the existing one?
As expected the answer is No, Customer wants to upgrade the product but doesn’t want to change the Content Model.
It’s challenging. As it’s unclear that how it would differentiate the view models and map the data with the editorial Schemas having same RootElement name (“Content”).
I have started looking into the documentation how we can overcome this situation. As a coreservice lover the first thought comes in my mind –
why not we create a script(using coreservice) which will update all the RootElement name as well as the Name Space of all the schemas
But the big risk is, all the component will get affected if I change the namespace as customer wants to reuse those components. So in this case we need to sync all the component as well which will increase the risk factor.
Then what next?
After a long discussion with our team-mates I have discovered the nice feature of DXA 1.7 which is the best fit for our use case –
“RetroFit Mode” [ The new feature introduced in the DXA 1.7]
Remember this mode is very useful only when you have old-style Schemas in your application which is having root element name defaults to Content (although the default namespace URI is unique).
Let’s discuss how to enable this mode –
First download and install DXA 1.7.
Go to Publish Settings Template [Typically placed under Building Blocks > Framework >Developer > Templates]
Open the template and go to Source tab –
By default the value for retrofitMode is false, just change it to true and save it.
That’s all! Now I can easily map my DXA ViewModel with old content model using the unique name space.
Remember alternatively it is possible to add specific Appdata information to the Schemas allowing an alternative for the root element name, but retrofit mode is the easiest way to achieve the goal.