Expand my Community achievements bar.

The first preview of our new Community upgrade is live - check it out now.

Mark Solution

This conversation has been locked due to inactivity. Please create a new post.

SOLVED

Sling Annotations

Avatar

Community Advisor

Which annotation is prefered to access the Service inside another service and why? @reference or @OSGiService.

 

Thanks

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @Madhur-Madan,

On OSGi service level you should use Reference annotation. So this will be option you should use in case you want to get reference of other OSGi service inside another.

import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

@Component
public class YourService {
   
   @Reference
   private OtherService otherService;
}

 

OSGiService annotation is dedicated for Sling Model it will not work inside OSGi service/component. You can use it, in case you would like to inject OSGi Service into your Sling Model.

See also below links:

View solution in original post

1 Reply

Avatar

Correct answer by
Community Advisor

Hi @Madhur-Madan,

On OSGi service level you should use Reference annotation. So this will be option you should use in case you want to get reference of other OSGi service inside another.

import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

@Component
public class YourService {
   
   @Reference
   private OtherService otherService;
}

 

OSGiService annotation is dedicated for Sling Model it will not work inside OSGi service/component. You can use it, in case you would like to inject OSGi Service into your Sling Model.

See also below links: