import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service
@Component(label="Myproject Service")
@Properties({
@Property(name = Constants.SERVICE_RANKING, intValue = 400, propertyPrivate = true),
@Property(name = "priority", intValue = 200)
})
@Service({Myservice.class})
The felix scr annotations in aem 6.2 is now replaced with OSGi R6 annotations. But how to replace it ?
I have tried one method. Please do let me know is it correct and how to use "properties" in OSGI R6.
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.metatype.annotations.AttributeDefinition;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
@Component(service=Myservice.class,immediate = true,name="Myproject Service",
property = {"Constants.SERVICE_RANKING="+"400","priority="+"200" })
Is this correct ?
and how to use properties label in OSGi R6 ?
Solved! Go to Solution.
here two samples that I made on this:
Ranking: htl-examples/CustomBindingProvider.java at master · heervisscher/htl-examples · GitHub
Service: htl-examples/MySimpleServiceImpl.java at master · heervisscher/htl-examples · GitHub
Views
Replies
Total Likes
Thanks @Arun patidar
But I have already gone through the documents but it doesn't contain @properties solution.
Views
Replies
Total Likes
Hi,
YOU can do like below:
No need to put properties in quotes.
@Component(service = MyService.class, immediate = true, property = {
Constants.SERVICE_RANKING + "=400",
"priority=200"
})
Views
Replies
Total Likes
Thanks @arun patidar
@Service
@Component(metatype = true, immediate = true, label = "Content Insights Page Name Provider", description = "Service to use custom content insights page name variable")
@Properties({
@Property(name = Constants.SERVICE_DESCRIPTION, value = "Content Insights Page Name Resolver implementation"),
@Property(name = Constants.SERVICE_RANKING, intValue = 200, propertyPrivate = false),
@Property(name = "basePath", value = "/content/myproject/language-masters/en", description="The path to be removed from Content Insights URL", label="basePath"),
@Property(name = "blogBasePath", value = "/content/myproject-blog/en", description="The path to be removed from Content Insights URL for Blogs", label="blogBasePath"),
@Property(name = "cqVarContentInsight", value = "pagedata.path", description="The CQ variable used for Content Insights URL", label="cqVarContentInsight"),
@Property(name = "langBasePath", value = "/content/myproject/language-masters", description="The path to be removed from Content Insights URL", label="langBasePath")})
Could you please help me in this ?
Views
Replies
Total Likes
You need to declare Object Class Definitions(OCD).
Views
Replies
Total Likes
You can use OCD Attribute definitions to convert this into OSGI
EX :
@AttributeDefinition(name = "Constants.SERVICE_DESCRIPTION", description = "Content Insights Page Name Resolver implementation")
String getDescription();
https://blog.osoco.de/2015/11/osgi-components-simply-simple-part-iii/
http://keysandstrokes.info/aem-code-snippets-osgi-annotations/
You need to follow below apprach if you want to convert as it is something like adding Prorperty = { key=value,key=value }
Ex :
@Component(metatype = true, immediate = true, label = "Content Insights Page Name Provider", description = "Service to use custom content insights page name variable")
, Property = { Constants.SERVICE_DESCRIPTION = "Content Insights Page Name Resolver implementation",
Constants.SERVICE_RANKING, intValue = 200, propertyPrivate = false }
Views
Replies
Total Likes
But for this I have to declare the new variable ? isn't it ?
Views
Replies
Total Likes
Yes, you need to declare new variables on top of it add AttributeDefinitions and you need to same variables name which were defined earlier
Views
Replies
Total Likes
here two samples that I made on this:
Ranking: htl-examples/CustomBindingProvider.java at master · heervisscher/htl-examples · GitHub
Service: htl-examples/MySimpleServiceImpl.java at master · heervisscher/htl-examples · GitHub
Excellent community input everyone!