Tuesday 9 November 2021

AEM Asset Upload Size restriction - How to overcome?

By default, AEM supports Assets that are smaller than 2 GB because of a file size limit. However, you can overwrite this limit by going into CRXDE Lite and creating a node under the /apps directory detailed in URL.



Refer URL : RAW Assets Size More info: 


https://experienceleague.adobe.com/docs/experience-manager-65/assets/managing/managing-video-assets.html?lang=en#configuration-to-upload-assets-that-are-larger-than-gb


Is there any limit to upload an asset?

It can be configured to 30 GB also. AEM doesnt define a size limit.

What we need to ensure while changing the default behavior?


  • When we make this changes, ensure you take care of the time out limit on OSGi and Dispatcher idle time so that AEM keep listening the asset upload.
  • Also major point; consider the AEM's default asset processing, and hardware configurations while making this changes. 

Demo Video

How to fix traversal index issue in AEM

 Recently I got an email from my AEM Admin about the indexing issue. The email had some content as shown below.

"WARN* [qtp1832135175-163] org.apache.jackrabbit.oak.spi.query.Cursors$TraversingCursor Traversed 10,000 nodes with filter Filter(query=select * from [nt:base] where foo = 'bar', path=*, property=[foo=[bar]]); consider creating an index "

Some times while working on AEM, we may face traversal warnings. The latest AEM doesn't index the nodes by default. So to ensure our content gets indexed well within AEM, we will have to create indexing nodes and get them indexed.

Below given steps to fix index issues

  • Use the Oak index generation tool - generate index definition.
  • Add the indexing under node oak:index.
  • Trigger the re-index.

 
When we find an issue with a query(traversal warning !), we can use below tool to analyze the query.
 

Query Performance tool URL

http://[AEM URL]:[PORT]/libs/granite/operations/content/diagnosistools/queryPerformance.html

If the analysis recommends to index the nodes, we can use below Oak Index tool to generate the index definitions. 


Oak Index Definition Generator in AEM


http://oakutils.appspot.com/generate/index

 
How to validate the index operation is done?

The indexing property becomes 'false' once the indexing has been completed.

Also, in the console we can go and validate it from index diagnosis tool > index manager
http://[AEM URL]:[PORT]/libs/granite/operations/content/diagnosistools/indexManager.html

Notes:

  • We can even use Synonym file to index the synonyms in AEM.
  • We can define multiple indexes together and trigger them parallel without any issues.

Demo Video

Monday 8 November 2021

Fix package upload issue in AEM - use CURL command for package upload

While working on AEM, some times we get package upload issue in some of the browsers . 




There could be multiple reasons for this. Now a days companies are doing stringent checks when we try to upload anything via browser. We have faced issue of package upload on AEM during the remote work situations.

Below given an alternate option to upload packages in AEM using CURL command.

CURL Command
curl -u admin:admin -F package=@"name_of_package.zip" http://localhost:4502/crx/packmgr/service/.json/?cmd=upload

Where admin:admin is the local instance user credential.


name_of_package.zip - Change the package name according to your case.

 


 Demo Video

How to raise a product issue with Adobe

To open a support ticket in Adobe, you should have the relevant product assigned as an administrator.

Login to Admin console of Adobe and select the organization from drop down as shown.




Click on support tab. Once you land on this, you can see various options like a Support summary page which gives various options for creating an adobe ticket, start a chat or get the Adobe customer care number.

You have a lot more help topics linked from this page too.

To create a support ticket , click on 'Create Case'



Next step select whether it is a user and license related or using the experience cloud product issue.



And fill in the additional details to complete the request. Once the ticket has been raised Adobe team will contact back for more clarifications.




Saturday 3 July 2021

How to update JDK version of Cloud Manager within your program as part of the build

 AEM AS CLOUD SERVICE VIDEO TUTORIAL SERIES

What are the available JDK versions with cloud manager?

Java versions installed are Oracle JDK 8u202 and 11.0.2.

Some times, when we deploy our code, people complaint java version is not matching (for e.g. we are using a JDK 11 specific API and this Java class is giving error in cloud manager) We will see how to set the relevant java version now.

How to update the Java version of project build environment in AEM As Cloud Manager

By default, projects are built using Java 8. Customers who want to use Java 11 in their projects can do this using the Apache Maven Toolchains Plugin.

In the pom.xml file, add a <plugin> entry that looks like this:

<!-- START -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-toolchains-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>toolchain</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <toolchains>
                    <jdk>
                        <version>11</version>
                        <vendor>oracle</vendor>
                    </jdk>
                </toolchains>
            </configuration>
        </plugin>
<!-- END -->


A few FAQs about AEM As Cloud Service build environment are given below

What is the OS used for AEM as CLoud service?

Build environment is Linux-based, derived from Ubuntu 18.04.

At present what is the maven version?

The installed maven is - Apache Maven 3.6.0 version.

Which java versions are supported by AEM as cloud service?
Java versions installed are Oracle JDK 8u202 and 11.0.2.

Which repository is configured as part of Maven Build ?
adobe-public

Any other tools or packages available in AEM As Cloud environment?
unzip, bzip2, libpng, imagemagick, graphicsmagick

My code has some script with Python or ruby script and I need to trigger it as part of my code build. Is this possible?

