Access OSGI service 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.
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
Post a Comment