Coder Social home page Coder Social logo

commerce-cif-connector's Introduction

CircleCI codecov Maven Central

AEM Commerce connector for Magento and GraphQL

This is an AEM Commerce connector for Magento and GraphQL, that provides some integration of Magento products and categories in the AEM Commerce console, and some authoring features like product and category pickers.

Attention: Projects must use AEM Commerce Add-On for AEM 6.5 instead of the connector unless they use Magento 2.3.5 or earlier or CIF Core Components up to version 1.9.0. We strongly recommend to update existing projects to the AEM Commerce Add-on. See AEM 6.5 Content and Commerce documentation for usage instructions, getting started and development guides.

This project should only be used for AEM 6.4/6.5 projects with Magento up to version 2.4.2 only and works with AEM quickstart. It is compatible with CIF Core Components up to version 1.9.0. For a compatibility overview see versions.

It is also not intended to be used for AEM as a Cloud Service or with the AEM Cloud SDK. For using CIF on AEM as a Cloud Service see AEM Content and Commerce as a Cloud Service documentation.

This connector only provides authoring features, this is not meant to be used to develop frontend components. To develop AEM frontend components, refer to the AEM CIF Core Components project.

Migration

For most projects, a migration from this CIF Connector to the new AEM Commerce Add-On for AEM 6.5 is straight forward as the AEM Commerce Add-On is a full replacement of the CIF Connector. Uninstall the CIF Connector package and replace with the AEM Commerce Add-On package will be the only migration step for most of the projects. Make sure the OSGI configuration for the CIF GraphQL client and the CIF Cloud Services configuration stay in place.

If your project uses an older version of the CIF Connector and CIF Core Components, it is recommended to upgrade first to CIF Core Components 1.8.0 or later.

Modules

The main parts of the project are:

  • bundles: contains the following AEM bundles in the sub-folders
    • cif-connector-graphql: the CIF GraphQL connector, based on Magento GraphQL
    • cif-virtual-catalog: the bundle that permits to bind products in the AEM Commerce console
  • content: contains the following content packages in the sub-folders
    • cif-connector-graphql: the content package for the CIF GraphQL connector
    • cif-virtual-catalog: the content package for the virtual catalog connector

Installation

For local development and on-prem self-hosted customer deployments you can install all the modules of the connector and also its required dependencies with the all content package.

For AEM AMS customers the CIF Connector is installed like other AEM Feature Packs as it can not be deployed via Cloud Manager, please contact the CSE.

Via "all" package

If you want to use the latest released version, just download it with the Maven Central link located at the top of this README and install it in your running AEM instance. You can also install the latest all content package with mvn clean install -PautoInstallAll.

If you want to build all the modules yourself and get all the latest (yet) unreleased changes, check the building and installing from source section below.

Inclusion as a Maven dependency

While the Connector can be installed via source as mentioned above, you may want to just include it as a dependency in your own Maven project. If doing so, and using the Filevault Package Maven Plugin, make sure to add a configuration to allow for indices as this project makes use of them:

allowIndexDefinitions=true

System Requirements

Starting with version 0.6.0, all connector artifacts will be released with the same version number (reactor release).

For previous versions, we only provide the version requirements of the all package. If you need to check the versions of other modules, simply checkout the corresponding cif-connector-all-x.y.z tag and check the versions of other modules in the corresponding POM files or in the POM of the all project.

CIF Connector AEM 6.4 AEM 6.5 Magento Java
1.8.1 6.4.4.0 6.5.0 2.4.0 1.8
1.3.0 6.4.4.0 6.5.0 2.3.4 & 2.3.5 1.8
0.8.1 6.4.4.0 6.5.0 2.3.2 & 2.3.3 1.8

For a list of requirements for previous versions, see Historical System Requirements.

CIF Magento GraphQL Configuration

