この会話は、活動がないためロックされています。新しい投稿を作成してください。
この会話は、活動がないためロックされています。新しい投稿を作成してください。
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 ?
解決済! 解決策の投稿を見る。
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
Thanks @Arun patidar
But I have already gone through the documents but it doesn't contain @properties solution.
表示
返信
いいね!の合計
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 ?
表示
返信
いいね!の合計
You need to declare Object Class Definitions(OCD).
表示
返信
いいね!の合計
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 }
表示
返信
いいね!の合計
But for this I have to declare the new variable ? isn't it ?
表示
返信
いいね!の合計
Yes, you need to declare new variables on top of it add AttributeDefinitions and you need to same variables name which were defined earlier
表示
返信
いいね!の合計
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!