Configuring the externalizer service via XML file | Community
Skip to main content
Level 3
October 16, 2015
Solved

Configuring the externalizer service via XML file

  • October 16, 2015
  • 10 replies
  • 3738 views

I'm having trouble configuring the externalizer service via an XML file.

The first thing I did was add a domain via the Felix console to test, and that worked. Then I created a file in my project at /apps/client/project/config/com.day.cq.commons.impl.ExternalizerImpl.xml. It looks like

<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="sling:OsgiConfig" externalizer.contextpath="" externalizer.host="" externalizer.domains="[local http://donotuse.com,author http://donotuse.com,publish http://donotuse.com,project-placeholder http://project-placeholder.com]"/>

When I build the project with Maven, I can see that this does get successfully deployed by looking at CRXDE Lite. However, the configuration that I see in the Felix console never changes to reflect this.

I also tried moving this XML file to /apps/client/project/config.author, with the same results.

I also tried looking in CRXDE Lite /apps/system/config for the configuration I set via Felix, and didn't find it. I did find it on the file system, and after restarting AEM, the configuration has returned to the default configuration, not what I specified in my XML file.

Is there something wrong that I'm not seeing in my XML?

Thanks

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Joel_Triemstra1

Found it!

In my first post, I mentioned "I also tried looking in CRXDE Lite /apps/system/config for the configuration I set via Felix". I don't know which article I found that suggested looking there, but it turns out there was a node in /apps/cq/commons that appears to have the values I set in the Felix interface. This node was taking precedence over the node I created in my actual project.
 

Thanks for your time, all.

10 replies

Sham_HC
Level 10
October 16, 2015

Joel Triemstra wrote...

I'm having trouble configuring the externalizer service via an XML file.

The first thing I did was add a domain via the Felix console to test, and that worked. Then I created a file in my project at /apps/client/project/config/com.day.cq.commons.impl.ExternalizerImpl.xml. It looks like

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
  3. jcr:primaryType="sling:OsgiConfig"
  4. externalizer.contextpath=""
  5. externalizer.host=""
  6. externalizer.domains="[local http://donotuse.com,author http://donotuse.com,publish http://donotuse.com,project-placeholder http://project-placeholder.com]"/>

The content of config looks ok to me. But the extension of file ".xml" does not make sense.  Can you send snapshot from crxdelight ?

When I build the project with Maven, I can see that this does get successfully deployed by looking at CRXDE Lite. However, the configuration that I see in the Felix console never changes to reflect this.

Config not picked by installer & hence not seeing it.

I also tried moving this XML file to /apps/client/project/config.author, with the same results.

I also tried looking in CRXDE Lite /apps/system/config for the configuration I set via Felix, and didn't find it. I did find it on the file system, and after restarting AEM, the configuration has returned to the default configuration, not what I specified in my XML file.

Which version of AEM?   Sounds like enable write back is disabled. Verify at http://host:port/system/console/configMgr/org.apache.sling.installer.provider.jcr.impl.JcrInstaller

Is there something wrong that I'm not seeing in my XML?

Thanks

 

Level 3
October 16, 2015

Thanks, but it looks like that's not making a difference.

Level 3
October 16, 2015

I'm using AEM 6.1, and writeback is enabled.

Here's a screenshot of what I see in CRXDE Lite after deploying my package

[img]Externalizer1.jpg[/img]

Also, here's a screenshot of my project in Eclipse - hopefully that explains where the XML file I'm referring to comes from. I believe the other OsgiConfigs in there are working properly.

[img]Externalizer2.jpg[/img]

Lokesh_Shivalingaiah
Level 10
October 16, 2015

Hi Joel,

I tried the same thing and it seems to be working. Can you remove the properties externalizer.contextpath and host.

 

Regards,

Lokesh

Level 3
October 16, 2015

That also doesn't seem to be making a difference.

When you add the \ character, as in

externalizer.domains="[local\ http://donotuse.com,author\ http://donotuse.com,publish\ http://donotuse.com,project-placeholder\ http://project-placeholder.com]"/>

do you see that character in CRXDE Lite after deploying? I don't; I'm assuming it's behaving as an escape character, so I shouldn't see it, but wanted to double check.

Lokesh_Shivalingaiah
Level 10
October 16, 2015

Steps I followed which worked for me

1. copy the 'config.author' folder from /libs/cq/commons where the OOB configuration resides

2. paste it under the 'config' folder in under /apps/<project>

3. Change the values for different instances required and save.

Joel_Triemstra1AuthorAccepted solution
Level 3
October 16, 2015

Found it!

In my first post, I mentioned "I also tried looking in CRXDE Lite /apps/system/config for the configuration I set via Felix". I don't know which article I found that suggested looking there, but it turns out there was a node in /apps/cq/commons that appears to have the values I set in the Felix interface. This node was taking precedence over the node I created in my actual project.
 

Thanks for your time, all.

Lokesh_Shivalingaiah
Level 10
October 16, 2015

check if you have the correct Service PID

Level 3
October 16, 2015

The PID is

com.day.cq.commons.impl.ExternalizerImpl

And that just needs to match the file name, correct?

com.day.cq.commons.impl.ExternalizerImpl.xml

I think I'm good from that respect - is there another place the PID comes into play?

Thanks

Lokesh_Shivalingaiah
Level 10
October 16, 2015

As @Sham mentioned, just the file name saving as .xml will not work,

Can you let us know the steps you have followed or how have you created this configuration.