The CIF Magento GraphQL AEM commerce connector has to be configured to access your Magento instance and bind the catalog data. Follow the steps below to configure the bundle:

  1. Configure the generic GraphQL instance

    • Go to http://localhost:4502/system/console/configMgr
    • Look for CIF GraphQL Client Configuration Factory
    • Create a child configuration
      • Keep the default service identifier or set something custom. Make sure to use the same value in step 2) below.
      • For GraphQL Service URL enter the URL of your Magento GraphQL endpoint (usually https://hostname/graphql)
      • With Default HTTP method you can define whether the underlying HTTP client will send GET or POST requests. Starting with version 2.3.2, Magento supports and can cache some GraphQL queries when using GET.
  2. Configuration of the connector

    • Go to http://localhost:4502/system/console/configMgr
    • Look for CIF Catalog Magento GraphQL Configuration Factory
    • Create a child configuration
      • For Magento GraphQL Service Identifier enter the ID of the GraphQL client you already configured (see "pre-requisites")
  3. Create a cloud service configuration for Magento

    • In AEM go to Tools -> General -> Configuration Browser (or http://localhost:4502/libs/granite/configurations/content/view.html/conf)
    • Create a configuration
      • Give it any name you wish
      • Check the Cloud Configurations capability (this is essential since the connector configuration will make use of this capability)
    • Go to Tools -> Cloud Services -> CIF Configuration (or http://localhost:4502/libs/commerce/gui/content/configuration.html/conf)
    • You'll find the configuration created in the previous step there. Click on it and click 'Create configuration'
    • All the fields are required:
      • For Commerce provider choose magento-graphql
      • For Root category id enter the ID of the Magento root category you want to define as the root
      • For Magento store view enter the code of the Magento store view that you want to use
      • For Catalog identifier select the ID of the connector instance you created in the previous step
      • For Graphql client select the GraphQL client you created at step 1
  4. Binding of product catalog to AEM resource tree

  5. AEM content editor product drag & drop

Usage

The project also provides product and category pickers to be used in any component dialog to select products or categories.

Product Picker

To use the product picker a developer has to add /libs/commerce/gui/components/common/cifproductfield to a component dialog. For example use the following for the cq:dialog:

<product jcr:primaryType="nt:unstructured" fieldLabel="Product" name="./product" sling:resourceType="commerce/gui/components/common/cifproductfield"/>

The product field allows to navigation to the product a user want to select via the different views. A user also can use the integrated search to find a product. By default the product field will return the ID of the product, but this can be configured using the selectionId attribute.

The product picker field supports the following optional properties:

  • rootPath - configure the root path of the virtual catalog data tree to be used (default = /var/commerce/products)
  • multiple (true, false) - allows to select one or multiple products (default = false)
  • emptyText - to configure the empty text value of the picker field
  • selectionId (id, sku, slug, path, combinedSku) - allows to choose the product attribute to be returned by the picker (default = id). Using sku returns the sku of the selected product, while using combinedSku returns a string like base#variant with the skus of the base product and the selected variant, or a single sku if a base product is selected.
  • filter (folderOrProduct, folderOrProductOrVariant) - filters the content to be rendered by the picker while navigating the product tree. folderOrProduct - renders folders and products. folderOrProductOrVariant - renders folders, product and product variants. If a product or product variant is rendered it becomes also selectable in the picker. (default = folderOrProduct)

The cifproductfield component requires the cif.shell.picker clientlib. To add a clientlib to a dialog, you can use the extraClientlibs property. See also Customizing Dialog Fields .

Product Drag'n'drop (DnD)

The connector includes a Sling post-processor that makes it possible to DnD a Product on a component, and configure the behavior of the DnD functionality. For example, you can refer to the cq:dropTarget configuration of the productcarousel and productteaser components in the AEM CIF Core Components. The following parameters can be configured:

  • selectionId (id, sku, slug, path) - similar to the product picker, see above. Note that the AEM Assets panel does not currently permit to select product variants, so the combinedSku selection of the product picker is not supported by DnD.
  • multiple (true, false) - when true, DnDropping a product adds the value to the (array) JCR property so it's possible to select multiple products by DnD. When false, the property value is replaced so a single product can be DnDropped.

Category Picker

The category picker (provided by /libs/commerce/gui/components/common/cifcategoryfield) can be used in a component dialog as well. The following snippet can be used in a cq:dialog configuration:

<category jcr:primaryType="nt:unstructured" fieldLabel="Category" name="./category" sling:resourceType="commerce/gui/components/common/cifcategoryfield"/>

The category picker field supports the following optional properties:

  • rootPath - configure the root path of the virtual catalog data tree to be used (default = /var/commerce/products)
  • multiple (true, false) - allows to select one or multiple categories (default = false)
  • emptyText - to configure the empty text value of the picker field
  • selectionId(id, path, idAndUrlPath) - allows to choose the category attribute to be returned by the picker (default = id). The idAndUrlPath is a special option that will store the category id and Magento's url_path separated by a | character like for example 1|men/tops.

The cifcategoryfield component requires the cif.shell.picker clientlib. To add a clientlib to a dialog, you can use the extraClientlibs property. See also Customizing Dialog Fields .

Using a scaffolding to display the product properties page

The project provides a sample scaffolding that only displays the basic information about a product. To link this scaffolding to your catalog root you have to do the following steps:

  1. Open CRXDe Lite and go to /apps/commerce/scaffolding/product
  2. Update the cq:targetPath property to point to the root of your catalog
  3. Save the changes

To see the properties page go to the products console (in Commerce --> Products) and select a cloud product. The Properties action should be available and it should open the properties page when clicked.

Building and installing from source

Pre-requisites

If you build and install each module manually, the magento-graphql and graphql-client bundles have to be installed in your AEM instance. You MUST also configure an instance of the GraphQL client, see the instructions on the corresponding repository to setup the client.

Building and installing

To build all the modules run in the project root directory the following command with Maven 3:

mvn clean install

If you have a running AEM instance, you can also build and deploy all sub-projects into AEM with

mvn clean install -PautoInstall

This installs everything by default to localhost:4502 without any context path. You can also configure the install location with the following maven properties:

  • aem.host: the name of the AEM instance
  • aem.port: the port number of the AEM instance
  • aem.contextPath: the context path of your AEM instance (if not /)

Code Formatting

Java

You can find the code formatting rules in /parent. The code formatting is automatically checked for each build. To automatically format your code, please run:

mvn clean install -Pformat-code

JavaScript & CSS

For formatting JavaScript and CSS we use prettier. The formatting is automatically checked when running npm test in the content/cif-connector/tests folder. To automatically format your code, please run the following command in content/cif-connector/tests:

npm run prettier:fix

Testing

Integration Tests

Integration tests are located in it/http and rely on additional test content from the test content package in it/content. Instead of communicating directly with a commerce backend, the integration tests use the mock server in it/mock-server.

To run the integration tests, first install the connector and the test content package. Then execute the following command and point to your running AEM author instance:

mvn clean verify -Ptest-all -Dsling.it.instance.url.1=http://localhost:4502 -Dsling.it.instance.runmode.1=author -Dsling.it.instances=1

Karma Unit Tests

The client-side JavaScript code of the connector is covered using Mocha unit tests executed with Karma. Please make sure that for every contribution new client-side code is covered by tests and that all tests pass.

cd content/cif-connector/tests
npm install
npm test

Karma will test with Chrome and Firefox. Make sure you have both browsers installed.

Releases to Maven Central

Releases are triggered by manually running mvn release:prepare release:clean on the master branch in the top-level folder of this repository. Once you choose the release and the next snapshot versions, this commits the change along with a release git tag like for example cif-connector-reactor-x.y.z. Note that the commits are not automatically pushed to the git repository, so you have some time to check your changes and then manually push them. The push then triggers a dedicated CircleCI build that performs the deployment of all the artifacts to Maven Central.

Note that the skip-it property ensures that the integration tests sub-modules are not released.

Important: starting with version 0.6.0, we changed the release strategy to a "reactor" release when all the artifacts are released with the same version. This makes it easier to perform releases and simplifies versioning.

Contributing

Contributions are welcomed! Read the Contributing Guide for more information.

Licensing

This project is licensed under the Apache V2 License. See LICENSE for more information.

commerce-cif-connector's People

Contributors

buuhuu avatar cjelger avatar dependabot[bot] avatar dplaton avatar gknobloch avatar hbacila avatar herzog31 avatar laurentiumagureanu avatar lsantha avatar mhaack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

commerce-cif-connector's Issues

Cannot select the root of the catalog

Expected Behaviour

When you bind the root catalog, it will allow you to select the root catalog to render from the top of the catalog in the menu

Actual Behaviour

You cannot select the top of the catalog to render, you have to pick one of the top level leafs of the hierachy.

Reproduce Scenario (including but not limited to)

Steps to Reproduce

below is image where you can see the root of the catalog, but you are not allowed to select it.

Unknown

If you do select it, instead of being able to just stop there, you have to choose one of the sub-categories.

Unknown-1

Platform and Version

Sample Code that illustrates the problem

Logs taken while reproducing problem

Use of CatalogDataResourceProviderManager and how to combine with product nodes

Expected Behaviour

In our set-up we have the CIF connector installed and use Product bindings in /var/commerce/products to virtually connect to Magento. No nodes will ever be created for the Magento use case under /var/commerce/products/our-magento-binding/.

But we also have a brand that wants to use the traditional way of handling products by importing products under /var/commerce/products/traditional-imported-products/.

Actual Behaviour

When updating, creating or removing a node in /var/commerce/products/traditional-imported-products/, we see the following stack trace in the log files and the system becomes very slow due to huge amount of data.

07.05.2021 15:04:42.733 WARN [sling-oak-observation-10] org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex Index-Traversed 20000 nodes with filter Filter(query=SELECT * FROM [sling:Folder] WHERE ISDESCENDANTNODE('/var/commerce/products') AND [sling:Folder].'cq:catalogDataResourceProviderFactory' IS NOT NULL, path=/var/commerce/products//*, property=[cq:catalogDataResourceProviderFactory=[is not null]])

We also are wondering what this class is exactly doing: https://github.com/adobe/commerce-cif-connector/blob/7d56aa839ef646edb8d47e4fe1ead91d97349182/bundles/cif-virtual-catalog/src/main/java/com/adobe/cq/commerce/virtual/catalog/data/impl/CatalogDataResourceProviderManagerImpl.java
(this is the class causing the log file entries)
Why is this needed for the Magento integration and shouldn't it be configured differently to only be triggered for the Magento bindings only?

Steps to Reproduce

Create a traditional folder under /var/commerce/products
and create product nodes.

Platform and Version

CIF 0.9.0, AEM 6.4.5

Sample Code that illustrates the problem

Logs taken while reproducing problem

07.05.2021 15:04:42.733 WARN [sling-oak-observation-10] org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex Index-Traversed 20000 nodes with filter Filter(query=SELECT * FROM [sling:Folder] WHERE ISDESCENDANTNODE('/var/commerce/products') AND [sling:Folder].'cq:catalogDataResourceProviderFactory' IS NOT NULL, path=/var/commerce/products//*, property=[cq:catalogDataResourceProviderFactory=[is not null]])

YUIScriptProcessor syntax error

Expected Behaviour

No errors in the author error.log

Actual Behaviour

[ERROR] null 02.12.2019 10:19:02.036 *ERROR* [0:0:0:0:0:0:0:1 [1575278342019] GET /libs/commerce/gui/components/common/cifcategoryfield/clientlibs.min.js HTTP/1.1] com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl Error during assembly of library. org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. at com.adobe.granite.ui.clientlibs.impl.YUIScriptProcessor$1.runtimeError(YUIScriptProcessor.java:146) [com.adobe.granite.ui.clientlibs:1.0.76.CQ640-B0003] at org.mozilla.javascript.Parser.parse(Parser.java:396) at org.mozilla.javascript.Parser.parse(Parser.java:340)

Steps to Reproduce

Enable minification under 'Adobe Granite HTML Library Manager'

Screenshot 2019-12-02 at 10 20 45

Platform and Version

Adobe Experience Manager (6.4.5.0) & connector 0.7.0

Cannot create Cloud Service

Expected Behaviour

I am following the step of the readme file to create a new cloud service.
I am expecting to have a working url in the documentation and I want to create a cloud service.

Actual Behaviour

When visiting http://localhost:4502/libs/commerce/gui/content/configuration.html/conf I get a 404. And in the repository, I cannot find the following node either under /libs/commerce/gui/content/configuration

Steps to Reproduce

  1. Go to http://localhost:4502/libs/commerce/gui/content/configuration.html/conf
  2. Page doesn't work

Platform and Version

AEM 6.4.5 & CIF connector 0.9.0

Version Issue with commerce-cif-graphql-client

The latest version (1.6) of cif-connector embeds the 1.6.0 version of commerce-cif-graphql-client.

However, the latest version of cif-components (https://github.com/adobe/aem-core-cif-components) expects a 1.7 version and this keeps the bundle in the installed state.

We have to manually upload the latest version of graphql-client (1.7) to resolve this. Can the cif-connector export the 1.7 version of graphql-client please so that we don't have to add the extra step?

Category picker graph query

Expected Behaviour
In the category picker the categoryWithChildren graphql query need is as string as param

Actual Behaviour
In the category picker the categoryWithChildren graphql query the category id is passed as int causer a coercion issue.

Steps to Reproduce
Access in edit mode on the category page and we click on ”View with category”.
Load the first level category :the fallowing graphql query is performed:

1.	{operationName: "categoryWithChildren", variables: {id: "2"},…}
1.	operationName: "categoryWithChildren"
2.	query: "query categoryWithChildren($id:String!){categoryList(filters:{ids:{eq:$id}}){id children{image id name url_key url_path updated_at __typename children_count product_count}__typename}}"
3.	variables: {id: "2"}
1.	id: "2"

Load the subcatetegory and the fallowing graphql query is performed:

1.	{operationName: "categoryWithChildren", variables: {id: 21},…}
1.	operationName: "categoryWithChildren"
2.	query: "query categoryWithChildren($id:String!){categoryList(filters:{ids:{eq:$id}}){id children{image id name url_key url_path updated_at __typename children_count product_count}__typename}}"
3.	variables: {id: 21}
1.	id: 21

The operation name is the same of the first query but in this case the parameter is passed as “int” even if is defined as string in the query categoryWithChildren($id:String!)
This second query cause an exception in the CIF Connector due to the coercion since an int was expected (Magento seem accept this behavior).
The problem is that this query is build through an external lib.

screen

Platform and Version

cif core component 1.6.0

Mixture of Versions 0.1.0 and 0.1.1-SNAPSHOT Packages

Expected Behaviour

When building the "all" project from the source I expect some consistency in versions of packages that get built. I.e everything in the project is a SNAPSHOT build or everything is a release.

Actual Behaviour

When building the connector from master there seem to be inconsistencies in the versions that get created:

image

Look at: https://github.com/adobe/commerce-cif-connector/blob/master/all/pom.xml

I can see versions of 0.1.2, 0.1.1-SNAPSHOT, AND 0.1.0. Is this intentional?

<parent>
        <groupId>com.adobe.commerce.cif</groupId>
        <artifactId>cif-connector-parent</artifactId>
        <version>0.1.2</version>
        <relativePath>../parent/pom.xml</relativePath>
    </parent>
...
<modelVersion>4.0.0</modelVersion>
    <artifactId>cif-connector-all</artifactId>
    <version>0.1.1-SNAPSHOT</version>
    <packaging>content-package</packaging>
...
 <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>cif-connector-content</artifactId>
            <version>0.1.0</version>
            <type>zip</type>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>cif-virtual-catalog-content</artifactId>
            <version>0.1.0</version>
            <type>zip</type>
            <scope>provided</scope>
        </dependency>

Steps to Reproduce

  1. clone the repo
  2. checkout master branch
  3. from the root directory perform: mvn clean install -PautoInstallAll

Disable cache for "CIF Catalog Magento GraphQL Configuration Factory" doesn't work

Expected Behaviour

When cache is disabled, that the CIF Virtual catalog & Product Console is still working.
I am doing tests in Magento and want to see them reflected faster in AEM. Therefore, locally I want to disable cache.

I could only bypass caching, by configuring all values to in the CIF Catalog Magento GraphQL Configuration Factory OSGI config to "1".

Actual Behaviour

When any of these checkboxes is disabled, the Product Console is not working anymore.

Schermafbeelding 2020-01-24 om 07 08 57

(after changing this config, I had to restart the CIF Connector Bundle)

No categories or products will load anymore on this screen:
http://localhost:4502/libs/commerce/gui/content/products.html/var/commerce/products

Reproduce Scenario (including but not limited to)

  1. Disable on, some or all checkboxes for caching on the "CIF Catalog Magento GraphQL Configuration Factory" OSGI config
  2. Restart the CIF Connector & CIF Virtual catalog bundle
  3. Go to http://localhost:4502/libs/commerce/gui/content/products.html/var/commerce/products
  4. Try to open a virtual catalog pointing to Magento

I need to mention that I have a Product binding for multiple StoreViews on a single Magento instance (also have 1 OSGI config for this environment, and I am re-using the "Project" on the Product Bind config.

Steps to Reproduce

Platform and Version

AEM 6.4.5
CIF Connector 0.7.1

CIF Catalog Magento GraphQL Configuration Factory missing

Expected Behaviour

In the AEM Web console - configuration we should be able to locate CIF Catalog Magento GraphQL Configuration Factory and create a child configuration

Actual Behaviour

In the AEM Web console - configuration the CIF Catalog Magento GraphQL Configuration Factory is missing.

Reproduce Scenario (including but not limited to)

After pulling the latest version from the master brunch and installing the package on AEM the CIF Catalog Magento GraphQL Configuration Factory is missing.

issue

Steps to Reproduce

Platform and Version

AEM 6.5

Sample Code that illustrates the problem

Logs taken while reproducing problem

mvn clean install -PautoInstallAll

Reactor Summary:
[INFO]
[INFO] CIF Connector - Parent project 0.1.3-SNAPSHOT ...... SUCCESS [ 0.196 s]
[INFO] CIF Virtual Catalog - Content package 0.1.1-SNAPSHOT SUCCESS [ 1.936 s]
[INFO] CIF Virtual Catalog - Bundle 0.1.1-SNAPSHOT ........ SUCCESS [ 15.040 s]
[INFO] CIF Connector - Content Package 0.1.1-SNAPSHOT ..... SUCCESS [ 0.206 s]
[INFO] CIF Connector - GraphQL Bundle 0.1.1-SNAPSHOT ...... SUCCESS [ 9.267 s]
[INFO] CIF Connector - All content package 0.1.1-SNAPSHOT . FAILURE [ 0.598 s]
[INFO] CIF Connector Reactor 0.1.0-SNAPSHOT ............... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

Drag&Drop a Product onto a page, renders a path

Expected Behaviour

When dragging a Product on a page, from the "Product Content Finder" in Touch UI. It renders a path to "/var/commerce/products/magento-products/men/tops-men/MH02". When configuring the path from the dialog, just the product SKUs is used "MH02".

Schermafbeelding 2020-01-22 om 16 56 41

Steps to Reproduce

  1. Install the archetype - 0.6.2 containing the Venia site
  2. Open any page of the Venia site
  3. Open the Content finder, to show products
  4. Search for "hoodie"
  5. Drag & Drop the first or any random product to the page
  6. A product Teaser component is created
  7. Open the dialog
  8. Issue: It shows a path (e.g. /var/commerce/products/magento-products/men/tops-men/MH02) & the component fails to render
  9. Now select a product from that dialog and choose a product.
  10. Now a sku is used as value for the dialog field.

What is the correct way of defining products in a dialog? Are both ok and should all our components work with both a path & a sku?

Platform and Version

AEM 6.4.5
CIF Connector 0.7.1
CIF Core Component 0.6.0

3rd party dependency coming from commerce-cif-connector is causing Quality code check from SonarQube (Cloud Manager) analysis to fail.

For a customer, build on Adobe Cloud Manager is failing because of the code quality checks set in Cloud manager (SonarQube analysis).
Around 6000 issues are coming from commerce-cif-connector dependency that is adding nodes to the /libs node of AEM, which is conflicting below mentioned custom code quality rule.

Customer Packages Should Not Create or Modify Nodes Under /libs {#oakpal-customer-package}
Key: BannedPaths
Type: Bug
Severity: Blocker

Example issue from the analysis report:
imported path /libs/commerce/gui/components/common/cifpicker/clientlibs/cifpicker.js matches deny pattern /libs(/.*)?

Do we need any fixes from commerce-cif-connector side for this?

Multiple Product Bindings, pointing to same Magento don't load products correctly

Expected Behaviour

When having multiple Product Bindings (1 per StoreView), using the same project (so same Magento) and caching is enabled, each Product Binding should load the correct catalog.

Actual Behaviour

When having multiple Product Bindings (1 per StoreView), using the same project (so same Magento), caching is enabled (to 5 minutes & 1000 items), the categories load correctly and show the category translations for that StoreView.

Schermafbeelding 2020-01-24 om 07 19 50

But the products loaded for each category are the products of the first StoreView that I selected. When clicking the next Product Binding, I am seeing the same products, knowing other products should be visible. After cache expiration, the first Product Binding I select and showed the products for, these will be the products that are used for the other Product Bindings.

Schermafbeelding 2020-01-24 om 07 26 57

(I first opened the French Product Binding, all French products for all Store Views)

Schermafbeelding 2020-01-24 om 07 30 04

(This time I opened the US Product Binding, all products for US are shows for all Store Views)

In Magento 1 have 3 StoreViews, on a global level I created 2 categories and on a global level I added products for 3 StoreViews. In Magento, when switching to the specific StoreViews, I could see which products would be loaded per StoreView, but not all should be visible on all Store Views. I have SKUs that are only applicable to some locales/StoreViews.

Steps to Reproduce

  1. http://localhost:4502/libs/commerce/gui/content/products.html/var/commerce/products/
  2. Make sure you have 2 or 3 Product Bindings, all pointing to the same Magento OSGI config, but each loading a different StoreView
  3. In Magento, populate the categories with products, knowing different products will be visible on different StoreViews. Also translate the categories per StoreView
  4. Make sure cache is enabled on the OSGI config
  5. Now navigate through the categories until you see products
  6. Go to another Product Binding (for another StoreView for the same Magento), you will see the category names are translated, but the products of the first selected Product Binding are used.

Platform and Version

AEM 6.4.5
CIF Connector 0.7.1
Magento 2.3.1 (Could this be related to this version of Magento? Planning to upgrade soon)

Maven compile is failing

Expected Behaviour

Project should compile succesfully

Actual Behaviour

It's throwing error stating
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M4:test (default-test) on project cif-connector-graphql: There are test failures.
[ERROR]
[ERROR] Please refer to C:\Users\bhavidya\Documents\commerce-cif-connector-master\bundles\cif-connector-graphql\target\surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.

Reproduce Scenario (including but not limited to)

Give the command mvn clean install

Steps to Reproduce

Platform and Version

Master version, windows platform

Sample Code that illustrates the problem

Logs taken while reproducing problem

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M4:test (default-test) on project cif-connector-graphql: There are test failures.
[ERROR]
[ERROR] Please refer to C:\Users\bhavidya\Documents\commerce-cif-connector-master\bundles\cif-connector-graphql\target\surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.

JavaScript not working when minify is enabled

Expected Behaviour

Expecting all JavaScript works when "Minify" is enabled on the "Html Library Manager" Osgi Config. And also all features in Touch UI and the site itself is working.

Actual Behaviour

The following JavaScript files fail to output JavaScript:
http://localhost:4502/etc.clientlibs/core/cif/components/structure/navigation/v1/navigation/clientlibs.min.js
http://localhost:4502/etc.clientlibs/core/cif/components/commerce/searchbar/v1/searchbar/clientlibs.min.js
http://localhost:4502/etc.clientlibs/core/cif/clientlibs/common.min.js
http://localhost:4502/etc.clientlibs/core/cif/components/commerce/product/v1/product/clientlib.min.js
http://localhost:4502/etc.clientlibs/core/cif/clientlibs/react-components.min.js

Reproduce Scenario (including but not limited to)

Install:

  • Clean AEM 6.4.5 (no other code installed)
  • CIF archetype 0.6.2
  • CIF Connector 0.7.1
  • Configure osgi config to point to Magento instance, Bind products & configure this Magento catalog on the Venia site.

Some code is causing minification to fail.
This has an impact on the following pages and actions:

Platform and Version

Clean AEM 6.4.5 (no other code installed)
CIF archetype 0.6.2
CIF Connector 0.7.1

Logs taken while reproducing problem

When Minify is enabled, I see the following in the browser error console:

[Error] Refused to execute http://localhost:4502/libs/commerce/gui/components/common/cifpicker/clientlibs.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.
[Error] Refused to execute http://localhost:4502/libs/commerce/gui/components/common/cifproductfield/clientlibs.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.
[Error] Refused to execute http://localhost:4502/libs/commerce/gui/components/common/cifcategoryfield/clientlibs.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.
[Error] Refused to execute http://localhost:4502/libs/commerce/gui/components/authoring/editor/pagepreview/clientlibs.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.
[Error] Refused to execute http://localhost:4502/etc.clientlibs/core/cif/components/structure/navigation/v1/navigation/clientlibs.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.
[Error] Refused to execute http://localhost:4502/etc.clientlibs/core/cif/components/commerce/searchbar/v1/searchbar/clientlibs.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.
[Error] Refused to execute http://localhost:4502/etc.clientlibs/core/cif/clientlibs/common.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.
[Error] Refused to execute http://localhost:4502/etc.clientlibs/core/cif/components/commerce/product/v1/product/clientlib.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.
[Error] Refused to execute http://localhost:4502/etc.clientlibs/core/cif/clientlibs/react-components.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.

I also want to mention when minify is disabled, all features are working, but the browser error console still contains a few errors.

In Product Finder, products of a category that has sub-categories are not shown

Expected Behaviour

In Product Finder, when accessing to a category that has sub-categories and products, both sub-categories and products should be visible.
image

Actual Behaviour

In Product Finder, when accessing to a category that has sub-categories and products, only sub-categories are shown. Products are not visible when I select my category.

Steps to Reproduce

  1. In Magento, create sub-categories Cat-1 and Cat-2 for a define category Cat-0 and assign products Prod-1, Prod-2 and Prod-3 to Cat-0
  2. Go in AEM Product Finder, find the linked Catalog and click on Cat-0 (only sub-categories Cat-1 and Cat-2 will appear, products Prod-1, Prod-2 and Prod-3 won't be visible)

Platform and Version

CIF Connector 0.10.0
AEM 6.5.0

For information

It seems that you have already discussed this issue with Olympe Kassa from Adobe. I have fix this point because for us, this was a blocker for contributors. So if you are interested, I can create a Pull Request.
As Olympe recommend it, I have created a properties in OSGI to let customers use it ASIS now or to display both sub-categories and products.

Intermittent "Failed to send GraphQL request error" on AEM Publish

Expected Behaviour

Product Detail Pages, Product Listing pages should work all the time.

Actual Behaviour

Intermittent, sporadic 500 Internal Server Error while accessing any page with Graphql calls - especially product details and product listing page.

Reproduce Scenario (including but not limited to)

Steps to Reproduce

  • Try to access any page with GraphQL calls. This isssue is not seen all the time.

Platform and Version

AEM Managed Service 6.5.9 on Azure
CIF Core component : 1.7.0
GraphQL Client: 1.7.1
Magento GraphQL Version: 6.0.0-magento235

Sample Code that illustrates the problem

What I have tried so far?

  • Increase timeouts
  • Enable keep alive
  • Increase/decrease keep alive
    These steps have not helped so far in completely eliminating this error. Currently, I am seeing this error ~10% of the time.

Logs taken while reproducing problem

org.apache.sling.scripting.sightly.render.ObjectModel Cannot access method items on object com.adobe.cq.commerce.core.components.internal.models.v1.breadcrumb.BreadcrumbImpl@d1e0551
  java.lang.reflect.InvocationTargetException: null
          at jdk.internal.reflect.GeneratedMethodAccessor482.invoke(Unknown Source)
          at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.base/java.lang.reflect.Method.invoke(Method.java:566)
          at org.apache.sling.scripting.sightly.render.ObjectModel.invokeBeanMethod(ObjectModel.java:418) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0]
          at org.apache.sling.scripting.sightly.render.ObjectModel.resolveProperty(ObjectModel.java:128) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0]
          at org.apache.sling.scripting.sightly.render.AbstractRuntimeObjectModel.getProperty(AbstractRuntimeObjectModel.java:138) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0]
          at org.apache.sling.scripting.sightly.impl.engine.runtime.SlingRuntimeObjectModel.getProperty(SlingRuntimeObjectModel.java:32) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.sightly.render.AbstractRuntimeObjectModel.resolveProperty(AbstractRuntimeObjectModel.java:74) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0]
          at org.apache.sling.scripting.sightly.apps.core.wcm.components.breadcrumb.v2.breadcrumb.breadcrumb_html.render(breadcrumb_html.java:46)
          at org.apache.sling.scripting.sightly.render.RenderUnit.render(RenderUnit.java:50) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0]
          at org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript.eval(SightlyCompiledScript.java:60) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:570) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:45) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:82) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilter(WCMDeveloperModeFilter.java:119) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:138) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:278) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.page.PageLockFilter.doFilter(PageLockFilter.java:91) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:94) [com.day.cq.cq-personalization:5.12.44]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) [com.adobe.granite.csrf:1.0.20.CQ650-B0002]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:283) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.dispatchRequest(SlingRequestProcessorImpl.java:323) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.request.SlingRequestDispatcher.dispatch(SlingRequestDispatcher.java:211) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.request.SlingRequestDispatcher.include(SlingRequestDispatcher.java:104) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMComponentFilter$ForwardRequestDispatcher.include(WCMComponentFilter.java:516) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at com.adobe.cq.sightly.WCMScriptHelper.includeResource(WCMScriptHelper.java:179) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0]
          at com.adobe.cq.sightly.internal.extensions.ResourceExtension.call(ResourceExtension.java:138) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0]
          at org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call(RenderContextImpl.java:77) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.sightly.libs.wcm.foundation.components.responsivegrid.responsivegrid_html.render(responsivegrid_html.java:119)
          at org.apache.sling.scripting.sightly.render.RenderUnit.render(RenderUnit.java:50) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0]
          at org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript.eval(SightlyCompiledScript.java:60) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:570) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:45) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:82) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilter(WCMDeveloperModeFilter.java:119) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:138) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:278) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.page.PageLockFilter.doFilter(PageLockFilter.java:91) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:94) [com.day.cq.cq-personalization:5.12.44]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) [com.adobe.granite.csrf:1.0.20.CQ650-B0002]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:283) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.dispatchRequest(SlingRequestProcessorImpl.java:323) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.request.SlingRequestDispatcher.dispatch(SlingRequestDispatcher.java:211) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.request.SlingRequestDispatcher.include(SlingRequestDispatcher.java:104) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMComponentFilter$ForwardRequestDispatcher.include(WCMComponentFilter.java:516) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at com.adobe.cq.sightly.WCMScriptHelper.includeResource(WCMScriptHelper.java:179) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0]
          at com.adobe.cq.sightly.internal.extensions.ResourceExtension.call(ResourceExtension.java:138) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0]
          at org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call(RenderContextImpl.java:77) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.sightly.libs.wcm.foundation.components.responsivegrid.responsivegrid_html.render(responsivegrid_html.java:119)
          at org.apache.sling.scripting.sightly.render.RenderUnit.render(RenderUnit.java:50) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0]
          at org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript.eval(SightlyCompiledScript.java:60) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:570) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:45) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:82) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilter(WCMDeveloperModeFilter.java:119) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:138) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:278) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.page.PageLockFilter.doFilter(PageLockFilter.java:91) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:94) [com.day.cq.cq-personalization:5.12.44]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) [com.adobe.granite.csrf:1.0.20.CQ650-B0002]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:283) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.dispatchRequest(SlingRequestProcessorImpl.java:323) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.request.SlingRequestDispatcher.dispatch(SlingRequestDispatcher.java:211) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.request.SlingRequestDispatcher.include(SlingRequestDispatcher.java:104) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMComponentFilter$ForwardRequestDispatcher.include(WCMComponentFilter.java:516) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at com.adobe.cq.sightly.WCMScriptHelper.includeResource(WCMScriptHelper.java:179) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0]
          at com.adobe.cq.sightly.internal.extensions.ResourceExtension.call(ResourceExtension.java:138) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0]
          at org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call(RenderContextImpl.java:77) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.sightly.apps.core.wcm.components.page.v2.page.body_html.render(body_html.java:62)
          at org.apache.sling.scripting.sightly.render.RenderUnit.render(RenderUnit.java:50) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0]
          at org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript.eval(SightlyCompiledScript.java:60) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.3.2]
          at com.adobe.cq.sightly.WCMScriptHelper.includeScript(WCMScriptHelper.java:222) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0]
          at com.adobe.cq.sightly.internal.extensions.IncludeExtension.call(IncludeExtension.java:72) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0]
          at org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call(RenderContextImpl.java:77) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.sightly.apps.sws__002d__b2c.components.structure.sws__002d__page.v1.sws__002d__page.sws__002d__page_html.render(sws__002d__page_html.java:328)
          at org.apache.sling.scripting.sightly.render.RenderUnit.render(RenderUnit.java:50) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0]
          at org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript.eval(SightlyCompiledScript.java:60) [org.apache.sling.scripting.sightly:1.1.2.1_4_0]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:570) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:45) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:82) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilter(WCMDeveloperModeFilter.java:119) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:138) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:278) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.page.PageLockFilter.doFilter(PageLockFilter.java:91) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:94) [com.day.cq.cq-personalization:5.12.44]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) [com.adobe.granite.csrf:1.0.20.CQ650-B0002]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:283) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.dispatchRequest(SlingRequestProcessorImpl.java:323) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.request.SlingRequestDispatcher.dispatch(SlingRequestDispatcher.java:211) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.request.SlingRequestDispatcher.include(SlingRequestDispatcher.java:104) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMComponentFilter$ForwardRequestDispatcher.include(WCMComponentFilter.java:516) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.jsp.libs.cq.Page.Page_jsp._jspService(Page_jsp.java:117)
          at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [org.apache.sling.scripting.jsp:2.3.6]
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) [org.apache.felix.http.servlet-api:1.1.2]
          at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:502) [org.apache.sling.scripting.jsp:2.3.6]
          at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:449) [org.apache.sling.scripting.jsp:2.3.6]
          at org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(JspScriptEngineFactory.java:339) [org.apache.sling.scripting.jsp:2.3.6]
          at org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$100(JspScriptEngineFactory.java:97) [org.apache.sling.scripting.jsp:2.3.6]
          at org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngineFactory.java:600) [org.apache.sling.scripting.jsp:2.3.6]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.3.2]
          at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:570) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:45) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:82) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:138) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:375) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:190) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.page.PageLockFilter.doFilter(PageLockFilter.java:91) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:94) [com.day.cq.cq-personalization:5.12.44]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:283) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:76) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) [org.apache.sling.engine:2.7.4]
          at com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet.doFilter(SaferSlingPostServlet.java:114) [com.adobe.cq.social.cq-social-ugcbase-impl:2.5.2]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) [org.apache.sling.engine:2.7.4]
          at com.day.cq.dam.core.impl.assetlinkshare.AdhocAssetShareAuthHandler.doFilter(AdhocAssetShareAuthHandler.java:434) [com.day.cq.dam.cq-dam-core:5.12.296]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) [org.apache.sling.engine:2.7.4]
          at com.day.cq.dam.core.impl.servlet.ActivityRecordHandler.doFilter(ActivityRecordHandler.java:141) [com.day.cq.dam.cq-dam-core:5.12.296]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.rest.impl.servlet.ApiResourceFilter.doFilter(ApiResourceFilter.java:70) [com.adobe.granite.rest.api:1.1.16.CQ650-B0005]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.requests.logging.impl.RequestLoggerImpl.doFilter(RequestLoggerImpl.java:134) [com.adobe.granite.requests.logging:1.0.20]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter.doFilter(AssetContentDispositionFilter.java:96) [com.adobe.granite.rest.assets:1.0.58]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl.doFilter(AuthoringUIModeServiceImpl.java:297) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter.doFilter(RedirectFilter.java:248) [com.day.cq.wcm.cq-wcm-mobile-core:5.11.10]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.xyz.bcp.core.filters.AuthFilter.doFilter(AuthFilter.java:153)
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:110) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.cq.social.commons.cors.CORSAuthenticationFilter.doFilter(CORSAuthenticationFilter.java:91) [com.adobe.cq.social.cq-social-commons:1.10.82]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.foundation.forms.FormsHandlingServletHelper.handleFilter(FormsHandlingServletHelper.java:226) [com.day.cq.wcm.cq-wcm-foundation:5.12.38]
          at com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet.doFilter(FormsHandlingServlet.java:138) [com.day.cq.wcm.cq-wcm-foundation:5.12.38]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.optout.impl.OptOutFilter.doFilter(OptOutFilter.java:76) [com.adobe.granite.optout:1.0.0]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.foundation.forms.FormsHandlingServletHelper.handleFilter(FormsHandlingServletHelper.java:226) [com.day.cq.wcm.cq-wcm-foundation:5.12.38]
          at com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet.doFilter(CoreFormHandlingServlet.java:123) [com.adobe.cq.core.wcm.components.core:2.17.8]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.day.cq.wcm.core.impl.WCMRequestFilter.doFilter(WCMRequestFilter.java:90) [com.day.cq.wcm.cq-wcm-core:5.12.164]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.rewriter.impl.RewriterFilter.doFilter(RewriterFilter.java:87) [org.apache.sling.rewriter:1.2.2]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:81) [com.adobe.granite.httpcache.core:1.0.8]
          at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:60) [com.adobe.granite.httpcache.core:1.0.8]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:131) [org.apache.sling.i18n:2.5.14]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) [com.adobe.granite.csrf:1.0.20.CQ650-B0002]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.security.impl.ContentDispositionFilter.doFilter(ContentDispositionFilter.java:152) [org.apache.sling.security:1.1.16]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) [org.apache.sling.engine:2.7.4]
          at com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl.doFilter(ResourceResolverHelperImpl.java:83) [com.adobe.granite.resourceresolverhelper:1.0.4]
          at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingRequestProcessorImpl.doProcessRequest(SlingRequestProcessorImpl.java:151) [org.apache.sling.engine:2.7.4]
          at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:250) [org.apache.sling.engine:2.7.4]
          at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:123) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:86) [org.apache.felix.http.jetty:4.1.10]
          at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:308) [com.adobe.granite.license:1.2.10]
          at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:131) [org.apache.sling.i18n:2.5.14]
          at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:116) [org.apache.sling.featureflags:1.2.2]
          at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75) [org.apache.sling.engine:2.7.4]
          at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.sling.engine.impl.parameters.RequestParameterSupportConfigurer.doFilter(RequestParameterSupportConfigurer.java:67) [org.apache.sling.engine:2.7.4]
          at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.dispatch.Dispatcher$1.doFilter(Dispatcher.java:146) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1002) [org.apache.felix.http.jetty:4.1.10]
          at com.adobe.granite.auth.oauth.impl.OAuthCallbackFilter.doFilter(OAuthCallbackFilter.java:69) [com.adobe.granite.auth.oauth:1.7.2]
          at org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:137) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1008) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:326) [org.apache.sling.security:1.1.16]
          at org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:137) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1008) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:97) [org.apache.felix.http.sslfilter:1.2.6]
          at org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:137) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1008) [org.apache.felix.http.jetty:4.1.10]
          at com.adobe.ams.security.core.AMSSecurityFilter.doFilter(AMSSecurityFilter.java:56) [com.adobe.ams.dispatcher-filter-test-endpoint.core:0.0.2]
          at org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:137) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1008) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager.invokePreprocessors(WhiteboardManager.java:1012) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:91) [org.apache.felix.http.jetty:4.1.10]
          at org.apache.felix.http.base.internal.dispatch.DispatcherServlet.service(DispatcherServlet.java:49) [org.apache.felix.http.jetty:4.1.10]
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) [org.apache.felix.http.servlet-api:1.1.2]
          at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.Server.handle(Server.java:516) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882) [org.apache.felix.http.jetty:4.1.10]
          at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036) [org.apache.felix.http.jetty:4.1.10]
          at java.base/java.lang.Thread.run(Thread.java:834)
  Caused by: java.lang.RuntimeException: Failed to send GraphQL request: {products(filter:{url_key:{eq:"<product slug>"}}){items{__typename,sku,url_key}}}
          at com.adobe.cq.commerce.graphql.client.impl.GraphqlClientImpl.executeImpl(GraphqlClientImpl.java:257) [com.adobe.commerce.cif.graphql-client:1.7.7.SNAPSHOT]
          at com.adobe.cq.commerce.graphql.client.impl.GraphqlClientImpl.execute(GraphqlClientImpl.java:228) [com.adobe.commerce.cif.graphql-client:1.7.7.SNAPSHOT]
          at com.adobe.cq.commerce.core.components.internal.client.MagentoGraphqlClientImpl.execute(MagentoGraphqlClientImpl.java:201) [com.adobe.commerce.cif.core-cif-components-core:2.0.0]
          at com.adobe.cq.commerce.core.components.models.retriever.AbstractProductRetriever.executeQuery(AbstractProductRetriever.java:164) [com.adobe.commerce.cif.core-cif-components-core:2.0.0]
          at com.adobe.cq.commerce.core.components.internal.services.UrlToProductRetriever.populate(UrlToProductRetriever.java:56) [com.adobe.commerce.cif.core-cif-components-core:2.0.0]
          at com.adobe.cq.commerce.core.components.models.retriever.AbstractProductRetriever.fetchProduct(AbstractProductRetriever.java:72) [com.adobe.commerce.cif.core-cif-components-core:2.0.0]
          at com.adobe.cq.commerce.core.components.internal.services.UrlProviderImpl.getProductIdentifier(UrlProviderImpl.java:358) [com.adobe.commerce.cif.core-cif-components-core:2.0.0]
          at com.adobe.cq.commerce.core.components.internal.models.v1.breadcrumb.BreadcrumbImpl.populateItems(BreadcrumbImpl.java:131) [com.adobe.commerce.cif.core-cif-components-core:2.0.0]
          at com.adobe.cq.commerce.core.components.internal.models.v1.breadcrumb.BreadcrumbImpl.lambda$getItems$0(BreadcrumbImpl.java:106) [com.adobe.commerce.cif.core-cif-components-core:2.0.0]
          at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
          at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1085)
          at com.adobe.cq.commerce.core.components.internal.models.v1.breadcrumb.BreadcrumbImpl.getItems(BreadcrumbImpl.java:106) [com.adobe.commerce.cif.core-cif-components-core:2.0.0]
          ... 273 common frames omitted
  Caused by: java.net.SocketTimeoutException: Read timed out
          at java.base/java.net.SocketInputStream.socketRead0(Native Method)
          at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
          at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168)
          at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
          at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:448)
          at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:68)
          at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1104)
          at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:823)
          at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137) [org.apache.httpcomponents.httpcore:4.4.8]
          at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153) [org.apache.httpcomponents.httpcore:4.4.8]
          at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:282) [org.apache.httpcomponents.httpcore:4.4.8]