For this we need an appropriate language interpreter installed. This can be done by calling the 'exec-maven-plugin' to invoke APT. See an example below,

<!-- START -->
        <profile>
            <id>install-Ruby</id>
            <activation>
                <property>
                        <name>env.CM_BUILD</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.6.0</version>
                        <executions>
                            <execution>
                                <id>apt-get-update</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>apt-get</executable>
                                    <arguments>
                                        <argument>update</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-ruby</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>apt-get</executable>
                                    <arguments>
                                        <argument>install</argument>
                                        <argument>-y</argument>
                                        <argument>--no-install-recommends</argument>
                                        <argument>ruby</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
<!-- END -->

Monday 28 June 2021

Difference between Brand portal, Asset Share commons & Dynamic Media

People usually gets confused with various asset management tools from Adobe. Since each product has its relevancy, here we will try to compare those tools.

What is the difference between Brand Portal & Asset Share Commons?

Functionally, Brand Portal and Asset Share Commons both does similar things, provide assets stored in your AEM Assets to users without allowing them access to items that should be protected. These two tools options are simple in setup, configure so that the implementations are minimal.

Brand Portal(This one is Licensed by Adobe) has been described as a secure, cloud enabled service for on-demand asset distribution to internal teams, external partners, agencies, and resellers for marketing purpose. The customizations are very limited in case of Brand Portal.

Where in Asset Share Commons is a technical reference implementation(a reference for AEM developers when developing asset sharing functionality) of 'asset share' functionality built using Adobe Experience Manager best practices. The source code is available in Github project page(Non licensed and no warranty product). Since it is an open-source project, contributions and enhancements can be done on this.

What are all the difference between Dynamic media & Brand portal

Dynamic Media combines the power of asset management with rich media delivery ( create, adjust, brand, and deploy interactive viewers using the WYSIWYG Viewer Designer). Basically Dynamic Media is an evolution of Scene7 (Dynamic Media Classic). Scene7 was a stand alone product and Adobe bought scene7 and now it is re branding it to dynamic media by adding more features to it.

The feature list consists of:

Single user interface and platform for managing images and video, Seamless integration with Adobe Experience Manager, Innovative merchandising features, Powered by the robust and proven delivery platform.

Where in Brand portal(cloud-based SAAS offering) helps you easily acquire, control, and securely distribute approved creative assets to external parties and internal business users across devices. It helps improve the efficiency of asset sharing, accelerates the time-to-market for assets, and reduces the risk of non-compliance and unauthorized access. We can easily integrate Brand Portal with AEM.

Final Verdict

Dynamic media is for Collaboration and shared file sync with Adobe Creative Cloud applications, where in Brand portal/asset share commons is to share to external people.
Both support asset operations and approval workflows. So chose the prouct after understanding the proper requirements.

WATCH THIS >> AEM AS CLOUD SERVICE VIDEO TUTORIAL SERIES 

 

 Difference between  Brand portal, Asset Share commons & Dynamic Media

Friday 25 June 2021

Working with Adobe IO Command line interface

Some times we need to work with AEM as cloud without accessing the AEM AS Cloud environment directly.

WATCH THIS >> AEM AS CLOUD SERVICE VIDEO TUTORIAL SERIES 
So to work with Adobe I/O CLI we need to install Node JS first. Then follow through the steps.

Step 1: Install Adobe I/O
npm install -g @adobe/aio-cli

Step 2: Install Adobe I/O Cloud Manager Plugin
aio plugins:install @adobe/aio-cli-plugin-cloudmanager

Step 3: Update the plugins
aio plugins:update


Above diagram gives an overview on environment provisioning in AEM as cloud
 

Step 4: First List the organizations tagged
aio cloudmanager:org:list

Step 5: Then select the Organization from above list
aio cloudmanager:org:select [Your org id from above list]@AdobeOrg

Step 6: aio cloudmanager:list-programs

Step 7: Then set a program
aio config:set cloudmanager_programid [Your prog id from above list]

Step 8: List all environments
aio cloudmanager:list-environments

Now based on requirements, you can execute the commands. Some examples are given below,


To Download logs:
aio cloudmanager:download-logs [env id] author aemerror 1

To list log options
aio cloudmanager:environment:list-available-log-options [env id]

To list OSGi Environment varriables
aio cloudmanager:list-environment-variables [env id]

To List Pipelines
aio cloudmanager:program:list-pipelines

To list a specific pipeline status
aio cloudmanager:pipeline:list-executions  [pipeline id]

OSGi Commands

-----------
To Set OSGI parameters
aio cloudmanager:set-environment-variables ENVIRONMENT_ID --variable MY_VAR1 "plaintext value" --secret MY_VAR2 "some secret value"

To List environment variables
aio cloudmanager:list-environment-variables ENVIRONMENT_ID

To Delete any variables.
aio cloudmanager:set-environment-variables ENVIRONMENT_ID --delete MY_VAR1 MY_VAR2

Ref URL:
https://github.com/adobe/aio-cli-plugin-cloudmanager#aio-cloudmanagerenvironmentdownload-logs-environmentid-service-name-days
https://github.com/adobe/aio-cli-plugin-auth#aio-authlogin
https://github.com/adobe/aio-cli

 

Watch Video Here