Where is the XSSAPI defined? (Maven build issues for /libs/foundation components) | Community
Skip to main content
au4liferz
Level 4
October 28, 2015
Solved

Where is the XSSAPI defined? (Maven build issues for /libs/foundation components)

  • October 28, 2015
  • 10 replies
  • 2117 views

1) Where is the XSSAPI defined? I've included the <dependency> below from the depfinder# tool, and I still get the error, (shown below), when I attempt to run "mvn clean install" in the commons or content directory. 

       
com.adobe.granite.xss1.1.0com.day.cq.cq-xssprotection (107)

<dependency>

        <groupId>com.adobe.granite</groupId>

        <artifactId>com.adobe.granite.xssprotection</artifactId>

        <version>5.5.24</version>

        <scope>provided</scope>

</dependency>

 

Snippet from Maven log:

[ERROR] Compilation Failure org.apache.sling.scripting.jsp.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 3 in the jsp file: /libs/foundation/components/profile/form/formrowtext.jsp xssAPI cannot be resolved 1: <%@page session="false"%><div class="form_row"> 2:       <div class="form_leftcol"> 3:           <div class="form_leftcollabel"><label for="<%= xssAPI.encodeForHTMLAttr(path) %>"><%= xssAPI.encodeForHTML(title) %></label></div> 4:           <div class="form_leftcolmark <%= required ? "form_required" : ""%>"><%= required ? "*" : " " %></div> 5:       </div>a 6:       <div class="form_rightcol"><%

2) Is there an easier way to determine all of the dependencies needed to build everything off of /libs/foundation/components, without sitting there and working through each and every build error one by one, using the dependency finder tool and adding the <dependency> to the maven POM? There must be a way to do this more efficiently. Also, whenever we migrate to AEM 6.1, I imagine I'll have to update the versions for each dependency one by one, (unless the uber.jar enables maven to build without explicit dependencies being listed in the POM.xml).

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Feike_Visser1

you can use this as a workaround:

https://helpx.adobe.com/experience-manager/kb/HowToUseCQ5AsMavenRepository.html

10 replies

smacdonald2008
Level 10
October 28, 2015

In AEM 6 - you can use the Urber JAR to make it easier. See this older community thread for details:

Urber Jar

Hope this helps

au4liferz
au4liferzAuthor
Level 4
October 28, 2015

smacdonald2008 wrote...

In AEM 6 - you can use the Urber JAR to make it easier. See this older community thread for details:

Urber Jar

Hope this helps

 

Thanks Scott, but at present, I still have to develop some components in 5.6.1, and this is where I'm encountering issues. At this time, I can not compile the components under /libs/foundation using maven. If you or anyoen else has information that will help resolve the dependency for XSSAPI, please let me know.

Feike_Visser1
Adobe Employee
Feike_Visser1Adobe EmployeeAccepted solution
Adobe Employee
October 28, 2015
au4liferz
au4liferzAuthor
Level 4
October 28, 2015

When you look at the code of the offending component, ( /libs/foundation/components/profile/form/formrowtext.jsp), you see there is NO explicit declaration for xssAPI before they start using it. In addition, I also don't see a declaration in init.jsp, or any of the sibling files to show where the declaration is made. This is why maven is failing. It's also unable to determine where xssAPI has been declared, (probably in some other file that's been included in the dependency chain).

au4liferz
au4liferzAuthor
Level 4
October 28, 2015

Felike, this sounds like a great idea, (sort of like an Uberjar for 5.6.1???), but unfortunately, my compile still fails with the formrowtext.jsp component, (due to the xssAPI reference). I don't know if I did something wrong setting it up, but again, it doesn't work.

Let me ask a stupid question. When the instructions mention installing the cq5-archiva-servlet, is it talking about using package manager to upload and install the .zip, (or, installing it locally on the file system etc.)?

au4liferz
au4liferzAuthor
Level 4
October 29, 2015

Can anyone tell me if the instructions to "Install the cq5-archiva-servlet" is referring to using the AEM package manager to install the .zip, (or are they talking about installing it on the file system)?

smacdonald2008
Level 10
October 30, 2015

Did you follow the instructions in the KB that Feike pointed to. You should be able to pull in all libs from CQ. 

Adobe Employee
October 30, 2015

If you open the zip you can see it is a standard package file that needs to be installed via package manager.

Are trying to precompile your jsp files?

Regards,

Opkar 

au4liferz
au4liferzAuthor
Level 4
October 31, 2015

Yes, Scott, I'd followed all of the instructions, but what happens is, experienced experts such as you guys can read these types of instructions and fill in the gaps, whereas it's not as clear to inexperienced resources, (where things need to be spelled out step by step and broken down into detailed instructions). I was able to get it working yesterday, and I believe it wasn't working initially due to some warnings due to duplicate dependencies, versions in the child POM etc. I didn't know that there were warnings, but once I worked through those, it just started working. Also, when I went back into CRXDE lite, I saw that it had been installed under /apps.

au4liferz
au4liferzAuthor
Level 4
October 31, 2015

Opkar, of course I opened the zip, but again, with my knowledge level I'm not able to recognize what a standard package file looks like. You can't take for granted that newbs asking these questions understand those types of things. I believe this is the first package that I've ever opened, and all I could do is download another package or two that was already loaded in the JCR, compare, and then make a reasonable assumption, (and in this case, I was right that it was a package that needed to be loaded via package manager). Fortunately, I got it working yesterday, but for all of the experienced guys, please provide explanations that assume only a beginners, to no prior level of knowledge of CQ/AEM. It'd really help the newbs learn.

Yes, I'm trying to pre-compile my JSP files, (i.e. everything under /libs/foundation too), but it keeps blowing up when it gets to /libs/foundation/components/profile/form/formrowtext.jsp, because it can't find where xssAPI is declared. I can't wait until I can move over and start doing all of my development in AEM 6.1 with the uberjar.jar. It's really going to help me learn being able to compile all of the OOTB components and step through them as needed. Thanks SO much to you and all of the experienced guys, and experts like Feike, Scott and others who take the time to help those of us struggling to get up to speed on this tool/platform.