Access OSGI ser­vice from Sightly WCMUsePojo | AEM 6.3

Create AEM 6.3 component making use of WCMUsePojo accessing OSGI Service.

Step 1: Create an interface name OSGITestInterface.java that will be implemented by service impl.

public interface OSGITestInterface {

String getOSGIName();
String getOSGIDesc();
String getOSGIuse();
String getOSGIData(); 

}

Step 2: Create a Interface Implementation class name OSGITestInterfaceImpl.java

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;

@Component
@Service
public class OSGITestInterfaceImpl implements OSGITestInterface {

Logger logger = LoggerFactory.getLogger(OSGITestInterfaceImpl.class);

@Override
public String getOSGIName() {
return "Test Service";
}

@Override
public String getOSGIDesc() {
return "AEM OSGI Service";
}

@Override
public String getOSGIuse() {
return "OSGI Service data";
}
        @Override
public String getOSGIData() {
String name = this.getOSGIName();
String desc = this.getOSGIDesc();
String use = this.getOSGIuse();
return name + desc + use;
}


}

Step 3: Create Test Component and use below sightly code in component html.

Fetch values from OSGI Service using WCMSUepojo.
    <sly data-sly-use.info="com.test.utils.TestPojoComp"></sly>
    ${info.details}

</div>

Step 4: Write helper class extending WCmUsePojo.

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.adobe.cq.sightly.WCMUsePojo;

public class TestPojoComp extends WCMUsePojo {
Logger logger = LoggerFactory.getLogger(TestPojoComp.class);
protected String detail;

@Override
 public void activate() {   

OSGITestInterface service = getSlingScriptHelper().getService(OSGITestInterface.class);
   detail = service.getOSGIData();
 }

 public String getDetails() {
   return this.detail;
 }

}

Step 5: Create webpage using any of existing template. Drag and drop newly created component into the page.

Validate output.

Comments

Popular posts from this blog

AEM 6.3 | Apache Sling Content Disposition Filter | Hosting Static HTML in JCR

Image Component Customization - Image Size Restriction - Drag/Drop - Touch UI