Hi @bilal_ahmad
You are doing it wrong.
Refer this blog https://medium.com/adobetech/aem-6-4-creating-a-scheduler-using-osgi-r6-annotations-4ad0b8c6fce7
Unlike with SCR annotations, it is very clean and simple to create OSGi configurations using R6 annotations by simply using @AttributeDefinition.
If you want to create your OCD in same class then you can refer below code:
package aem.core.service;
import org.apache.sling.rewriter.Transformer;
import org.apache.sling.rewriter.TransformerFactory;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Modified;
import org.osgi.service.metatype.annotations.AttributeDefinition;
import org.osgi.service.metatype.annotations.Designate;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
@Component(service = TransformerFactory.class, immediate = true)
@Designate(ocd = LinkTransformerFactory.Config.class)
public class LinkTransformerFactory implements TransformerFactory {
@ObjectClassDefinition(name = "LinkTransformerFactory Service", description = "LinkTransformerFactory Configuration")
public @interface Config {
@AttributeDefinition(name = "Pipeline Type", required = true)
String getPipelineType() default "gatedassettransformer";
}
@Activate
@Modified
protected void activate(final Config config) {
String pipelineType = config.getPipelineType();
}
@Override
public Transformer createTransformer() {
return null;
}
}