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

ACS Commons Sitemap Servlet extension to support Multiple Languages Domain

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

Disable OSGI Components & Bundles as part of Application Configuration