Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.
SOLVED

No use provider could resolve identifier

Avatar

Level 2

Hi,

I'm trying to use custom functions that I wrote in core project in utility folder.

i'm getting the following error when i refer the class in a component.

 

org.apache.sling.scripting.sightly.impl.engine.extension.use.UseRuntimeExtension No use provider could resolve identifier org.xxx.xxx.core.utility.HelperFunctions

My method looks like this:

----------------------------------------------------------------------------------------------------------------------------------------------------------------

package org.xxx.xxx.core.utility;

import com.adobe.cq.sightly.WCMUse;

public class HelperFunctions extends WCMUse{

    private String lowerCaseTitle;
    private String lowerCaseDescription;
  
    @Override
    public void activate() throws Exception {
        lowerCaseTitle = "Hi World title";
        lowerCaseDescription = "Hello World Description";
    }
  
    public String getLowerCaseTitle() {
        return lowerCaseTitle;
    }
    public String getLowerCaseDescription() {
        return lowerCaseDescription;
    }   

}

---------------------------------------------------------------------------------------------------------------------------------------------------------------

I'm referring in my component like this:

            <div data-sly-use.myhelp="org.xxx.xxx.core.utility.HelperFunctions">
                <p>
                    ${myhelp.lowerCaseTitle}
                </p>
                <p>
                    ${myhelp.lowerCaseDescription}
                </p>
            </div>

----------------------------------------------------------------------------------------------------------------------------------------------------------------

When i move this helper function to the component location where im using, my function is working. but when i use it from core project, im getting the above error.

Thanks for the help in advance!

1 Accepted Solution

Avatar

Correct answer by
Level 2

Sid Mup wrote...

Hi,

I'm trying to use custom functions that I wrote in core project in utility folder.

i'm getting the following error when i refer the class in a component.

 

org.apache.sling.scripting.sightly.impl.engine.extension.use.UseRuntimeExtension No use provider could resolve identifier org.xxx.xxx.core.utility.HelperFunctions

My method looks like this:

----------------------------------------------------------------------------------------------------------------------------------------------------------------

package org.xxx.xxx.core.utility;

import com.adobe.cq.sightly.WCMUse;

public class HelperFunctions extends WCMUse{

    private String lowerCaseTitle;
    private String lowerCaseDescription;
  
    @Override
    public void activate() throws Exception {
        lowerCaseTitle = "Hi World title";
        lowerCaseDescription = "Hello World Description";
    }
  
    public String getLowerCaseTitle() {
        return lowerCaseTitle;
    }
    public String getLowerCaseDescription() {
        return lowerCaseDescription;
    }   

}

---------------------------------------------------------------------------------------------------------------------------------------------------------------

I'm referring in my component like this:

            <div data-sly-use.myhelp="org.xxx.xxx.core.utility.HelperFunctions">
                <p>
                    ${myhelp.lowerCaseTitle}
                </p>
                <p>
                    ${myhelp.lowerCaseDescription}
                </p>
            </div>

----------------------------------------------------------------------------------------------------------------------------------------------------------------

When i move this helper function to the component location where im using, my function is working. but when i use it from core project, im getting the above error.

Thanks for the help in advance!

 

 

I found the issue.

When im creating my eclipse project with AEM sample template,  i gave artifacts id with a capital letter. It seems, if artifacts Id has a capital letter, its not throwing any error, but all there java classes i added in core is not getting reffered. even default home page functions also not working.

So i created a new project with artifacts id all small letters, all my java functions in core started working.

it must be some bug or it a requirement that artifact ID cannot start with a capital letter.

Old artifact id: "Studio"

New artifact id: "studio"

 

Hope this helps if any body is facing the same issue. It took me 2 days to figure it out. 

 

Thanks,

Siddhartha Mupparaju

View solution in original post

1 Reply

Avatar

Correct answer by
Level 2

Sid Mup wrote...

Hi,

I'm trying to use custom functions that I wrote in core project in utility folder.

i'm getting the following error when i refer the class in a component.

 

org.apache.sling.scripting.sightly.impl.engine.extension.use.UseRuntimeExtension No use provider could resolve identifier org.xxx.xxx.core.utility.HelperFunctions

My method looks like this:

----------------------------------------------------------------------------------------------------------------------------------------------------------------

package org.xxx.xxx.core.utility;

import com.adobe.cq.sightly.WCMUse;

public class HelperFunctions extends WCMUse{

    private String lowerCaseTitle;
    private String lowerCaseDescription;
  
    @Override
    public void activate() throws Exception {
        lowerCaseTitle = "Hi World title";
        lowerCaseDescription = "Hello World Description";
    }
  
    public String getLowerCaseTitle() {
        return lowerCaseTitle;
    }
    public String getLowerCaseDescription() {
        return lowerCaseDescription;
    }   

}

---------------------------------------------------------------------------------------------------------------------------------------------------------------

I'm referring in my component like this:

            <div data-sly-use.myhelp="org.xxx.xxx.core.utility.HelperFunctions">
                <p>
                    ${myhelp.lowerCaseTitle}
                </p>
                <p>
                    ${myhelp.lowerCaseDescription}
                </p>
            </div>

----------------------------------------------------------------------------------------------------------------------------------------------------------------

When i move this helper function to the component location where im using, my function is working. but when i use it from core project, im getting the above error.

Thanks for the help in advance!

 

 

I found the issue.

When im creating my eclipse project with AEM sample template,  i gave artifacts id with a capital letter. It seems, if artifacts Id has a capital letter, its not throwing any error, but all there java classes i added in core is not getting reffered. even default home page functions also not working.

So i created a new project with artifacts id all small letters, all my java functions in core started working.

it must be some bug or it a requirement that artifact ID cannot start with a capital letter.

Old artifact id: "Studio"

New artifact id: "studio"

 

Hope this helps if any body is facing the same issue. It took me 2 days to figure it out. 

 

Thanks,

Siddhartha Mupparaju