Expand my Community achievements bar.

SOLVED

stop custom component permanently

Avatar

Level 6

Hi All,

We are using a custom compoment and need to stop permanently.We have clicked on stop button in component and went to inactive mode. If we restart the instance, all the components are loading and even this also moving to active state.

 

We need to stop and it should not get active even the instance restarted. Please advice.

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

The state of the component is not persisted, so you would need to stop after the bundle has been started. I would recommend you to change your component and have either a "enabled" config option or just start it only if a configuration is present.

If you need a quick and dirty workaround to this problem, I would recommend to use the component disabler of ACS commons [1].

regards,
Jörg

 

[1] http://adobe-consulting-services.github.io/acs-aem-commons/features/osgi-disabler.html

View solution in original post

4 Replies

Avatar

Level 2

Hello,

You can add OSGI Property "enabled" to the component.

Also create activation method:

@Activate @Modified protected void activate(ComponentContext componentContext) { if (enabled) { // your configurable property componentContext.disableComponent("COMPONENT_NAME"); } }


 

Avatar

Level 2

Hello,

1. You can create OSGI config file for your component.

<?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"          enabled="{Boolean}false"/>

2. Add property "enabled" to the component.

Also create activation method:

@Activate @Modified protected void activate(ComponentContext componentContext) { if (enabled) { // your configurable property componentContext.disableComponent("COMPONENT_NAME"); } }
 

Avatar

Correct answer by
Employee Advisor

The state of the component is not persisted, so you would need to stop after the bundle has been started. I would recommend you to change your component and have either a "enabled" config option or just start it only if a configuration is present.

If you need a quick and dirty workaround to this problem, I would recommend to use the component disabler of ACS commons [1].

regards,
Jörg

 

[1] http://adobe-consulting-services.github.io/acs-aem-commons/features/osgi-disabler.html