Skip to main content

Posts

Showing posts from January, 2018

AEM 6.3 - How to extend Granite UI

Here in this article, I am going to explain how to extent Granite UI that is basically used to create AEM 6.x consoles. There can be various use cases where in you may need that. In our case, author wants to take all the page creation requests through AEM instead of email communication. Authors are basically looking for a form in AEM authoring console so that requestor can login and submit page creation/Asset upload request. Overall requirement is - Need a link in Navigation so that author can click on it and go to a Intake form. Author must be able to fill and save the intake requests. Author must be able to see the history of submitted intake requests Able to see the details of submitted intake requests. Solution - 1. Create a following structure - /apps/cq/core/content/nav/form and add the details given in below screenshot - You basically need to add - href, title and icon. Href is the path of page where user will land on clicking it.  After

AEM 6.x Parsys size issue - height 0px

Solution -  Add following entry in your page template - data-sly-include = "/libs/wcm/core/components/init/init.jsp" data-sly-unwrap />

Create Your Own Private Ethereum Blockchain

Prerequisites You need to have Geth installed. The easiest way to do this is through homebrew. Open Terminal and  install homebrew ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2. Now  install geth brew tap ethereum/ethereum brew install ethereum Create Genesis File The Genesis  block  is the first block in the chain, the Genesis  file  is a JSON file that defines the characteristics of that initial block and subsequently the rest of the blockchain. Create a directory to hold your network files mkdir my-eth-chain cd my-eth-chain 2. Create your genesis file touch myGenesis.json 3. Open your genesis file and paste the following { "config": { "chainId": 1994, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0 }, "difficulty": "400", "gasLimit": "2000000", "alloc"

AEM 6.3 - Check if page is published or not

If you want to know if the page is published or not you can use the below utility method to know if the page is published or not. Steps - Take Resource Object. Adapt it to Page Adapt page to ReplicationStatus, you will get the status Here is the code - public static Boolean isPublished(Resource resource) { Boolean activated; ReplicationStatus status = null; activated = false; if (resource != null) { try { Page page = resource.adaptTo( Page.class ); status = page.adaptTo( ReplicationStatus.class ); } catch (Exception e) { LOG.debug(e.getMessage (), e); } if (status != null) { activated = status.isActivated(); } } return activated; }

AEM 6 Architect Certification (9A0-385) Exam prepration

AEM 6 Architect Certification (9A0-385) Exam prepration Do not go in exam without preparing all these topics.  Based on the experience shared by colleagues  and friends, these questions are that are being asked in the exam. AEM Out-of-box Functionalities AEM Sites – Templates, Components, Search, Tagging, Mobile Apps, eCommerce, Personalization TarMK vs MongoMK Data Store vs SegmentStore vs DocumentStore Storage Resource Provider- ASRP vs MSRP vs JSRP How many templates are needed when there are 5 regional websites Extending RTE list plugin How to make Dialog support different languages? OSGi Component – @Component vs @Service How to use Granite Tag Library? How to define CQ Tag Library? What is POST.jsp? Does it work with AEM 6? LDAP, SAML and SSO What are the strategies to import the content from external system? How many steps are there in online Backup process? How to migrate data from database to AEM Can you migrate a database that has complex schema and qu

AEM 6.3: How to set admin password on initial startup

AEM 6.3: How to set admin password on initial startup There are 2 different ways to set the admin password as part of the initial installation. First, set the system property “ admin.password ” to your desired password. For example add “ -Dadmin.password=mypassword ” to the JVM parameters. Second, set the system property “ admin.password.file ” and pass as value the path to a file.  when this file is accessible by the AEM instance and the contains the line “ admin.password=myAdminPassword “, this value will be used as admin password. FYI, this only works on the initial startup. On all subsequent startups these system properties are ignored; and you should probably remove them or at least purge the file in case of second.

AEM 6.3 com.adobe.cq.sightly,version=[2.2,3) -- Cannot be resolved

com.adobe.cq.sightly, version=[2.2, 3) -- Cannot be resolved If you are migrating to AEM 6.3 then you may face the below issue - Solution - 1. Either Install Uberjar from felix console. It can be find it location - https://repo.adobe.com/nexus/content/groups/public/com/adobe/aem/uber-jar/6.3.1/ 2. Or put following maven dependencies in your POM file - < dependency > < groupId > com.adobe.aem </ groupId > < artifactId > uber-jar </ artifactId > < version > 6.3.0 </ version > < scope > provided </ scope > </ dependency >

AEM 6.3 - How to resolve Administrative session issue

AEM 6.3 - How to resolve Administrative session issue  In Adobe AEM 6.3, following methods are being deprecated - ResourceResolverFactory.getAdministrativeResourceResolver ResourceProviderFactory.getAdministrativeResourceProvider SlingRepository.loginAdministrative One of the solution to resolve this issue is - Use service authentication method  getServiceResourceResolver  to get the resourceResolver and then making a systme user and mapping service with user in felix congigurations. Another Solution is Whitelist the bundle - 1) Go to osgi configurations 2) search for keyword whitelist 3) click on add and give a name to config and bundle symbolic name YOU ARE DONE ! Refer to following link : https://sling.apache.org/documentation/the-sling-engine/service-authentication.html