Categories are not displaying properly on /libs/commerce/gui/components/common/cifcategoryfield component after 20 categories are added

Expected Behaviour

We should be able to see the category names displaying properly when selecting more than 20 items using the /libs/commerce/gui/components/common/cifcategoryfield picker, this is to avoid confusion about what items have been selected already for that particular picker.

Actual Behaviour

Red values are displayed for items beyond selecting 20 items in category picker making them difficult to be identified.

Reproduce Scenario (including but not limited to)

Create a dialog using the /libs/commerce/gui/components/common/cifcategoryfield Category Picker,
Select more than 20 categories

Steps to Reproduce

Create a dialog using the /libs/commerce/gui/components/common/cifcategoryfield Category Picker,
Select more than 20 categories
review that after 20 items categories display in red.

Platform and Version

AEM as a Cloud Service using the latest commerce-cif-connector 1.8.1

Sample Code that illustrates the problem

No code but after taking a look at the request made to grab the details we can see there is a limit on the amount of items to retrieve using the GraphQL endpoint as follows where we see by default there is a limit on the pageSize of 20 items.

https://<aem_host_url>/api/graphql?query=query+categoryList($filters:CategoryFilterInput!$pageSize:Int=20$currentPage:Int=1){categories(filters:$filters+pageSize:$pageSize+currentPage:$currentPage){items{id+image+name+uid+url_key+url_path+__typename+children_count}__typename}}&operationName=categoryList&variables={"pageSize":20,"currentPage":1,"filters":{"category_uid":{"in":["OTgy","OTg1","OTg4","OTkx","OTk0","OTk3","MTAwMA==","MTAwMw==","MTAwNg==","MTAxNQ==","MTAyMQ==","MTAyNA==","MTAyNw==","MTAzMA==","MTAzNg==","MTAzOQ==","MTA0Mg==","MTA0NQ==","MTA1NA==","MTA1Nw==","MTA2MA==","MTA2Mw==","MTA2OQ==","MTA3NQ==","MTA3OA==","MTA4NA==","MTA4Nw==","MTA5MA==","MTEwNQ==","MTEwOA==","MTExMQ==","MTExNw==","MTEyMA==","MTEyMw==","MTEyOQ==","MTEzMg==","MTEzNQ==","MTEzOA==","MTE0MQ==","MTA5Ng==","MTE1OQ==","MTE2Mg==","MTE2NQ==","MTE2OA==","MTE0Nw==","MTE3NA==","MTE3Nw==","MTE4MA==","MTE4Ng==","MTE4OQ==","MTE5NQ==","MTE5OA==","MTIwMQ==","MTIwNA==","MTIwNw==","MTIxNg==","MTIxOQ==","MTIyMg==","MTIyNQ==","MTIyOA==","MTIzMQ==","MTI0MA==","MTI0Mw==","MTI0Ng==","MTI1NQ==","MTI1OA==","MTI2NA==","MTI2Nw==","MTI3MA==","MTI3Mw==","MTI3Ng==","MTI3OQ==","MTI4Mg==","MTI4NQ==","MTI5NA==","MTMwMA==","MTMwMw==","MTMwNg==","MTMwOQ==","MTMxMg==","MTMxNQ==","MTMyMQ==","MTMyNA==","MTMzMA==","MTMzMw==","MTM0Mg==","MTM0NQ==","MTM0OA==","MjY3MQ=="]}}}

