Expand my Community achievements bar.

SOLVED

InstallHook and Sling runmode

Avatar

Level 3

Hi,

Is it possible to read Sling RunMode in InstallHook implementation?

Thanks

1 Accepted Solution

Avatar

Correct answer by
Level 3

It seems that code was good but way how I use it was not for Osgi aware hook.

Difference was in hook class context itself. Initially I just build JAR and put it into package in /META-INF/vault/hooks

Now when hook is in separate bundle installed before and defined in property in content-package-maven-plugin configuration it is osgi aware

In code InstallHookProcessorImpl.java I found that it looks for package properties in this format installhook.{name}.class to register hooks

Netcentric is using property "installhook.actool.class" but you can reaplce "actool" with any string

Thanks

View solution in original post

4 Replies

Avatar

Employee Advisor

The netcentric ACL tool shows how you can get access to OSGI services via the InstallHook. There is not direct API call you can use, but you need to go via the SlingSettingsService.

https://github.com/Netcentric/accesscontroltool/tree/develop/accesscontroltool-bundle/src/main/java/...

Avatar

Level 3

Thing is that I cannot get current bundle object it is always null for me

Avatar

Employee Advisor

Hm, but in the case of the netcentric tool it's working fine.

accesscontroltool/OsgiAwareInstallHook.java at develop · Netcentric/accesscontroltool · GitHub

Maybe you can start with a copy of the relevant code from the AC Tool and adjust it to your needs.

Jörg

Avatar

Correct answer by
Level 3

It seems that code was good but way how I use it was not for Osgi aware hook.

Difference was in hook class context itself. Initially I just build JAR and put it into package in /META-INF/vault/hooks

Now when hook is in separate bundle installed before and defined in property in content-package-maven-plugin configuration it is osgi aware

In code InstallHookProcessorImpl.java I found that it looks for package properties in this format installhook.{name}.class to register hooks

Netcentric is using property "installhook.actool.class" but you can reaplce "actool" with any string

Thanks