Expand my Community achievements bar.

Applications for the 2024-2025 Adobe Experience Manager Champion Program are open!

com.adobe.cq.wcm.core.components.internal.services.embed.UrlProcessorResultImpl -- Cannot be resolved


Level 3

I am trying to customize the Embed component by introducing a new URL processor just like the example below

On eclipse, all the imports are looking good and code is getting deployed to the local AEM instance. But the bundle is failing with the below issue

com.adobe.cq.wcm.core.components.internal.services.embed.UrlProcessorResultImpl -- Cannot be resolved


I am clueless on how to resolve this issue

Screen Shot 2021-07-01 at 10.29.11 AM.png

2 Replies


Community Advisor

Hi @bpeddapudi,

It is because you are using a class that is internal (implementation class) to Core Components (The one that is not exposed to use by other projects/bundle)

UrlProcessorResultImpl implements UrlProcessor.Result so while creating custom Url processor we need to provide similar implementation and override getOptions() and getProcessor() methods. 

UrlProcessorResultImpl of Core : https://github.com/adobe/aem-core-wcm-components/blob/9dd529595b65a8441bd320b602584c2d568b6361/bundl...


Sample snippet for custom Url processor: 

@Component(service = UrlProcessor.class)
public class CustomEmbedUrlProcessor implements UrlProcessor {

    protected static final String NAME = "processor name";

    protected static final String PIN_ID = "test";

    protected static final String SCHEME = "some url pattern";

    private Pattern pattern = Pattern.compile(SCHEME);

    public Result process(String url) {
        if (StringUtils.isNotEmpty(url)) {
            Matcher matcher = pattern.matcher(url);
            if (matcher.matches()) {
                return new UrlProcessor.Result() {

                    public String getProcessor() {
                        return NAME;

                    public Map<String, Object> getOptions() {
                        return new HashMap<String, Object>() {{
                            put(PIN_ID, matcher.group(1));

        return null;