Logs taken while reproducing problem

No logs

'CIF Catalog Magento GraphQL Configuration Factory' Not showing

Expected Behaviour

After-mvn clean install -PautoInstall the 'CIF Catalog Magento GraphQL Configuration Factory' should appear in http://localhost:4502/system/console/configMgr

Actual Behaviour

'CIF Catalog Magento GraphQL Configuration Factory' not showing at http://localhost:4502/system/console/configMgr

Reproduce Scenario (including but not limited to)

Steps to Reproduce

Platform and Version

AEM 6.5

Sample Code that illustrates the problem

Logs taken while reproducing problem

Unable to create multiple cloud services

Expected Behaviour

My Magento & AEM set-up consists out of multiple locales and multiple store views.
I am under the impression that I need multiple cloud services to connect per locale to the correct store view.

Actual Behaviour

I can only create 1 single CIF cloud service per /conf/brand folder. All my locales share the same /conf/brand folder. I need to configure the store view on the cloud service and this cloud service is applied to all my locales. So I cannot use different store views anymore.

Steps to Reproduce

  1. Create a cloud service for the gb-en site, pointing to store view gb.
  2. Create a cloud service for the us-en site, pointing to the store view us.

Platform and Version

CIF connector 0.10.0
AEM 6.4.5

Virtual catalog config not picked up

