Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

ResourceFilterStream is always null after adapting from a resource

Avatar

Level 1

I followed this article to try to use Resource Filter Stream, project builds and deploys fine, however rfs is always null, any ideas?  Am I missing something?  Thanks in advance.

 

ResourceFilterStream rfs = resource.adaptTo(ResourceFilterStream.class);
1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi

 

This is an external bundle, so you need to wrap it into your bundle to deploy it along with your code. Please check this thread: 

https://blogs.perficient.com/2018/10/09/resource-streams-in-apache-sling/ 

 

Hope this helps



Esteban Bustamante

View solution in original post

7 Replies

Avatar

Community Advisor

@nelsonatensemble 

Can you verify if you have below dependency included in POM.xml and included the right imports for ResourceFilterStream

<dependency>
    <groupid>org.apache.sling</groupid>
    <artifactid>org.apache.sling.resource.filter</artifactid>
    <version>1.0.0</version>
    <scope>provided</scope>
</dependency>

 

Avatar

Level 1

Yes that was done, however, I did not embed the jar per h_kataria's comment below, so that's probably the issue.  I had assumed that the jar is available OOTB.

 

<embedded>
  <groupId>org.apache.sling</groupId>
  <artifactId>org.apache.sling.resource.filter</artifactId>
  <target>/apps/<your-project>/application/install</target>
</embedded>

Avatar

Community Advisor

As far as I know, resourcefilterstream is not available OOB, so you will have to embed it in your all pom.xml in filevault-package-maven-plugin config section

<embedded>
                            <groupId>org.apache.sling</groupId>
                            <artifactId>org.apache.sling.resource.filter</artifactId>
                            <target>/apps/<your-project>/application/install</target>
                        </embedded>

 and add the dependency

<dependency>
            <groupId>org.apache.sling</groupId>
            <artifactId>org.apache.sling.resource.filter</artifactId>
            <version>1.0.0</version>
            <scope>provided</scope>
        </dependency>

 

Avatar

Level 1

Ah maybe that's it, I added the dependency but i did not embed the bundle, I will give that a try.  Thanks all.

Avatar

Level 2

add this in core bundle pom as well as embed it in all pom

<bnd><![CDATA[
Import-Package: javax.annotation;version=0.0.0,*
Export-Package: com.mysie.*
-plugin org.apache.sling.caconfig.bndplugin.ConfigurationClassScannerPlugin,org.apache.sling.bnd.models.ModelsScannerPlugin
-includeresource: org.apache.sling.resource.filter-1.0.0.jar;lib:=true

 

Avatar

Correct answer by
Community Advisor

Hi

 

This is an external bundle, so you need to wrap it into your bundle to deploy it along with your code. Please check this thread: 

https://blogs.perficient.com/2018/10/09/resource-streams-in-apache-sling/ 

 

Hope this helps



Esteban Bustamante

Avatar

Level 2

the solution is missing this step 

<bnd><![CDATA[
Import-Package: javax.annotation;version=0.0.0,*
Export-Package: com.mysite.*
-plugin org.apache.sling.caconfig.bndplugin.ConfigurationClassScannerPlugin,org.apache.sling.bnd.models.ModelsScannerPlugin
-includeresource: org.apache.sling.resource.filter-1.0.0.jar;lib:=true