Expected Behaviour

Virtual catalog configuration should be picked up correctly when pushing it from code

Actual Behaviour

Virtual catalog data definition is invalid (logs) and the integration stops working.

Reproduce Scenario (including but not limited to)

Provide a GraphqlClientImpl and GraphqlDataServiceImpl config and push your product binding (in our case /var/commerce/products/magento-products using a META-INF filter. Restart the author, the binding is failing until you restart the virtual catalog bundle.

Platform and Version

Adobe Experience Manager (6.4.5.0) & connector 0.7.0

Images, code & logs that illustrates the problem

Screenshot 2019-12-02 at 09 45 55

Screenshot 2019-12-02 at 09 46 14

com.adobe.cq.commerce.virtual.catalog.data.impl.CatalogDataResourceProviderManagerImpl Start registering all virtual catalog trees... com.adobe.cq.commerce.virtual.catalog.data.impl.CatalogDataResourceProviderManagerImpl No factory found for provider id magento-graphql. Registering this data root will fail om.adobe.cq.commerce.virtual.catalog.data.impl.CatalogDataResourceProviderManagerImpl Virtual catalog data definition at '/var/commerce/products/magento-products' is invalid. com.adobe.cq.commerce.virtual.catalog.data.impl.CatalogDataResourceProviderManagerImpl Registered 0 virtual catalog data resource providers(s) in 4 ms, skipping 1 invalid one(s).

VIRTUAL CATALOG BUNDLE RESTART

com.adobe.cq.commerce.virtual.catalog.data.impl.CatalogDataResourceProviderManagerImpl Start registering all virtual catalog trees... com.adobe.cq.commerce.virtual.catalog.data.impl.CatalogDataResourceProviderManagerImpl Registered com.adobe.cq.commerce.graphql.resource.GraphqlResourceProvider@83e3337 com.adobe.cq.commerce.virtual.catalog.data.impl.CatalogDataResourceProviderManagerImpl Registered 1 virtual catalog data resource providers(s) in 10 ms, skipping 0 invalid one(s).

Screenshot 2019-12-02 at 09 47 15

Screenshot 2019-12-02 at 09 47 25

com.adobe.cq.commerce.graphql.client.impl.GraphqlClientImpl-magento-client.xml

<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="sling:OsgiConfig" acceptSelfSignedCertificates="{Boolean}true" httpMethod="POST" identifier="magento-client" maxHttpConnections="{Decimal}20" url="https://127.0.0.1:443/graphql" socketTimeout="20000"/>

com.adobe.cq.commerce.graphql.magento.GraphqlDataServiceImpl-magento-catalog.xml

<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="sling:OsgiConfig" productCachingTimeMinutes="{Decimal}5" catalogCachingTimeMinutes="{Decimal}60" identifier="magento-client" categoryCachingSize="{Decimal}100" productCachingSize="{Decimal}1000" catalogCachingSchedulerEnabled="{Boolean}true" productCachingEnabled="{Boolean}true" catalogCachingEnabled="{Boolean}true"/>

CIF Virtual Catalog - Bundlecom.adobe.commerce.cif.virtual-catalog

com.adobe.commerce.cif.connector-graphql bundle com.adobe.commerce.cif.connector-graphql:0.7.0 (585)[com.adobe.cq.commerce.graphql.magento.GraphqlDataServiceImpl(3858)] : The activate method has thrown an exception (java.lang.RuntimeException: Cannot find GraphqlClient with identifier 'magento-client') java.lang.RuntimeException: Cannot find GraphqlClient with identifier 'magento-client' at com.adobe.cq.commerce.graphql.magento.GraphqlDataServiceImpl.activate(GraphqlDataServiceImpl.java:101) [com.adobe.commerce.cif.connector-graphql:0.7.0]

Unresolved Dependencies

Expected Behaviour

All Bundles should be active

Actual Behaviour

CIF Connector - Graph QL Bundle is not active

Steps to Reproduce

1.Installed the all package using 'mvn clean install -PautoInstallAll' inside all folder.
2. In AEM Web console (http://localhost:4502/system/console/bundles) able to see a bundle in installed state.

Platform and Version

AEM 6.5, Mac OS , Java(TM) SE Runtime Environment (build 1.8.0_151-b12)

Logs taken while reproducing problem

com.adobe.cq.commerce.graphql.client,version=[0.1,1) -- Cannot be resolved

Products not showing up for some categories in sample catalog

Expected Behaviour

Products of all categories show up in commerce catalog explorer.

Actual Behaviour

Some categories are shown empty even when they have products in them because of an error.

Reproduce Scenario (including but not limited to)

(All Women categories are showing the issue)
(All Men categories except "Sweaters and Hoodies are having the issue too)

Using sample data catalog for Magento and navigating to category: Women > Top > Jackets:
Screenshot_2019-05-07 AEM Products

Category shows products in Magento:
Screenshot_2019-05-07 Jackets (ID 23) Categories Inventory Catalog Magento Admin

Steps to Reproduce

Navigate to: http://localhost:4502/libs/commerce/gui/content/products.html/var/commerce/products/DBI/women/tops-women/jackets-women

Platform and Version

Magento 3.2.1
AEM 6.5

Sample Code that illustrates the problem

N/A

Logs taken while reproducing problem

com.google.common.cache.CacheLoader$InvalidCacheLoadException: CacheLoader returned null for key null.
	at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2346)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2316)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3932)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3936)
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4806)
	at com.adobe.cq.commerce.graphql.magento.GraphqlDataServiceImpl.getProductBySku(GraphqlDataServiceImpl.java:118) [com.adobe.commerce.cif.connector-graphql:0.1.0.SNAPSHOT]
	at com.adobe.cq.commerce.graphql.resource.ResourceMapper.resolveProduct(ResourceMapper.java:235) [com.adobe.commerce.cif.connector-graphql:0.1.0.SNAPSHOT]
	at com.adobe.cq.commerce.graphql.resource.GraphqlResourceProvider.getResource(GraphqlResourceProvider.java:73) [com.adobe.commerce.cif.connector-graphql:0.1.0.SNAPSHOT]
	at org.apache.sling.resourceresolver.impl.providers.stateful.AuthenticatedResourceProvider.getResource(AuthenticatedResourceProvider.java:135) [org.apache.sling.resourceresolver:1.6.8]
	at org.apache.sling.resourceresolver.impl.helper.ResourceResolverControl.getResource(ResourceResolverControl.java:225) [org.apache.sling.resourceresolver:1.6.8]
	at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.getAbsoluteResourceInternal(ResourceResolverImpl.java:865) [org.apache.sling.resourceresolver:1.6.8]
	at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.getResourceInternal(ResourceResolverImpl.java:488) [org.apache.sling.resourceresolver:1.6.8]
	at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.getResource(ResourceResolverImpl.java:442) [org.apache.sling.resourceresolver:1.6.8]
	at com.day.cq.wcm.core.impl.page.PageManagerImpl.getPage(PageManagerImpl.java:243) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at com.adobe.cq.commerce.common.CommerceHelper.getCardTitle(CommerceHelper.java:579) [com.adobe.cq.commerce.cq-commerce-core:5.17.12]
	at org.apache.jsp.libs.commerce.gui.components.admin.products.childcolumnitem.childcolumnitem_jsp._jspService(childcolumnitem_jsp.java:403)
	at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [org.apache.sling.scripting.jsp:2.3.4]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) [org.apache.felix.http.servlet-api:1.1.2]
	at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:502) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:449) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(JspScriptEngineFactory.java:342) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$100(JspScriptEngineFactory.java:97) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngineFactory.java:603) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388) [org.apache.sling.scripting.core:2.0.56]
	at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.0.56]
	at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.0.56]
	at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:552) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:82) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilter(WCMDeveloperModeFilter.java:119) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) [com.adobe.granite.csrf:1.0.20]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:156) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:375) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:190) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.page.PageLockFilter.doFilter(PageLockFilter.java:91) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:94) [com.day.cq.cq-personalization:5.12.36]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.dispatchRequest(SlingRequestProcessorImpl.java:322) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.request.SlingRequestDispatcher.dispatch(SlingRequestDispatcher.java:211) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.request.SlingRequestDispatcher.include(SlingRequestDispatcher.java:104) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMComponentFilter$ForwardRequestDispatcher.include(WCMComponentFilter.java:516) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at com.adobe.granite.ui.components.impl.BaseComponentHelper.include(BaseComponentHelper.java:530) [com.adobe.granite.ui.commons:5.10.14]
	at com.adobe.granite.ui.components.ComponentHelper.include(ComponentHelper.java:675) [com.adobe.granite.ui.commons:5.10.14]
	at com.adobe.granite.ui.components.ComponentHelper.include(ComponentHelper.java:652) [com.adobe.granite.ui.commons:5.10.14]
	at org.apache.jsp.libs.granite.ui.components.coral.foundation.columnview.columnview_jsp._jspService(columnview_jsp.java:422)
	at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [org.apache.sling.scripting.jsp:2.3.4]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) [org.apache.felix.http.servlet-api:1.1.2]
	at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:502) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:449) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(JspScriptEngineFactory.java:342) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$100(JspScriptEngineFactory.java:97) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngineFactory.java:603) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388) [org.apache.sling.scripting.core:2.0.56]
	at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.0.56]
	at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.0.56]
	at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:552) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:82) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilter(WCMDeveloperModeFilter.java:119) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) [com.adobe.granite.csrf:1.0.20]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:156) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:375) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:190) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.page.PageLockFilter.doFilter(PageLockFilter.java:91) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:94) [com.day.cq.cq-personalization:5.12.36]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.dispatchRequest(SlingRequestProcessorImpl.java:322) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.request.SlingRequestDispatcher.dispatch(SlingRequestDispatcher.java:211) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.request.SlingRequestDispatcher.include(SlingRequestDispatcher.java:104) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMComponentFilter$ForwardRequestDispatcher.include(WCMComponentFilter.java:516) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.scripting.jsp.taglib.IncludeTagHandler.dispatch(IncludeTagHandler.java:54) [org.apache.sling.scripting.jsp.taglib:2.4.0]
	at org.apache.sling.scripting.jsp.taglib.AbstractDispatcherTagHandler.doEndTag(AbstractDispatcherTagHandler.java:128) [org.apache.sling.scripting.jsp.taglib:2.4.0]
	at org.apache.jsp.libs.commerce.gui.components.common.basepathswrapper.basepathswrapper_jsp._jspService(basepathswrapper_jsp.java:156)
	at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [org.apache.sling.scripting.jsp:2.3.4]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) [org.apache.felix.http.servlet-api:1.1.2]
	at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:502) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:449) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(JspScriptEngineFactory.java:342) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$100(JspScriptEngineFactory.java:97) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngineFactory.java:603) [org.apache.sling.scripting.jsp:2.3.4]
	at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388) [org.apache.sling.scripting.core:2.0.56]
	at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.0.56]
	at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.0.56]
	at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:552) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:82) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:156) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:375) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:190) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.page.PageLockFilter.doFilter(PageLockFilter.java:91) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:94) [com.day.cq.cq-personalization:5.12.36]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:76) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.warp.TimeWarpFilter.doFilter(TimeWarpFilter.java:109) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet.doFilter(SaferSlingPostServlet.java:114) [com.adobe.cq.social.cq-social-ugcbase-impl:2.5.2]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) [org.apache.sling.engine:2.6.18]
	at com.day.cq.dam.core.impl.servlet.ActivityRecordHandler.doFilter(ActivityRecordHandler.java:141) [com.day.cq.dam.cq-dam-core:5.12.164]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.dam.core.impl.assetlinkshare.AdhocAssetShareAuthHandler.doFilter(AdhocAssetShareAuthHandler.java:437) [com.day.cq.dam.cq-dam-core:5.12.164]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.granite.rest.impl.servlet.ApiResourceFilter.doFilter(ApiResourceFilter.java:70) [com.adobe.granite.rest.api:1.1.16]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.granite.requests.logging.impl.RequestLoggerImpl.doFilter(RequestLoggerImpl.java:134) [com.adobe.granite.requests.logging:1.0.20]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter.doFilter(AssetContentDispositionFilter.java:96) [com.adobe.granite.rest.assets:1.0.58]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) [com.adobe.granite.csrf:1.0.20]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl.doFilter(AuthoringUIModeServiceImpl.java:372) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter.doFilter(RedirectFilter.java:248) [com.day.cq.wcm.cq-wcm-mobile-core:5.11.10]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:107) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.cq.social.commons.cors.CORSAuthenticationFilter.doFilter(CORSAuthenticationFilter.java:91) [com.adobe.cq.social.cq-social-commons:1.10.70]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.foundation.forms.FormsHandlingServletHelper.handleFilter(FormsHandlingServletHelper.java:226) [com.day.cq.wcm.cq-wcm-foundation:5.12.20]
	at com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet.doFilter(FormsHandlingServlet.java:138) [com.day.cq.wcm.cq-wcm-foundation:5.12.20]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.granite.optout.impl.OptOutFilter.doFilter(OptOutFilter.java:76) [com.adobe.granite.optout:1.0.0]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.foundation.forms.FormsHandlingServletHelper.handleFilter(FormsHandlingServletHelper.java:226) [com.day.cq.wcm.cq-wcm-foundation:5.12.20]
	at com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet.doFilter(CoreFormHandlingServlet.java:126) [com.adobe.cq.core.wcm.components.core:2.3.2]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.day.cq.wcm.core.impl.WCMRequestFilter.doFilter(WCMRequestFilter.java:90) [com.day.cq.wcm.cq-wcm-core:5.12.90]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.cq.history.impl.HistoryRequestFilter.doFilter(HistoryRequestFilter.java:122) [com.adobe.cq.cq-history:5.10.6]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.cq.mcm.campaign.servlets.CampaignCopyTracker.doFilter(CampaignCopyTracker.java:100) [com.day.cq.mcm.cq-mcm-campaign:1.3.12]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.rewriter.impl.RewriterFilter.doFilter(RewriterFilter.java:87) [org.apache.sling.rewriter:1.2.2]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:81) [com.adobe.granite.httpcache.core:1.0.8]
	at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:60) [com.adobe.granite.httpcache.core:1.0.8]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:131) [org.apache.sling.i18n:2.5.14]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.security.impl.ContentDispositionFilter.doFilter(ContentDispositionFilter.java:152) [org.apache.sling.security:1.1.16]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) [org.apache.sling.engine:2.6.18]
	at com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl.doFilter(ResourceResolverHelperImpl.java:83) [com.adobe.granite.resourceresolverhelper:1.0.4]
	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.doProcessRequest(SlingRequestProcessorImpl.java:151) [org.apache.sling.engine:2.6.18]
	at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:244) [org.apache.sling.engine:2.6.18]
	at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:123) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:86) [org.apache.felix.http.jetty:4.0.8]
	at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:308) [com.adobe.granite.license:1.2.10]
	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:131) [org.apache.sling.i18n:2.5.14]
	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:116) [org.apache.sling.featureflags:1.2.2]
	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:72) [org.apache.sling.engine:2.6.18]
	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.sling.engine.impl.parameters.RequestParameterSupportConfigurer.doFilter(RequestParameterSupportConfigurer.java:63) [org.apache.sling.engine:2.6.18]
	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.dispatch.Dispatcher$1.doFilter(Dispatcher.java:146) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1002) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:326) [org.apache.sling.security:1.1.16]
	at org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:136) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1008) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:97) [org.apache.felix.http.sslfilter:1.2.6]
	at org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:136) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1008) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager.invokePreprocessors(WhiteboardManager.java:1012) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:91) [org.apache.felix.http.jetty:4.0.8]
	at org.apache.felix.http.base.internal.dispatch.DispatcherServlet.service(DispatcherServlet.java:49) [org.apache.felix.http.jetty:4.0.8]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) [org.apache.felix.http.servlet-api:1.1.2]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1701) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1668) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.Server.handle(Server.java:502) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) [org.apache.felix.http.jetty:4.0.8]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) [org.apache.felix.http.jetty:4.0.8]
	at java.lang.Thread.run(Thread.java:748)```

All products not shown in Product Finder when authoring

Expected Behaviour

When editing a page in Touch UI, the "content finder" should show all products. This is remaining empty:
Schermafbeelding 2020-01-22 om 16 44 17

When editing a page in Touch UI, the "content finder" option to "filter path" on Products, only navigates on /etc/commerce and not /var/commerce:
Schermafbeelding 2020-01-22 om 16 45 36

Actual Behaviour

When editing a page in Touch UI, the "content finder" doesn't show all products. if searching for "hoodie" it will show products. But we expect like "assets", to see a set of products.
When editing a page in Touch UI, the "content finder" the "Enter path" option should show /var/commerce as well.

Reproduce Scenario (including but not limited to)

Open a page of the Venia site (archetype 0.6.2) & open the "Products" panel. No products are shown.

Platform and Version

AEM 6.4.5
CIF Connector 0.7.1
CIF Core Component 0.6.0

Logs taken while reproducing problem

22.01.2020 15:18:52.107 WARN [0:0:0:0:0:0:0:1 [1579702732107] GET /bin/wcm/contentfinder/cifproduct/view.html HTTP/1.1] com.day.cq.commons.servlets.AbstractPredicateServlet Predicate provider not bound.

Binding not working as expected

Expected Behaviour

After binding product catalog to AEM resource tree expected to see categories and products list.

Actual Behaviour

After binding product catalog to AEM resource tree cannot see categories and products list.
Screenshot from 2019-08-21 15-40-53

Reproduce Scenario (including but not limited to)

Steps to Reproduce

Follow README.md tutorial until step 3;

Platform and Version

AEM 6.4.4
Magento 2.3.2
commerce-cif-connector 0.4.0

Sample Code that illustrates the problem

N/A

Logs taken while reproducing problem

Just deleted the bind called magentodemo and create a new one called magentodemo2. Logs doesn't seems to have further details.

error.log

21.08.2019 19:02:17.118 *INFO* [sling-threadpool-cda251d5-39bd-4243-9783-56b79f16384b-(apache-sling-job-thread-pool)-11-com_day_cq_replication_job_publish-2(com/day/cq/replication/job/publish-2)] com.day.cq.replication.Agent.publish-2 <<
21.08.2019 19:02:17.118 *INFO* [sling-threadpool-cda251d5-39bd-4243-9783-56b79f16384b-(apache-sling-job-thread-pool)-11-com_day_cq_replication_job_publish-2(com/day/cq/replication/job/publish-2)] com.day.cq.replication.Agent.publish-2 << ReplicationAction DELETE ok.
21.08.2019 19:02:17.118 *INFO* [sling-threadpool-cda251d5-39bd-4243-9783-56b79f16384b-(apache-sling-job-thread-pool)-11-com_day_cq_replication_job_publish-2(com/day/cq/replication/job/publish-2)] com.day.cq.replication.Agent.publish-2 Message sent.
21.08.2019 19:02:17.118 *INFO* [sling-threadpool-cda251d5-39bd-4243-9783-56b79f16384b-(apache-sling-job-thread-pool)-11-com_day_cq_replication_job_publish-2(com/day/cq/replication/job/publish-2)] com.day.cq.replication.Agent.publish-2 ------------------------------------------------
21.08.2019 19:02:17.118 *INFO* [sling-threadpool-cda251d5-39bd-4243-9783-56b79f16384b-(apache-sling-job-thread-pool)-11-com_day_cq_replication_job_publish-2(com/day/cq/replication/job/publish-2)] com.day.cq.replication.Agent.publish-2 Replication (DELETE) of /etc/commerce/products/magentodemo successful.
21.08.2019 19:02:17.118 *INFO* [sling-threadpool-cda251d5-39bd-4243-9783-56b79f16384b-(apache-sling-job-thread-pool)-11-com_day_cq_replication_job_publish-2(com/day/cq/replication/job/publish-2)] com.day.cq.replication.Agent.publish-2.queue Job for agent publish-2 processed in 64ms. Ok.
21.08.2019 19:02:20.004 *INFO* [CommitStats] CommitStats 19 commits by 4 users [78% sling-event, 10% audit-service, 5% replication-service, 5% admin] from 4 locations [57% HTTP-POST:/bin/wcmcommand, 15% threadpool:o.a.jackrabbit.oak.spi.commit.BackgroundObser..., 15% jobmanager:job.finishJob, 10% scheduled:replication-audit] (4 types [57% HTTP-POST, 15% jobmanager, 15% threadpool, 10% scheduled]) [CommitStats overhead was 3ms = 158.0us / commit]
21.08.2019 19:02:20.859 *INFO* [oak-lucene-102] org.apache.jackrabbit.oak.plugins.blob.AbstractSharedCachingDataStore Added blob [04300bb055785ade665c44ea141359bf1ec4703a8be19d0d2f05ee220a051941] to backend
21.08.2019 19:02:21.082 *INFO* [oak-lucene-102] org.apache.jackrabbit.oak.plugins.blob.AbstractSharedCachingDataStore Added blob [63e4eed3d9318419d545d1eeddfb29129144b41da4dd9a6f1a4c63affbb09061] to backend
21.08.2019 19:02:21.261 *INFO* [oak-lucene-102] org.apache.jackrabbit.oak.plugins.blob.AbstractSharedCachingDataStore Added blob [c1da90c66c68537eb6b04d506268b6b4a821c5e95a655b31e153503560d78901] to backend

Graphql client connection pool fills up

Expected Behaviour

The connection pool should handle it's connections, and a timeout should be available
for when the graphql service is misbehaving

Actual Behaviour

A timeout is not configurable for the graphql client. Connections will not timeout when stale.
And when a returned http status is != 200, the response is not consumed, this causes the connectionpool to flood.

Reproduce Scenario (including but not limited to)

Let the graphql service return responses with status-code != 200. Connections will remain in connectionpool. When the pool is full, it will wait indefinitely for a connection to become available, locking the thread

Steps to Reproduce

Setup the service to be in error state (e.g. return status 503)
Use the graphql client to do several calls. When the connection pool is full, it remains (default 20)

Platform and Version

AEM 6.4.5, graphql client 1.1.0

Sample Code that illustrates the problem

Logs taken while reproducing problem

Additional information

We are using the graphql client to fetch information from magento.
And noticed the client to become unresponsive. A pull request will be available shortly, since we are dependant on the client to move on.

We are creating a pull request to address this issue with the client, as it is currently impeding our progress integrating magento. Is the timeout/connectionpool issue handled in a different way in the cif-components for magento?

Product Browser not working after refresh and category/product was selected

Expected Behaviour

After refreshing the product browser when a category or product was selected, results in a broken product Browser. I am expecting to stil see all catalogs and the parent categories.

Actual Behaviour

After refreshing the product browser when a category or product was selected, results in a broken product Browser.I want to provide a link to a category or product, which will not render the catalogs anymore.
Instead the selected category or products becomes the root of the Product Browser and I cannot switch to another catalog anymore.

Steps to Reproduce

  1. Open http://localhost:4502/libs/commerce/gui/content/products.html/var/commerce/products
  2. Select a Catalog, a category and then a sub-category. This still works fine
  3. Now refresh the Product browser or use the url in the address bar and open it in a new tab
  4. Now the catalogs and categories are gone, and I only see the product. On top I also get an error message in the 'left pane'

Platform and Version

AEM 6.4.5 & CIF 0.9.0
(On CIF 0.8.0 we don't have this issue)

Sample Code that illustrates the problem

Schermafbeelding 2020-03-30 om 11 35 51

GraphqlResourceProviderTest.testFactoryInitMethod fails on CentOS 7

Hi,

I've got the same issue on the Centos 7.

Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T15:06:16Z)
Maven home: /opt/apache-maven-3.6.2
Java version: 1.8.0_242, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.12.2.el7.x86_64", arch: "amd64", family: "unix"

I've just tried to build the issues/cif-1336 and result is unfortunately the same.

Logs:
[ERROR] Failures:
[ERROR] GraphqlResourceProviderTest.testFactoryInitMethod:199
resourceMapper.buildAllCategoryPaths();
Wanted 1 time:
-> at com.adobe.cq.commerce.graphql.resource.GraphqlResourceProviderTest.testFactoryInitMethod(GraphqlResourceProviderTest.java:199)
But was 2 times. Undesired invocation:
-> at com.adobe.cq.commerce.graphql.resource.GraphqlResourceProviderTest$2.run(GraphqlResourceProviderTest.java:179)

[INFO]
[ERROR] Tests run: 110, Failures: 1, Errors: 0, Skipped: 0

...

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M4:test (default-test) on project cif-connector-graphql: There are test failures.
[ERROR]
[ERROR] Please refer to /home/aem/aem-projects/commerce-cif-connector/bundles/cif-connector-graphql/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M4:test (default-test) on project cif-connector-graphql: There are test failures.

Please refer to /home/aem/aem-projects/commerce-cif-connector/bundles/cif-connector-graphql/target/surefire-reports for the individual test results.
Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.

Regards,
Michael

Originally posted by @abecek in #107 (comment)

Complexities of a landscape on a global scale with the CIF connector

I first want to explain the background of our issue to get some information on how to approach this problem. We tried looking into the code of the CIF Connector to get our customization realized, but we prefer not to modify this connector.

Our brand is globally represented and Magento will contain our products, the same product from a customer’s point of view, is not the same product in Magento. The example product is a product with a power outlet, which is different between US, UK and EU. This means 3 products will be available in Magento, with 3 different SKUs. From an AEM perspective, this is the same product. If our top navigation is linking to that product on the English Master Level, it needs to link in every locale to that product, but the SKU is different. So after rolling out this product, the SKU behind this link is not correct if rolled out to the UK site, as it will still refer to the SKU entered on the English Language Master, which is not the correct one for UK.

We see the need to enter a SKU in 3 different spots in AEM:
• When defining a product card or product banner, to show product information
• When linking to a Product Page
• When having a Product Page that is different from the general template (sub-page of product-page)

All these use-cases will have invalid SKUs after rolling out in AEM due to a different SKU per locale. We want to prevent our authors to change all SKUs after rolling out.

We are aware of the possible selectionIds in the CIF Product Picker: id, sku, slug, path, combinedSku.

We will introduce a new custom attribute “global_product_id” in Magento, which will be set to the same for the 3 products in EU, UK and US, which are despite their power outlet, the same product.

We tried a few things already:

  1. We tried to add “global_product_id” as new selectionId: This requires us customizing the models in the CIF connector as these doesn’t use the graphQL models and queries from our code base. So the CIF connector cannot handle custom attributes.
  2. We tried to create a new GraphqlDataService in our code base to map to the “global_product_id” to the “sku” and to use our own graphQL models and queries: we had to export GraphqlDataService as it was not exported as OSGI service and we had to copy a service and customize.

Both solutions are not acceptable as we need to customize too much and it would prevent smooth upgrades to new versions of the CIF connector. I want to hear from you what the plans are with the selectionIds of the CIF Product Picker and how you would solve our problem? Could this be made extensibe from the CIF connectors point of view so we could select our own selectionID?

We are also looking into:
• Use slug as selectionId, and in Magento return the “global_product_id” as the url_key field, so we fake that we use the slug/url_key, but actually magento returns a different value as url_key (the value of the global_product_id)
• We just use the url_key field in AEM to fill in the global_product_id, but I don’t know the implications of this? What other features we might need to abandon because we do this?
• Rewrite SKUs on rollout by calling Magento during the rollout to get the counterpart SKU for that locale.
• Other suggestions?

So I am looking forward to hear your take on this topic as it becomes very crucial in our plans to start authoring. We plan for go-live the beginning of July and authoring still needs to start.

Thanks in advance.

#Question: System requirements

(This issue should be tagged as 'question')

Hello.

As per README.md, CIF Connector 1.8.0 is supported for AEM 6.5.0 and Java 1.8. Could you confirm that includes AEM Service Packs (last is SP8), and Java 11 (which is also supported for AEM)? Should be nice to add a note in the README.md.

Kind regards,

Connection error

Expected Behaviour

Use this as the POM file in my project and build using mvn clean install -PautoInstallAll . just results in a connection error to cif-connector-all

Actual Behaviour

Reproduce Scenario (including but not limited to)

Steps to Reproduce

Platform and Version

Sample Code that illustrates the problem

Logs taken while reproducing problem

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.