<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Short Post Archives - Sourced Code</title>
	<atom:link href="https://sourcedcode.com/blog/category/aem/short-post/feed" rel="self" type="application/rss+xml" />
	<link>https://sourcedcode.com</link>
	<description>AEM Blog Made Just for You.</description>
	<lastBuildDate>Sat, 02 Dec 2023 19:02:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.8</generator>

<image>
	<url>https://sourcedcode.com/wp-content/uploads/2019/09/cropped-favicon-32x32.png</url>
	<title>Short Post Archives - Sourced Code</title>
	<link>https://sourcedcode.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AEM Convert Excel to JSON Simple Servlet Example</title>
		<link>https://sourcedcode.com/blog/aem/aem-convert-excel-to-json-simple-servlet-example</link>
					<comments>https://sourcedcode.com/blog/aem/aem-convert-excel-to-json-simple-servlet-example#comments</comments>
		
		<dc:creator><![CDATA[briankasingli]]></dc:creator>
		<pubDate>Thu, 02 Nov 2023 01:28:53 +0000</pubDate>
				<category><![CDATA[AEM]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Short Post]]></category>
		<category><![CDATA[Sling Servlet]]></category>
		<guid isPermaLink="false">https://sourcedcode.com/?p=6192</guid>

					<description><![CDATA[<p>In this article, I present a straightforward yet powerful solution that demonstrates how to seamlessly convert Excel data into JSON format using Adobe Experience Manager (AEM). By implementing a custom servlet, I will illustrate the process of converting an Excel sheet named &#8216;example.xlsx&#8217; into structured JSON data; it can be downloaded below for you following [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/aem-convert-excel-to-json-simple-servlet-example">AEM Convert Excel to JSON Simple Servlet Example</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In this article, I present a straightforward yet powerful solution that demonstrates how to seamlessly convert Excel data into JSON format using Adobe Experience Manager (AEM). By implementing a custom servlet, I will illustrate the process of converting an Excel sheet named &#8216;example.xlsx&#8217; into structured JSON data; it can be downloaded below for you following this tutorial. This tutorial is validated on both AEM 6.5 with the latest Service Pack and AEM as a Cloud Service (AEMaaCS), ensuring its compatibility with diverse AEM environments.</p>
<p><strong>Resource File:</strong><br />
<a href="https://sourcedcode.com/blog/aem/aem-convert-excel-to-json-simple-servlet-example/attachment/example" rel="attachment wp-att-6196">example.xlsx</a></p>
<hr class="spacer-large"/>
<p><strong>Request URI:</strong><br />
The request URI for accessing the JSON output through the ExampleServlet that we&#8217;ve been discussing would typically look like this:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//localhost:4502/bin/exportexcelfortext.json</span></div></td></tr></tbody></table></div>
<hr class="spacer-large"/>
<p><strong>JSON Output:</strong></p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">&quot;people&quot;</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;Brian&quot;</span>, <span style="color: #0000ff;">&quot;age&quot;</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;100&quot;</span> <span style="color: #009900;">&#125;</span>,<br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;Doris&quot;</span>, <span style="color: #0000ff;">&quot;age&quot;</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;20&quot;</span> <span style="color: #009900;">&#125;</span>,<br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;Stuart&quot;</span>, <span style="color: #0000ff;">&quot;age&quot;</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;103&quot;</span> <span style="color: #009900;">&#125;</span>,<br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;David&quot;</span>, <span style="color: #0000ff;">&quot;age&quot;</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;5&quot;</span> <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#93;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<hr class="spacer-large"/>
<p><strong>Servlet Implementation ExcelExampleServlet.java:</strong></p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.sourcedcode.core.servlets</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.fasterxml.jackson.databind.ObjectMapper</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.poi.ss.usermodel.*</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.poi.xssf.usermodel.XSSFWorkbook</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletRequest</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletResponse</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.resource.Resource</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.resource.ResourceResolver</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.servlets.SlingSafeMethodsServlet</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.osgi.service.component.annotations.Component</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.Servlet</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.http.HttpServletResponse</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.InputStream</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.LinkedHashMap</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.List</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Map</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Objects</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.day.cq.dam.api.Asset</span><span style="color: #339933;">;</span><br />
<br />
@<span style="color: #003399;">Component</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; service <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> Servlet.<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #009900;">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; property <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;sling.servlet.paths=/bin/exportexcelfortext&quot;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;sling.servlet.extensions=json&quot;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;sling.servlet.methods=GET&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ExcelExampleServlet <span style="color: #000000; font-weight: bold;">extends</span> SlingSafeMethodsServlet <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; @Override<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> doGet<span style="color: #009900;">&#40;</span>SlingHttpServletRequest request, SlingHttpServletResponse response<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">IOException</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Get the Excel file path in DAM</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003399;">String</span> excelFilePath <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/content/dam/example/example.xlsx&quot;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Get the resource resolver</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ResourceResolver resourceResolver <span style="color: #339933;">=</span> request.<span style="color: #006633;">getResourceResolver</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Check if the Excel file exists</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Resource excelResource <span style="color: #339933;">=</span> resourceResolver.<span style="color: #006633;">getResource</span><span style="color: #009900;">&#40;</span>excelFilePath<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>excelResource <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; response.<span style="color: #006633;">setStatus</span><span style="color: #009900;">&#40;</span>HttpServletResponse.<span style="color: #006633;">SC_NOT_FOUND</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Adapt the resource to an Asset</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Asset asset <span style="color: #339933;">=</span> Objects.<span style="color: #006633;">requireNonNull</span><span style="color: #009900;">&#40;</span>excelResource<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">adaptTo</span><span style="color: #009900;">&#40;</span>Asset.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>asset <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; response.<span style="color: #006633;">setStatus</span><span style="color: #009900;">&#40;</span>HttpServletResponse.<span style="color: #006633;">SC_INTERNAL_SERVER_ERROR</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Get an InputStream from the Asset's original</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003399;">InputStream</span> excelInputStream <span style="color: #339933;">=</span> Objects.<span style="color: #006633;">requireNonNull</span><span style="color: #009900;">&#40;</span>asset<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getOriginal</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Process the Excel content and convert it to JSON</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Workbook workbook <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> XSSFWorkbook<span style="color: #009900;">&#40;</span>excelInputStream<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List<span style="color: #339933;">&lt;</span>Map<span style="color: #339933;">&lt;</span><span style="color: #003399;">String</span>, String<span style="color: #339933;">&gt;&gt;</span> jsonData <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Iterate through the Excel rows and columns</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Sheet sheet <span style="color: #339933;">=</span> workbook.<span style="color: #006633;">getSheetAt</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Assuming it's the first sheet</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Row headerRow <span style="color: #339933;">=</span> sheet.<span style="color: #006633;">getRow</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Assuming the first row is the header row</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">int</span> totalColumns <span style="color: #339933;">=</span> headerRow.<span style="color: #006633;">getLastCellNum</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> sheet.<span style="color: #006633;">getPhysicalNumberOfRows</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Row dataRow <span style="color: #339933;">=</span> sheet.<span style="color: #006633;">getRow</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Map<span style="color: #339933;">&lt;</span><span style="color: #003399;">String</span>, String<span style="color: #339933;">&gt;</span> rowMap <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> LinkedHashMap<span style="color: #339933;">&lt;&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> totalColumns<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cell headerCell <span style="color: #339933;">=</span> headerRow.<span style="color: #006633;">getCell</span><span style="color: #009900;">&#40;</span>j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cell dataCell <span style="color: #339933;">=</span> dataRow.<span style="color: #006633;">getCell</span><span style="color: #009900;">&#40;</span>j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>headerCell <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> dataCell <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Check the cell type to handle numeric and string values</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dataCell.<span style="color: #006633;">getCellType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> CellType.<span style="color: #006633;">STRING</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rowMap.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>headerCell.<span style="color: #006633;">getStringCellValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, dataCell.<span style="color: #006633;">getStringCellValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dataCell.<span style="color: #006633;">getCellType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> CellType.<span style="color: #006633;">NUMERIC</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Handle numeric values as integers (remove decimals)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">int</span> age <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span> dataCell.<span style="color: #006633;">getNumericCellValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rowMap.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>headerCell.<span style="color: #006633;">getStringCellValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #003399;">String</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span>age<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jsonData.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>rowMap<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Prepare the JSON response</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List<span style="color: #339933;">&lt;</span>Map<span style="color: #339933;">&lt;</span><span style="color: #003399;">String</span>, String<span style="color: #339933;">&gt;&gt;</span> peopleList <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>Map<span style="color: #339933;">&lt;</span><span style="color: #003399;">String</span>, String<span style="color: #339933;">&gt;</span> personData <span style="color: #339933;">:</span> jsonData<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Map<span style="color: #339933;">&lt;</span><span style="color: #003399;">String</span>, String<span style="color: #339933;">&gt;</span> person <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> LinkedHashMap<span style="color: #339933;">&lt;&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; person.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span>, personData.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; person.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;age&quot;</span>, personData.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Age&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; peopleList.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>person<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Map<span style="color: #339933;">&lt;</span><span style="color: #003399;">String</span>, List<span style="color: #339933;">&lt;</span>Map<span style="color: #339933;">&lt;</span><span style="color: #003399;">String</span>, String<span style="color: #339933;">&gt;&gt;&gt;</span> jsonResponse <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> LinkedHashMap<span style="color: #339933;">&lt;&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jsonResponse.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;people&quot;</span>, peopleList<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Set response content type and write JSON content to the response</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; response.<span style="color: #006633;">setContentType</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;application/json&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; response.<span style="color: #006633;">getWriter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">write</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> ObjectMapper<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">writeValueAsString</span><span style="color: #009900;">&#40;</span>jsonResponse<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; response.<span style="color: #006633;">setStatus</span><span style="color: #009900;">&#40;</span>HttpServletResponse.<span style="color: #006633;">SC_INTERNAL_SERVER_ERROR</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<hr class="spacer-large"/>
<p><strong>Servlet Depdendencies:</strong></p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #339933;">&lt;</span>dependencies<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;!--</span> Apache POI <span style="color: #000000; font-weight: bold;">for</span> Excel processing <span style="color: #339933;">--&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>dependency<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>groupId<span style="color: #339933;">&gt;</span>org.<span style="color: #006633;">apache</span>.<span style="color: #006633;">poi</span><span style="color: #339933;">&lt;/</span>groupId<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>artifactId<span style="color: #339933;">&gt;</span>poi<span style="color: #339933;">&lt;/</span>artifactId<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>version<span style="color: #339933;">&gt;</span>5.2.3<span style="color: #339933;">&lt;/</span>version<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;/</span>dependency<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>dependency<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>groupId<span style="color: #339933;">&gt;</span>org.<span style="color: #006633;">apache</span>.<span style="color: #006633;">poi</span><span style="color: #339933;">&lt;/</span>groupId<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>artifactId<span style="color: #339933;">&gt;</span>poi<span style="color: #339933;">-</span>ooxml<span style="color: #339933;">&lt;/</span>artifactId<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>version<span style="color: #339933;">&gt;</span>5.2.3<span style="color: #339933;">&lt;/</span>version<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;/</span>dependency<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;!--</span> Jackson <span style="color: #000000; font-weight: bold;">for</span> JSON processing <span style="color: #339933;">--&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>dependency<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>groupId<span style="color: #339933;">&gt;</span>com.<span style="color: #006633;">fasterxml</span>.<span style="color: #006633;">jackson</span>.<span style="color: #006633;">core</span><span style="color: #339933;">&lt;/</span>groupId<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>artifactId<span style="color: #339933;">&gt;</span>jackson<span style="color: #339933;">-</span>core<span style="color: #339933;">&lt;/</span>artifactId<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>version<span style="color: #339933;">&gt;</span>2.13.0<span style="color: #339933;">&lt;/</span>version<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;/</span>dependency<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>dependency<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>groupId<span style="color: #339933;">&gt;</span>com.<span style="color: #006633;">fasterxml</span>.<span style="color: #006633;">jackson</span>.<span style="color: #006633;">core</span><span style="color: #339933;">&lt;/</span>groupId<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>artifactId<span style="color: #339933;">&gt;</span>jackson<span style="color: #339933;">-</span>databind<span style="color: #339933;">&lt;/</span>artifactId<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>version<span style="color: #339933;">&gt;</span>2.13.0<span style="color: #339933;">&lt;/</span>version<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;/</span>dependency<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;/</span>dependencies<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/aem-convert-excel-to-json-simple-servlet-example">AEM Convert Excel to JSON Simple Servlet Example</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sourcedcode.com/blog/aem/aem-convert-excel-to-json-simple-servlet-example/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>How to access Design Dialogue Properties in Sling Model</title>
		<link>https://sourcedcode.com/blog/aem/how-to-access-design-dialogue-properties-in-sling-model</link>
					<comments>https://sourcedcode.com/blog/aem/how-to-access-design-dialogue-properties-in-sling-model#respond</comments>
		
		<dc:creator><![CDATA[briankasingli]]></dc:creator>
		<pubDate>Fri, 25 Aug 2023 21:37:11 +0000</pubDate>
				<category><![CDATA[AEM]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Quick Reference]]></category>
		<category><![CDATA[Short Post]]></category>
		<category><![CDATA[Sling Servlet]]></category>
		<guid isPermaLink="false">https://sourcedcode.com/?p=5962</guid>

					<description><![CDATA[<p>Design Dialogs are especially useful for creating components that need to be easily configurable through editable template and policies without directly editing the underlying code. They enable a clear separation between content and presentation, allowing content authors to make changes without needing technical expertise. Design Dialogs are defined using the AEM Touch UI Dialog, which [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/how-to-access-design-dialogue-properties-in-sling-model">How to access Design Dialogue Properties in Sling Model</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Design Dialogs are especially useful for creating components that need to be easily configurable through editable template and policies without directly editing the underlying code. They enable a clear separation between content and presentation, allowing content authors to make changes without needing technical expertise. Design Dialogs are defined using the AEM Touch UI Dialog, which is an integral part of the component development process.</p>
<p>In this article we will talk through how to access the design dialogue settings that is configured in editable template policies within Sling Models. This article will be a quick reference, which means we will provide you code examples for the solution.</p>
<hr class="spacer-larger"/>
<h2>1. Example _cq_design_dialog.xml configuration</h2>
<p>This is a snippet that resides in /apps/core/wcm/components/title/v1/title/_cq_design_dialog.xml</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #339933;">&lt;</span>advancedSettings<br />
&nbsp; &nbsp; jcr<span style="color: #339933;">:</span>primaryType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;nt:unstructured&quot;</span><br />
&nbsp; &nbsp; jcr<span style="color: #339933;">:</span>title<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Advanced Settings&quot;</span><br />
&nbsp; &nbsp; sling<span style="color: #339933;">:</span>resourceType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;granite/ui/components/coral/foundation/container&quot;</span><br />
&nbsp; &nbsp; margin<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;{Boolean}true&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>items jcr<span style="color: #339933;">:</span>primaryType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;nt:unstructured&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>renderLayoutAs<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jcr<span style="color: #339933;">:</span>primaryType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;nt:unstructured&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sling<span style="color: #339933;">:</span>resourceType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;granite/ui/components/coral/foundation/form/select&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fieldDescription<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Forcing the component to render column layouts as&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fieldLabel<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Render Layout As&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;./renderLayoutAs&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>items jcr<span style="color: #339933;">:</span>primaryType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;nt:unstructured&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>oneColumn<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jcr<span style="color: #339933;">:</span>primaryType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;nt:unstructured&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Default (One Column)&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selected<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;{Boolean}true&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;oneColumn&quot;</span><span style="color: #339933;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>twoColumns<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jcr<span style="color: #339933;">:</span>primaryType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;nt:unstructured&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Two Columns&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selected<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;{Boolean}true&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;twoColumns&quot;</span><span style="color: #339933;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>threeColumns<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jcr<span style="color: #339933;">:</span>primaryType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;nt:unstructured&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Three Columns&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;threeColumns&quot;</span><span style="color: #339933;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>fourColumns<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jcr<span style="color: #339933;">:</span>primaryType<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;nt:unstructured&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Four Columns&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;fourColumns&quot;</span><span style="color: #339933;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;/</span>items<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;/</span>renderLayoutAs<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;/</span>items<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;/</span>advancedSettings<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<hr class="spacer-larger"/>
<h2>2. Accessing Design Dialog Properties in Sling Models:</h2>
<p>In AEM, Sling Models provide a way to map resource properties to Java objects, making it easier to work with the content of a page. To access Design Dialog properties within a Sling Model, take a look at the example code below.</p>
<p>Take notice, in line:17, we are using <a href="/blog/aem/aem-sling-model-injectors-annotations-cheat-sheet-reference-guide" rel="noopener" target="_blank">Sling Model Specific Annotations, @ScriptVariable</a>, to initiate the currentStyle object. In line:22, we are calling the get method() which is a public method, which here we will attempt to find configuration set via design dialog &#8220;renderLayoutAs&#8221;. If &#8220;renderLayoutAs&#8221; is not configured, then String renderLayoutAs == null. Finally in line:24, we will use a switch statement to execute code based on what is configured.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.sourcedcode.core.internal.components</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.day.cq.wcm.api.designer.Style</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletRequest</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.models.annotations.Model</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.annotation.PostConstruct</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.inject.Inject</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">static</span> org.<span style="color: #006633;">apache</span>.<span style="color: #006633;">commons</span>.<span style="color: #006633;">lang3</span>.<span style="color: #006633;">StringUtils</span>.<span style="color: #006633;">isNotEmpty</span><span style="color: #339933;">;</span><br />
<br />
@Model<span style="color: #009900;">&#40;</span>adaptables <span style="color: #339933;">=</span> SlingHttpServletRequest.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> LayoutColumn <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> RENDER_LAYOUT_AS_PROP <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;renderLayoutAs&quot;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; @ScriptVariable<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Style</span> currentStyle<span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; @PostConstruct<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003399;">String</span> renderLayoutAs <span style="color: #339933;">=</span> currentStyle.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>RENDER_LAYOUT_AS_PROP, <span style="color: #003399;">String</span>.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>isNotEmpty<span style="color: #009900;">&#40;</span>renderLayoutAs<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>renderLayoutAs<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #0000ff;">&quot;oneColumn&quot;</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #0000ff;">&quot;twoColumns&quot;</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #0000ff;">&quot;threeColumns&quot;</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #0000ff;">&quot;fourColumns&quot;</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">default</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Default case&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/how-to-access-design-dialogue-properties-in-sling-model">How to access Design Dialogue Properties in Sling Model</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sourcedcode.com/blog/aem/how-to-access-design-dialogue-properties-in-sling-model/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Find all AEM Pages with Tags with Query Builder API</title>
		<link>https://sourcedcode.com/blog/aem/find-all-aem-pages-with-tags-with-query-builder</link>
					<comments>https://sourcedcode.com/blog/aem/find-all-aem-pages-with-tags-with-query-builder#respond</comments>
		
		<dc:creator><![CDATA[briankasingli]]></dc:creator>
		<pubDate>Tue, 25 Jan 2022 23:31:17 +0000</pubDate>
				<category><![CDATA[AEM]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Short Post]]></category>
		<guid isPermaLink="false">https://sourcedcode.com/?p=3414</guid>

					<description><![CDATA[<p>The Query Builder is a great tool that allows us to search for nodes in the JCR. We often as AEM developers use this tool to build a query for us to use in the backend to build query descriptions (predicates); the set of predicates produced will call the Predicate Evaluator which knows how to [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/find-all-aem-pages-with-tags-with-query-builder">Find all AEM Pages with Tags with Query Builder API</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The Query Builder is a great tool that allows us to search for nodes in the JCR. We often as AEM developers use this tool to build a query for us to use in the backend to build query descriptions (predicates); the set of predicates produced will call the Predicate Evaluator which knows how to handle that specific predicate for XPath, filtering, and facet extraction.</p>
<p>In this article, we will be sharing query examples to find all AEM pages with single-tag &#038;&#038; multi-tags using the<strong> Query Builder Debugger</strong> tool.</p>
<hr class="spacer-large" />
<h2>1. Find all AEM pages with a single cq:tag</h2>
<p>Find all pages under /content/we-retail,<br />
and has the tag of we-retail:apparel/pants,<br />
show max results.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">path<span style="color: #339933;">=/</span>content<span style="color: #339933;">/</span>we<span style="color: #339933;">-</span>retail<br />
type<span style="color: #339933;">=</span>cq<span style="color: #339933;">:</span>Page<br />
property<span style="color: #339933;">=</span>jcr<span style="color: #339933;">:</span>content<span style="color: #339933;">/</span>@cq<span style="color: #339933;">:</span>tags<br />
property.<span style="color: #006633;">value</span><span style="color: #339933;">=</span>we<span style="color: #339933;">-</span>retail<span style="color: #339933;">:</span>apparel<span style="color: #339933;">/</span>pants<br />
p.<span style="color: #006633;">limit</span><span style="color: #339933;">=-</span><span style="color: #cc66cc;">1</span></div></td></tr></tbody></table></div>
<p><a href="http://localhost:4502/libs/cq/search/content/querydebug.html?_charset_=UTF-8&#038;query=path%3D%2Fcontent%2Fwe-retail%0D%0Atype%3Dcq%3APage%0D%0Aproperty%3Djcr%3Acontent%2F%40cq%3Atags%0D%0Aproperty.value%3Dwe-retail%3Aapparel%2Fpants%0D%0A%0D%0A" rel="noopener" target="_blank">http://localhost:4502/libs/cq/search/content/querydebug.html?_charset_=UTF-8&#038;query=path%3D%2Fcontent%2Fwe-retail%0D%0Atype%3Dcq%3APage%0D%0Aproperty%3Djcr%3Acontent%2F%40cq%3Atags%0D%0Aproperty.value%3Dwe-retail%3Aapparel%2Fpants%0D%0A%0D%0A</a></p>
<hr class="spacer-large" />
<h2>1. Find all AEM pages with multiple cq:tags</h2>
<p>Find all pages under /content/we-retail, a<br />
and<br />
((has the tag of we-retail:apparel/pants) or<br />
(has the tag of we-retail:apparel/pants)),<br />
show max results.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">path<span style="color: #339933;">=/</span>content<span style="color: #339933;">/</span>we<span style="color: #339933;">-</span>retail<br />
type<span style="color: #339933;">=</span>cq<span style="color: #339933;">:</span>Page<br />
group.1_property<span style="color: #339933;">=</span>jcr<span style="color: #339933;">:</span>content<span style="color: #339933;">/</span>@cq<span style="color: #339933;">:</span>tags<br />
group.1_property.<span style="color: #006633;">value</span><span style="color: #339933;">=</span>we<span style="color: #339933;">-</span>retail<span style="color: #339933;">:</span>apparel<span style="color: #339933;">/</span>pants<br />
group.2_property<span style="color: #339933;">=</span>jcr<span style="color: #339933;">:</span>content<span style="color: #339933;">/</span>@cq<span style="color: #339933;">:</span>tags<br />
group.2_property.<span style="color: #006633;">value</span><span style="color: #339933;">=</span>we<span style="color: #339933;">-</span>retail<span style="color: #339933;">:</span>apparel<span style="color: #339933;">/</span>shirt<br />
group.<span style="color: #006633;">p</span>.<span style="color: #006633;">or</span><span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">true</span><br />
p.<span style="color: #006633;">limit</span><span style="color: #339933;">=-</span><span style="color: #cc66cc;">1</span></div></td></tr></tbody></table></div>
<p><a href="http://localhost:4502/libs/cq/search/content/querydebug.html?_charset_=UTF-8&#038;query=path%3D%2Fcontent%2Fwe-retail%0D%0Atype%3Dcq%3APage%0D%0Agroup.1_property%3Djcr%3Acontent%2F%40cq%3Atags%0D%0Agroup.1_property.value%3Dwe-retail%3Aapparel%2Fpants%0D%0Agroup.2_property%3Djcr%3Acontent%2F%40cq%3Atags%0D%0Agroup.2_property.value%3Dwe-retail%3Aapparel%2Fshirt%0D%0Agroup.p.or%3Dtrue%0D%0Ap.limit%3D-1%0D%0A%0D%0A%0D%0A" rel="noopener" target="_blank">http://localhost:4502/libs/cq/search/content/querydebug.html?_charset_=UTF-8&#038;query=path%3D%2Fcontent%2Fwe-retail%0D%0Atype%3Dcq%3APage%0D%0Agroup.1_property%3Djcr%3Acontent%2F%40cq%3Atags%0D%0Agroup.1_property.value%3Dwe-retail%3Aapparel%2Fpants%0D%0Agroup.2_property%3Djcr%3Acontent%2F%40cq%3Atags%0D%0Agroup.2_property.value%3Dwe-retail%3Aapparel%2Fshirt%0D%0Agroup.p.or%3Dtrue%0D%0Ap.limit%3D-1%0D%0A%0D%0A%0D%0A</a></p>
<hr class="spacer-large" />
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/find-all-aem-pages-with-tags-with-query-builder">Find all AEM Pages with Tags with Query Builder API</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sourcedcode.com/blog/aem/find-all-aem-pages-with-tags-with-query-builder/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Write AEM Reusable Touch UI, Granite UI Configuration</title>
		<link>https://sourcedcode.com/blog/aem/how-to-write-aem-reusable-touch-ui-granite-ui-configuration</link>
					<comments>https://sourcedcode.com/blog/aem/how-to-write-aem-reusable-touch-ui-granite-ui-configuration#respond</comments>
		
		<dc:creator><![CDATA[briankasingli]]></dc:creator>
		<pubDate>Fri, 21 Jan 2022 05:59:19 +0000</pubDate>
				<category><![CDATA[AEM]]></category>
		<category><![CDATA[Short Post]]></category>
		<category><![CDATA[Touch UI]]></category>
		<guid isPermaLink="false">https://sourcedcode.com/?p=3383</guid>

					<description><![CDATA[<p>Why are we repeating ourselves, writing the same Touch UI (Granite UI Component) configuration again and again as developers? It&#8217;s been like the 10th time that we have created a Granite UI Component configuration, an identical block of code. The RTE Granite UI Component should only contain basic format options. Is there a way for [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/how-to-write-aem-reusable-touch-ui-granite-ui-configuration">How to Write AEM Reusable Touch UI, Granite UI Configuration</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Why are we repeating ourselves, writing the same Touch UI (Granite UI Component) configuration again and again as developers? It&#8217;s been like the 10th time that we have created a Granite UI Component configuration, an identical block of code. <strong>The RTE Granite UI Component should only contain basic format options</strong>. Is there a way for developers to write this configuration once, so it can be reused? The answer is yes.</p>
<p>Introducing the DRY way of using <a href="https://sourcedcode.com/blog/aem/dry-way-of-using-richtext-granite-ui-component-in-aem-for-static-templates" rel="noopener" target="_blank">RichText Granite UI Component in AEM for Static Templates</a>, which is an article for how developers can write better and reusable code for Touch UI (Granite UI) configuration.</p>
<p>The blog article specifically focuses on the Rich Text Granite UI Component, configuration once, and then reuse it over and over again. The same methodology can be applied to all other Granite UI Component configurations; checkbox, select, color picker, text, etc&#8230; This is great because if there is a requirement, for example, to add in a new styles option, you can make the change once, and all other Granite UI Component configurations will pick this change up.</p>
<p>Visit the <a href="https://sourcedcode.com/blog/aem/dry-way-of-using-richtext-granite-ui-component-in-aem-for-static-templates" rel="noopener" target="_blank">DRY way of using RichText Granite UI Component in AEM for Static Templates</a></p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/how-to-write-aem-reusable-touch-ui-granite-ui-configuration">How to Write AEM Reusable Touch UI, Granite UI Configuration</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sourcedcode.com/blog/aem/how-to-write-aem-reusable-touch-ui-granite-ui-configuration/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AEM Client Library Debugger &#038; Client Library Test Tool</title>
		<link>https://sourcedcode.com/blog/aem/aem-client-library-debugger-and-client-library-test-tool-blog</link>
					<comments>https://sourcedcode.com/blog/aem/aem-client-library-debugger-and-client-library-test-tool-blog#respond</comments>
		
		<dc:creator><![CDATA[briankasingli]]></dc:creator>
		<pubDate>Fri, 21 Jan 2022 05:24:24 +0000</pubDate>
				<category><![CDATA[AEM]]></category>
		<category><![CDATA[Client Libraries]]></category>
		<category><![CDATA[Short Post]]></category>
		<guid isPermaLink="false">https://sourcedcode.com/?p=3368</guid>

					<description><![CDATA[<p>A quick way to validate your AEM client libraries via registered clientlib categories is by using the AEM, out-of-the-box, &#8220;AEM Client Library Debugger Test Tool&#8221;. The tool is very bareboned. When you are on the tool page, you&#8217;ll find a Categories input field. Simply insert your to-be-tested clientlib category value here and press &#8220;submit&#8221;. Your [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/aem-client-library-debugger-and-client-library-test-tool-blog">AEM Client Library Debugger &#038; Client Library Test Tool</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>A quick way to validate your AEM client libraries via registered <strong>clientlib categories</strong> is by using the AEM, out-of-the-box, &#8220;AEM Client Library Debugger Test Tool&#8221;.</p>
<p>The tool is very bareboned. When you are on the tool page, you&#8217;ll find a <strong>Categories</strong> input field. Simply insert your to-be-tested clientlib category value here and press &#8220;submit&#8221;. Your results will show up at the bottom panel. This tool only allows you to test one clientlib category at once.</p>
<p>This tool is great because it will display the &lt;link&gt; and &lt;script&gt; blocks that will be injected into your AEM pages when the client library is being called.</p>
<p>Try it yourself! <a href="http://localhost:4502/libs/granite/ui/content/dumplibs.test.html" rel="noopener" target="_blank">http://localhost:4502/libs/granite/ui/content/dumplibs.test.html</a>.</p>
<p><a class="foobox fbx-link fbx-instance" href="https://sourcedcode.com/wp-content/uploads/2022/01/clientlib-debug-test-tool.png"><img decoding="async" src="https://sourcedcode.com/wp-content/uploads/2022/01/clientlib-debug-test-tool.png" alt="Example of a query for the &quot;sourcedcode.site&quot; client library category" /></a></p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/aem-client-library-debugger-and-client-library-test-tool-blog">AEM Client Library Debugger &#038; Client Library Test Tool</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sourcedcode.com/blog/aem/aem-client-library-debugger-and-client-library-test-tool-blog/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Get Cookie Example of AEM Servlet and Sling Model</title>
		<link>https://sourcedcode.com/blog/aem/get-cookie-example-of-aem-servlet-and-sling-model</link>
					<comments>https://sourcedcode.com/blog/aem/get-cookie-example-of-aem-servlet-and-sling-model#comments</comments>
		
		<dc:creator><![CDATA[briankasingli]]></dc:creator>
		<pubDate>Wed, 19 Jan 2022 04:58:31 +0000</pubDate>
				<category><![CDATA[AEM]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[OSGI]]></category>
		<category><![CDATA[Short Post]]></category>
		<category><![CDATA[Sling Models]]></category>
		<guid isPermaLink="false">https://sourcedcode.com/?p=3277</guid>

					<description><![CDATA[<p>In this short article, we will show two code examples; for example, one will be showcasing how cookies values can be accessed for an AEM Servlet, and for example two, Sling Model. 1. AEM Servlet Get Cookie Example 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465package com.sourcedcode.core.servlet; import com.cat.wcm.core.util.JSONObject; import org.apache.commons.lang.StringUtils; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; import org.osgi.service.component.annotations.Component; import javax.servlet.Servlet; import [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/get-cookie-example-of-aem-servlet-and-sling-model">Get Cookie Example of AEM Servlet and Sling Model</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In this short article, we will show two code examples; for example, one will be showcasing how cookies values can be accessed for an AEM Servlet, and for example two, Sling Model.</p>
<hr class="spacer-large" />
<h2>1. AEM Servlet Get Cookie Example</h2>
<div class="code-1000">
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.sourcedcode.core.servlet</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.cat.wcm.core.util.JSONObject</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.commons.lang.StringUtils</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletRequest</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletResponse</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.servlets.SlingAllMethodsServlet</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.osgi.service.component.annotations.Component</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.Servlet</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.http.Cookie</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.http.HttpServletRequest</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">static</span> org.<span style="color: #006633;">apache</span>.<span style="color: #006633;">sling</span>.<span style="color: #006633;">api</span>.<span style="color: #006633;">servlets</span>.<span style="color: #006633;">ServletResolverConstants</span>.<span style="color: #006633;">SLING_SERVLET_PATHS</span><span style="color: #339933;">;</span><br />
<br />
@<span style="color: #003399;">Component</span><span style="color: #009900;">&#40;</span><br />
&nbsp; service <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> Servlet.<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #009900;">&#125;</span>,<br />
&nbsp; property <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; SLING_SERVLET_PATHS <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;=/bin/getCookieExample&quot;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> GetCookieServletExample <span style="color: #000000; font-weight: bold;">extends</span> SlingAllMethodsServlet <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; @Override<br />
&nbsp; <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> doGet<span style="color: #009900;">&#40;</span>SlingHttpServletRequest request, SlingHttpServletResponse response<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">IOException</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; Cookie myCookie <span style="color: #339933;">=</span> getCookie<span style="color: #009900;">&#40;</span>request, <span style="color: #0000ff;">&quot;myCookie&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #003399;">String</span> myCookieValue <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>myCookie <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>myCookie.<span style="color: #006633;">getValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">isBlank</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; myCookieValue <span style="color: #339933;">=</span> myCookie.<span style="color: #006633;">getValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// server response</span><br />
&nbsp; &nbsp; response.<span style="color: #006633;">setStatus</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; response.<span style="color: #006633;">setContentType</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;application/json&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; JSONObject jsonResponse <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JSONObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; jsonResponse.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;myCookie&quot;</span>, myCookieValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; response.<span style="color: #006633;">getWriter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">write</span><span style="color: #009900;">&#40;</span>jsonResponse.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; <span style="color: #666666; font-style: italic;">// extracted helper method</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">private</span> Cookie getCookie<span style="color: #009900;">&#40;</span>HttpServletRequest request, <span style="color: #003399;">String</span> cookieName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>StringUtils.<span style="color: #006633;">isBlank</span><span style="color: #009900;">&#40;</span>cookieName<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; Cookie<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> cookies <span style="color: #339933;">=</span> request.<span style="color: #006633;">getCookies</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>cookies <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>cookies.<span style="color: #006633;">length</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cookie<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> var3 <span style="color: #339933;">=</span> cookies<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">int</span> var4 <span style="color: #339933;">=</span> cookies.<span style="color: #006633;">length</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> var5 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> var5 <span style="color: #339933;">&lt;</span> var4<span style="color: #339933;">;</span> <span style="color: #339933;">++</span>var5<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cookie cookie <span style="color: #339933;">=</span> var3<span style="color: #009900;">&#91;</span>var5<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>StringUtils.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>cookieName, cookie.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> cookie<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
</div>
<hr class="spacer-large" />
<h2>2. Sling Model Get Cookie Example</h2>
<div class="code-750">
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.sourcedcode.models.pages.page</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.commons.lang.StringUtils</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletRequest</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.resource.Resource</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.models.annotations.DefaultInjectionStrategy</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.models.annotations.Model</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.models.annotations.injectorspecific.SlingObject</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.annotation.PostConstruct</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.http.Cookie</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.http.HttpServletRequest</span><span style="color: #339933;">;</span><br />
<br />
@Model<span style="color: #009900;">&#40;</span><br />
&nbsp; adaptables <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>SlingHttpServletRequest.<span style="color: #000000; font-weight: bold;">class</span>, Resource.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#125;</span>,<br />
&nbsp; defaultInjectionStrategy <span style="color: #339933;">=</span> DefaultInjectionStrategy.<span style="color: #006633;">OPTIONAL</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ExampleModel <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; @SlingObject<br />
&nbsp; <span style="color: #000000; font-weight: bold;">protected</span> SlingHttpServletRequest request<span style="color: #339933;">;</span><br />
<br />
&nbsp; @PostConstruct<br />
&nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; Cookie myCookie <span style="color: #339933;">=</span> getCookie<span style="color: #009900;">&#40;</span>request, <span style="color: #0000ff;">&quot;myCookie&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #003399;">String</span> myCookieValue <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>myCookie <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>myCookie.<span style="color: #006633;">getValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">isBlank</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; myCookieValue <span style="color: #339933;">=</span> myCookie.<span style="color: #006633;">getValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; <span style="color: #666666; font-style: italic;">// extracted helper method</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">private</span> Cookie getCookie<span style="color: #009900;">&#40;</span>HttpServletRequest request, <span style="color: #003399;">String</span> cookieName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>StringUtils.<span style="color: #006633;">isBlank</span><span style="color: #009900;">&#40;</span>cookieName<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; Cookie<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> cookies <span style="color: #339933;">=</span> request.<span style="color: #006633;">getCookies</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>cookies <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>cookies.<span style="color: #006633;">length</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cookie<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> var3 <span style="color: #339933;">=</span> cookies<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">int</span> var4 <span style="color: #339933;">=</span> cookies.<span style="color: #006633;">length</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> var5 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> var5 <span style="color: #339933;">&lt;</span> var4<span style="color: #339933;">;</span> <span style="color: #339933;">++</span>var5<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cookie cookie <span style="color: #339933;">=</span> var3<span style="color: #009900;">&#91;</span>var5<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>StringUtils.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>cookieName, cookie.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> cookie<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
</div>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/get-cookie-example-of-aem-servlet-and-sling-model">Get Cookie Example of AEM Servlet and Sling Model</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sourcedcode.com/blog/aem/get-cookie-example-of-aem-servlet-and-sling-model/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Set Cookie Example of AEM Servlet and Sling Model</title>
		<link>https://sourcedcode.com/blog/aem/set-cookie-example-of-aem-servlet-and-sling-model</link>
					<comments>https://sourcedcode.com/blog/aem/set-cookie-example-of-aem-servlet-and-sling-model#respond</comments>
		
		<dc:creator><![CDATA[briankasingli]]></dc:creator>
		<pubDate>Wed, 19 Jan 2022 04:28:30 +0000</pubDate>
				<category><![CDATA[AEM]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Short Post]]></category>
		<category><![CDATA[Sling Models]]></category>
		<guid isPermaLink="false">https://sourcedcode.com/?p=3269</guid>

					<description><![CDATA[<p>In this short article, we will show two code examples; for example, one will be showcasing how cookies values can be set for an AEM Servlet, and for example two, Sling Model. 1. AEM Servlet Set Cookie Example 12345678910111213141516171819202122232425262728293031323334353637package com.sourcedcode.core.servlets; import com.cat.wcm.core.util.JSONObject; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; import org.osgi.service.component.annotations.Component; import javax.servlet.Servlet; import javax.servlet.http.Cookie; import [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/set-cookie-example-of-aem-servlet-and-sling-model">Set Cookie Example of AEM Servlet and Sling Model</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In this short article, we will show two code examples; for example, one will be showcasing how cookies values can be set for an AEM Servlet, and for example two, Sling Model.</p>
<hr class="spacer-large" />
<h2>1. AEM Servlet Set Cookie Example</h2>
<div class="code-500">
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.sourcedcode.core.servlets</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.cat.wcm.core.util.JSONObject</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletRequest</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletResponse</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.servlets.SlingAllMethodsServlet</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.osgi.service.component.annotations.Component</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.Servlet</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.http.Cookie</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">static</span> org.<span style="color: #006633;">apache</span>.<span style="color: #006633;">sling</span>.<span style="color: #006633;">api</span>.<span style="color: #006633;">servlets</span>.<span style="color: #006633;">ServletResolverConstants</span>.<span style="color: #006633;">SLING_SERVLET_PATHS</span><span style="color: #339933;">;</span><br />
<br />
@<span style="color: #003399;">Component</span><span style="color: #009900;">&#40;</span><br />
&nbsp; service <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> Servlet.<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #009900;">&#125;</span>,<br />
&nbsp; property <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; SLING_SERVLET_PATHS <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;=/bin/setCookieExample&quot;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> SetCookieServletExample <span style="color: #000000; font-weight: bold;">extends</span> SlingAllMethodsServlet <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; @Override<br />
&nbsp; <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> doGet<span style="color: #009900;">&#40;</span>SlingHttpServletRequest request, SlingHttpServletResponse response<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">IOException</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; Cookie cookie <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Cookie<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;visitedCookieServletExample&quot;</span>, <span style="color: #0000ff;">&quot;true&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; cookie.<span style="color: #006633;">setMaxAge</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">86400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// in seconds, 86400 = 24 hours.</span><br />
&nbsp; &nbsp; response.<span style="color: #006633;">addCookie</span><span style="color: #009900;">&#40;</span>cookie<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// server response</span><br />
&nbsp; &nbsp; response.<span style="color: #006633;">setStatus</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; response.<span style="color: #006633;">setContentType</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;application/json&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; JSONObject jsonResponse <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JSONObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; jsonResponse.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;success&quot;</span>, <span style="color: #0000ff;">&quot;true&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; response.<span style="color: #006633;">getWriter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">write</span><span style="color: #009900;">&#40;</span>jsonResponse.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
</div>
<hr class="spacer-large" />
<h2>2. Sling Model Set Cookie Example</h2>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.sourcedcode.models.pages.page</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletRequest</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.SlingHttpServletResponse</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.api.resource.Resource</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.models.annotations.DefaultInjectionStrategy</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.models.annotations.Model</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.sling.models.annotations.injectorspecific.SlingObject</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.annotation.PostConstruct</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.servlet.http.Cookie</span><span style="color: #339933;">;</span><br />
<br />
@Model<span style="color: #009900;">&#40;</span><br />
&nbsp; adaptables <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>SlingHttpServletRequest.<span style="color: #000000; font-weight: bold;">class</span>, Resource.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#125;</span>,<br />
&nbsp; defaultInjectionStrategy <span style="color: #339933;">=</span> DefaultInjectionStrategy.<span style="color: #006633;">OPTIONAL</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ExampleModel <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; @SlingObject<br />
&nbsp; <span style="color: #000000; font-weight: bold;">protected</span> SlingHttpServletResponse response<span style="color: #339933;">;</span><br />
<br />
&nbsp; @PostConstruct<br />
&nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; Cookie cookie <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Cookie<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;visitedExampleModel&quot;</span>, <span style="color: #0000ff;">&quot;true&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; cookie.<span style="color: #006633;">setMaxAge</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">86400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// in seconds, 86400 = 24 hours.</span><br />
&nbsp; &nbsp; response.<span style="color: #006633;">addCookie</span><span style="color: #009900;">&#40;</span>cookie<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/set-cookie-example-of-aem-servlet-and-sling-model">Set Cookie Example of AEM Servlet and Sling Model</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sourcedcode.com/blog/aem/set-cookie-example-of-aem-servlet-and-sling-model/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Dynamically Include an Experience Fragment in Sightly</title>
		<link>https://sourcedcode.com/blog/aem/dynamically-include-an-experience-fragment-in-sightly</link>
					<comments>https://sourcedcode.com/blog/aem/dynamically-include-an-experience-fragment-in-sightly#respond</comments>
		
		<dc:creator><![CDATA[briankasingli]]></dc:creator>
		<pubDate>Thu, 13 Jan 2022 22:51:32 +0000</pubDate>
				<category><![CDATA[AEM]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Short Post]]></category>
		<guid isPermaLink="false">https://sourcedcode.com/?p=3255</guid>

					<description><![CDATA[<p>In this article, we will dynamically reference an AEM experience fragment to a page, dynamically using code. Sightly Implementation Hard Coded Example The first example uses sightly to reference an experience fragment, /content/experience-fragments/we-retail/equipment, and the required variation, master. This will only work when the path includes the experience fragment variation path. The value here is [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/dynamically-include-an-experience-fragment-in-sightly">How to Dynamically Include an Experience Fragment in Sightly</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In this article, we will dynamically reference an AEM experience fragment to a page, dynamically using code.</p>
<hr class="spacer-large" />
<h2>Sightly Implementation</h2>
<p><strong>Hard Coded Example</strong><br />
The first example uses sightly to reference an experience fragment, /content/experience-fragments/we-retail/equipment, and the required variation, master. This will only work when the path includes the experience fragment variation path. The value here is hard coded.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #339933;">&lt;</span>sly data<span style="color: #339933;">-</span>sly<span style="color: #339933;">-</span>resource<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;${@path='/content/experience-fragments/we-retail/equipment/master', <br />
&nbsp; &nbsp;selectors='content', wcmmode='disabled'}&quot;</span><span style="color: #339933;">&gt;&lt;/</span>sly<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p><strong>Dynamic Example</strong><br />
In the second example, we can see that our component adapts to the com.mysite.models.component.MyCustomComponent, Sling Model backend, and then it exposes the experience fragment in the exPath property. The value returned from the exPath is &#8216;/content/experience-fragments/we-retail/equipment/master&#8217;.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #339933;">&lt;</span>sly data<span style="color: #339933;">-</span>sly<span style="color: #339933;">-</span>use.<span style="color: #006633;">cmp</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;com.mysite.models.component.MyCustomComponent&quot;</span><span style="color: #339933;">&gt;&lt;/</span>sly<span style="color: #339933;">&gt;</span><br />
<br />
<span style="color: #339933;">&lt;</span>sly data<span style="color: #339933;">-</span>sly<span style="color: #339933;">-</span>resource<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;${@path=cmp.exPath, <br />
&nbsp; &nbsp;selectors='content', wcmmode='disabled'}&quot;</span><span style="color: #339933;">&gt;&lt;/</span>sly<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<hr class="spacer-large" />
<p><strong>Removing &lt;html&gt;&lt;body&gt; unwanted tags and client library imports</strong><br />
When you include wcmmode=&#8217;disabled&#8217;, it will cause your page to render the &lt;html&gt;&lt;body&gt; unwanted tags and client library imports that you probably do not want apart of the page. To fix this issue, you would just need to dismiss wcmmode=&#8217;disabled&#8217;.</p>
<p>Use this line of text instead:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #339933;">&lt;</span>sly data<span style="color: #339933;">-</span>sly<span style="color: #339933;">-</span>use.<span style="color: #006633;">cmp</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;com.mysite.models.component.MyCustomComponent&quot;</span><span style="color: #339933;">&gt;&lt;/</span>sly<span style="color: #339933;">&gt;</span><br />
<br />
<span style="color: #339933;">&lt;</span>sly data<span style="color: #339933;">-</span>sly<span style="color: #339933;">-</span>resource<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;${@path=cmp.exPath, <br />
&nbsp; &nbsp;selectors='content'}&quot;</span><span style="color: #339933;">&gt;&lt;/</span>sly<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/dynamically-include-an-experience-fragment-in-sightly">How to Dynamically Include an Experience Fragment in Sightly</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sourcedcode.com/blog/aem/dynamically-include-an-experience-fragment-in-sightly/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Errors while building the latest AEM Project Archetype 24 on MacOS</title>
		<link>https://sourcedcode.com/blog/aem/errors-while-building-the-latest-aem-project-archetype-24-on-macos</link>
					<comments>https://sourcedcode.com/blog/aem/errors-while-building-the-latest-aem-project-archetype-24-on-macos#respond</comments>
		
		<dc:creator><![CDATA[briankasingli]]></dc:creator>
		<pubDate>Wed, 06 Jan 2021 16:16:34 +0000</pubDate>
				<category><![CDATA[AEM]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Short Post]]></category>
		<guid isPermaLink="false">https://sourcedcode.com/?p=2580</guid>

					<description><![CDATA[<p>I was recently trying to start up a new AEM project using the latest, AEM Project Archetype 24, but I was having having some build problems indicated in the errors below: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143$ mvn -B archetype:generate \ &#62; &#160;-D archetypeGroupId=com.adobe.aem \ &#62; &#160;-D archetypeArtifactId=aem-project-archetype \ &#62; &#160;-D archetypeVersion=24 \ &#62; &#160;-D appTitle=&#34;AEM SourcedCode&#34; \ &#62; &#160;-D [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/errors-while-building-the-latest-aem-project-archetype-24-on-macos">Errors while building the latest AEM Project Archetype 24 on MacOS</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I was recently trying to start up a new AEM project using the latest, <a href="https://github.com/adobe/aem-project-archetype" rel="noopener" target="_blank">AEM Project Archetype 24</a>, but I was having having some build problems indicated in the errors below:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">$ mvn <span style="color: #339933;">-</span>B archetype<span style="color: #339933;">:</span>generate \<br />
<span style="color: #339933;">&gt;</span> &nbsp;<span style="color: #339933;">-</span>D archetypeGroupId<span style="color: #339933;">=</span>com.<span style="color: #006633;">adobe</span>.<span style="color: #006633;">aem</span> \<br />
<span style="color: #339933;">&gt;</span> &nbsp;<span style="color: #339933;">-</span>D archetypeArtifactId<span style="color: #339933;">=</span>aem<span style="color: #339933;">-</span>project<span style="color: #339933;">-</span>archetype \<br />
<span style="color: #339933;">&gt;</span> &nbsp;<span style="color: #339933;">-</span>D archetypeVersion<span style="color: #339933;">=</span><span style="color: #cc66cc;">24</span> \<br />
<span style="color: #339933;">&gt;</span> &nbsp;<span style="color: #339933;">-</span>D appTitle<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;AEM SourcedCode&quot;</span> \<br />
<span style="color: #339933;">&gt;</span> &nbsp;<span style="color: #339933;">-</span>D appId<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;sourcedcodeaem&quot;</span> \<br />
<span style="color: #339933;">&gt;</span> &nbsp;<span style="color: #339933;">-</span>D groupId<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;com.sourcedcode.aem&quot;</span> \<br />
<span style="color: #339933;">&gt;</span> &nbsp;<span style="color: #339933;">-</span>D aemVersion<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;6.5.0&quot;</span> \<br />
<span style="color: #339933;">&gt;</span> &nbsp;<span style="color: #339933;">-</span>D frontendModule<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;none&quot;</span> \<br />
<span style="color: #339933;">&gt;</span> &nbsp;<span style="color: #339933;">-</span>D includeExamples<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;y&quot;</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Scanning <span style="color: #000000; font-weight: bold;">for</span> projects...<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <span style="color: #339933;">------------------&lt;</span> org.<span style="color: #006633;">apache</span>.<span style="color: #006633;">maven</span><span style="color: #339933;">:</span>standalone<span style="color: #339933;">-</span>pom <span style="color: #339933;">&gt;-------------------</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Building Maven <span style="color: #003399;">Stub</span> Project <span style="color: #009900;">&#40;</span>No POM<span style="color: #009900;">&#41;</span> <span style="color: #cc66cc;">1</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <span style="color: #339933;">--------------------------------</span><span style="color: #009900;">&#91;</span> pom <span style="color: #009900;">&#93;</span><span style="color: #339933;">---------------------------------</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;&gt;&gt;</span> maven<span style="color: #339933;">-</span>archetype<span style="color: #339933;">-</span>plugin<span style="color: #339933;">:</span>3.0.1<span style="color: #339933;">:</span>generate <span style="color: #009900;">&#40;</span>default<span style="color: #339933;">-</span>cli<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> generate<span style="color: #339933;">-</span>sources @ standalone<span style="color: #339933;">-</span>pom <span style="color: #339933;">&gt;&gt;&gt;</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;&lt;&lt;</span> maven<span style="color: #339933;">-</span>archetype<span style="color: #339933;">-</span>plugin<span style="color: #339933;">:</span>3.0.1<span style="color: #339933;">:</span>generate <span style="color: #009900;">&#40;</span>default<span style="color: #339933;">-</span>cli<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> generate<span style="color: #339933;">-</span>sources @ standalone<span style="color: #339933;">-</span>pom <span style="color: #339933;">&lt;&lt;&lt;</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <span style="color: #339933;">---</span> maven<span style="color: #339933;">-</span>archetype<span style="color: #339933;">-</span>plugin<span style="color: #339933;">:</span>3.0.1<span style="color: #339933;">:</span>generate <span style="color: #009900;">&#40;</span>default<span style="color: #339933;">-</span>cli<span style="color: #009900;">&#41;</span> @ standalone<span style="color: #339933;">-</span>pom <span style="color: #339933;">---</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Generating project in Batch mode<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Archetype repository not defined. <span style="color: #006633;">Using</span> the one from <span style="color: #009900;">&#91;</span>com.<span style="color: #006633;">adobe</span>.<span style="color: #006633;">aem</span><span style="color: #339933;">:</span>aem<span style="color: #339933;">-</span>project<span style="color: #339933;">-</span>archetype<span style="color: #339933;">:</span><span style="color: #cc66cc;">24</span><span style="color: #009900;">&#93;</span> found in catalog remote<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <span style="color: #339933;">----------------------------------------------------------------------------</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Using following parameters <span style="color: #000000; font-weight: bold;">for</span> creating project from Archetype<span style="color: #339933;">:</span> aem<span style="color: #339933;">-</span>project<span style="color: #339933;">-</span>archetype<span style="color: #339933;">:</span><span style="color: #cc66cc;">24</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> <span style="color: #339933;">----------------------------------------------------------------------------</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> groupId, Value<span style="color: #339933;">:</span> com.<span style="color: #006633;">sourcedcode</span>.<span style="color: #006633;">aem</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> artifactId, Value<span style="color: #339933;">:</span> sourcedcodeaem<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> version, Value<span style="color: #339933;">:</span> 1.0.0<span style="color: #339933;">-</span>SNAPSHOT<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">package</span>, Value<span style="color: #339933;">:</span> com.<span style="color: #006633;">sourcedcode</span>.<span style="color: #006633;">aem</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> packageInPathFormat, Value<span style="color: #339933;">:</span> com<span style="color: #339933;">/</span>sourcedcode<span style="color: #339933;">/</span>aem<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> frontendModule, Value<span style="color: #339933;">:</span> none<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> artifactId, Value<span style="color: #339933;">:</span> sourcedcodeaem<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">package</span>, Value<span style="color: #339933;">:</span> com.<span style="color: #006633;">sourcedcode</span>.<span style="color: #006633;">aem</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> appId, Value<span style="color: #339933;">:</span> sourcedcodeaem<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> version, Value<span style="color: #339933;">:</span> 1.0.0<span style="color: #339933;">-</span>SNAPSHOT<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> appTitle, Value<span style="color: #339933;">:</span> AEM SourcedCode<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> includeErrorHandler, Value<span style="color: #339933;">:</span> n<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> singleCountry, Value<span style="color: #339933;">:</span> y<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> datalayer, Value<span style="color: #339933;">:</span> y<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> amp, Value<span style="color: #339933;">:</span> n<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> groupId, Value<span style="color: #339933;">:</span> com.<span style="color: #006633;">sourcedcode</span>.<span style="color: #006633;">aem</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> aemVersion, Value<span style="color: #339933;">:</span> 6.5.0<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> language, Value<span style="color: #339933;">:</span> en<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> country, Value<span style="color: #339933;">:</span> us<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> includeDispatcherConfig, Value<span style="color: #339933;">:</span> y<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> commerceEndpoint, Value<span style="color: #339933;">:</span> https<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//hostname.com/graphql</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> sdkVersion, Value<span style="color: #339933;">:</span> latest<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> includeCommerce, Value<span style="color: #339933;">:</span> n<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parameter<span style="color: #339933;">:</span> includeExamples, Value<span style="color: #339933;">:</span> y<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parent element not overwritten in <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>all<span style="color: #339933;">/</span>pom.<span style="color: #006633;">xml</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parent element not overwritten in <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>core<span style="color: #339933;">/</span>pom.<span style="color: #006633;">xml</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parent element not overwritten in <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>dispatcher.<span style="color: #006633;">ams</span><span style="color: #339933;">/</span>pom.<span style="color: #006633;">xml</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parent element not overwritten in <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>dispatcher.<span style="color: #006633;">cloud</span><span style="color: #339933;">/</span>pom.<span style="color: #006633;">xml</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parent element not overwritten in <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">frontend</span>.<span style="color: #006633;">general</span><span style="color: #339933;">/</span>pom.<span style="color: #006633;">xml</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.frontend.general/pom.xml<br />
[INFO] Parent element not overwritten in /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.frontend.angular/pom.xml<br />
[WARNING] Don'</span>t override file <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">frontend</span>.<span style="color: #006633;">angular</span><span style="color: #339933;">/</span>pom.<span style="color: #006633;">xml</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parent element not overwritten in <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">frontend</span>.<span style="color: #006633;">react</span><span style="color: #339933;">/</span>pom.<span style="color: #006633;">xml</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.frontend.react/pom.xml<br />
[INFO] Parent element not overwritten in /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.apps/pom.xml<br />
[INFO] Parent element not overwritten in /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.config/pom.xml<br />
[INFO] Parent element not overwritten in /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.content/pom.xml<br />
[WARNING] CP Don'</span>t override file <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">content</span><span style="color: #339933;">/</span>src<span style="color: #339933;">/</span>main<span style="color: #339933;">/</span>content<span style="color: #339933;">/</span>jcr_root<span style="color: #339933;">/</span>content<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>_jcr_content<span style="color: #339933;">/</span>image<span style="color: #339933;">/</span>file<br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parent element not overwritten in <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>it.<span style="color: #006633;">tests</span><span style="color: #339933;">/</span>pom.<span style="color: #006633;">xml</span><br />
<span style="color: #009900;">&#91;</span>INFO<span style="color: #009900;">&#93;</span> Parent element not overwritten in <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">tests</span><span style="color: #339933;">/</span>pom.<span style="color: #006633;">xml</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.tests/pom.xml<br />
[WARNING] CP Don'</span>t override file <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">tests</span><span style="color: #339933;">/</span>test<span style="color: #339933;">-</span>module<span style="color: #339933;">/</span>assets<span style="color: #339933;">/</span>image.<span style="color: #006633;">png</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> CP Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.tests/test-module/specs/aem/basic.js<br />
[WARNING] CP Don'</span>t override file <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">tests</span><span style="color: #339933;">/</span>test<span style="color: #339933;">-</span>module<span style="color: #339933;">/</span>specs<span style="color: #339933;">/</span>aem<span style="color: #339933;">/</span>assets.<span style="color: #006633;">js</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> CP Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.tests/test-module/specs/aem/sites.js<br />
[WARNING] CP Don'</span>t override file <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">tests</span><span style="color: #339933;">/</span>test<span style="color: #339933;">-</span>module<span style="color: #339933;">/</span>specs<span style="color: #339933;">/</span>aem<span style="color: #339933;">/</span>login.<span style="color: #006633;">js</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> CP Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.tests/test-module/package.json<br />
[WARNING] CP Don'</span>t override file <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">tests</span><span style="color: #339933;">/</span>test<span style="color: #339933;">-</span>module<span style="color: #339933;">/</span>wdio.<span style="color: #006633;">conf</span>.<span style="color: #006633;">cloud</span>.<span style="color: #006633;">js</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> CP Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.tests/test-module/lib/commons.js<br />
[WARNING] CP Don'</span>t override file <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">tests</span><span style="color: #339933;">/</span>test<span style="color: #339933;">-</span>module<span style="color: #339933;">/</span>lib<span style="color: #339933;">/</span>wdio.<span style="color: #006633;">commands</span>.<span style="color: #006633;">js</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> CP Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.tests/test-module/lib/config.js<br />
[WARNING] CP Don'</span>t override file <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">tests</span><span style="color: #339933;">/</span>test<span style="color: #339933;">-</span>module<span style="color: #339933;">/</span>.<span style="color: #006633;">eslintrc</span>.<span style="color: #006633;">js</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> CP Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.tests/test-module/wdio.conf.local.js<br />
[WARNING] CP Don'</span>t override file <span style="color: #339933;">/</span>Users<span style="color: #339933;">/</span>sourcedcodecomputer<span style="color: #339933;">/</span>git<span style="color: #339933;">/</span>bitbucket<span style="color: #339933;">/</span>sourcedcodeaem<span style="color: #339933;">/</span>ui.<span style="color: #006633;">tests</span><span style="color: #339933;">/</span>test<span style="color: #339933;">-</span>module<span style="color: #339933;">/</span>README.<span style="color: #006633;">md</span><br />
<span style="color: #009900;">&#91;</span>WARNING<span style="color: #009900;">&#93;</span> CP Don<span style="color: #0000ff;">'t override file /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.tests/test-module/wdio.conf.commons.js<br />
[INFO] Parent element not overwritten in /Users/sourcedcodecomputer/git/bitbucket/sourcedcodeaem/ui.apps.structure/pom.xml<br />
[INFO] Executing META-INF/archetype-post-generate.groovy post-generation script<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] BUILD FAILURE<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] Total time: &nbsp;4.690 s<br />
[INFO] Finished at: 2021-01-06T15:58:15Z<br />
[INFO] ------------------------------------------------------------------------<br />
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) on project standalone-pom: Execution default-cli of goal org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate failed: A required class was missing while executing org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate: org/apache/ivy/core/report/ResolveReport<br />
[ERROR] -----------------------------------------------------<br />
[ERROR] realm = &nbsp; &nbsp;plugin&gt;org.apache.maven.plugins:maven-archetype-plugin:3.0.1<br />
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy<br />
[ERROR] urls[0] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/maven/plugins/maven-archetype-plugin/3.0.1/maven-archetype-plugin-3.0.1.jar<br />
[ERROR] urls[1] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/maven/archetype/archetype-catalog/3.0.1/archetype-catalog-3.0.1.jar<br />
[ERROR] urls[2] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/maven/archetype/archetype-descriptor/3.0.1/archetype-descriptor-3.0.1.jar<br />
[ERROR] urls[3] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/maven/archetype/archetype-common/3.0.1/archetype-common-3.0.1.jar<br />
[ERROR] urls[4] = file:/Users/sourcedcodecomputer/.m2/repository/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.jar<br />
[ERROR] urls[5] = file:/Users/sourcedcodecomputer/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.6/plexus-component-annotations-1.6.jar<br />
[ERROR] urls[6] = file:/Users/sourcedcodecomputer/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar<br />
[ERROR] urls[7] = file:/Users/sourcedcodecomputer/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar<br />
[ERROR] urls[8] = file:/Users/sourcedcodecomputer/.m2/repository/jdom/jdom/1.0/jdom-1.0.jar<br />
[ERROR] urls[9] = file:/Users/sourcedcodecomputer/.m2/repository/commons-io/commons-io/2.2/commons-io-2.2.jar<br />
[ERROR] urls[10] = file:/Users/sourcedcodecomputer/.m2/repository/org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.jar<br />
[ERROR] urls[11] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/velocity/velocity/1.7/velocity-1.7.jar<br />
[ERROR] urls[12] = file:/Users/sourcedcodecomputer/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar<br />
[ERROR] urls[13] = file:/Users/sourcedcodecomputer/.m2/repository/org/codehaus/groovy/groovy/1.8.3/groovy-1.8.3.jar<br />
[ERROR] urls[14] = file:/Users/sourcedcodecomputer/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar<br />
[ERROR] urls[15] = file:/Users/sourcedcodecomputer/.m2/repository/asm/asm/3.2/asm-3.2.jar<br />
[ERROR] urls[16] = file:/Users/sourcedcodecomputer/.m2/repository/asm/asm-commons/3.2/asm-commons-3.2.jar<br />
[ERROR] urls[17] = file:/Users/sourcedcodecomputer/.m2/repository/asm/asm-util/3.2/asm-util-3.2.jar<br />
[ERROR] urls[18] = file:/Users/sourcedcodecomputer/.m2/repository/asm/asm-analysis/3.2/asm-analysis-3.2.jar<br />
[ERROR] urls[19] = file:/Users/sourcedcodecomputer/.m2/repository/asm/asm-tree/3.2/asm-tree-3.2.jar<br />
[ERROR] urls[20] = file:/Users/sourcedcodecomputer/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.21/plexus-utils-3.0.21.jar<br />
[ERROR] urls[21] = file:/Users/sourcedcodecomputer/.m2/repository/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar<br />
[ERROR] urls[22] = file:/Users/sourcedcodecomputer/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar<br />
[ERROR] urls[23] = file:/Users/sourcedcodecomputer/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar<br />
[ERROR] urls[24] = file:/Users/sourcedcodecomputer/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar<br />
[ERROR] urls[25] = file:/Users/sourcedcodecomputer/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar<br />
[ERROR] urls[26] = file:/Users/sourcedcodecomputer/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar<br />
[ERROR] urls[27] = file:/Users/sourcedcodecomputer/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar<br />
[ERROR] urls[28] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/maven/shared/maven-invoker/2.2/maven-invoker-2.2.jar<br />
[ERROR] urls[29] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/maven/shared/maven-artifact-transfer/0.9.0/maven-artifact-transfer-0.9.0.jar<br />
[ERROR] urls[30] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.0.0/maven-common-artifact-filters-3.0.0.jar<br />
[ERROR] urls[31] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.0.0/maven-shared-utils-3.0.0.jar<br />
[ERROR] urls[32] = file:/Users/sourcedcodecomputer/.m2/repository/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar<br />
[ERROR] urls[33] = file:/Users/sourcedcodecomputer/.m2/repository/commons-codec/commons-codec/1.6/commons-codec-1.6.jar<br />
[ERROR] urls[34] = file:/Users/sourcedcodecomputer/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar<br />
[ERROR] urls[35] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/maven/shared/maven-script-interpreter/1.0/maven-script-interpreter-1.0.jar<br />
[ERROR] urls[36] = file:/Users/sourcedcodecomputer/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar<br />
[ERROR] urls[37] = file:/Users/sourcedcodecomputer/.m2/repository/org/apache/ant/ant/1.8.1/ant-1.8.1.jar<br />
[ERROR] Number of foreign imports: 1<br />
[ERROR] import: Entry[import &nbsp;from realm ClassRealm[maven.api, parent: null]]<br />
[ERROR] <br />
[ERROR] -----------------------------------------------------: org.apache.ivy.core.report.ResolveReport<br />
[ERROR] -&gt; [Help 1]<br />
[ERROR] <br />
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.<br />
[ERROR] Re-run Maven using the -X switch to enable full debug logging.<br />
[ERROR] <br />
[ERROR] For more information about the errors and possible solutions, please read the following articles:<br />
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException</span></div></td></tr></tbody></table></div>
<p>I attempted next to build the <a href="https://github.com/adobe/aem-project-archetype" rel="noopener" target="_blank">AEM Project Archetype 24</a> project again using the -X flag to enable debug traces, and I was able to identify the causing errors. It is because maven was not able to generate folder structures and files as it requires. </p>
<hr class="spacer-large" />
<h3>The Fix</h3>
<p>The fix is quite simple, we just need to include the word <span class="code-highlight-primary">sudo</span> to the build maven command.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">sudo mvn <span style="color: #339933;">-</span>B archetype<span style="color: #339933;">:</span>generate \<br />
&nbsp;<span style="color: #339933;">-</span>D archetypeGroupId<span style="color: #339933;">=</span>com.<span style="color: #006633;">adobe</span>.<span style="color: #006633;">aem</span> \<br />
&nbsp;<span style="color: #339933;">-</span>D archetypeArtifactId<span style="color: #339933;">=</span>aem<span style="color: #339933;">-</span>project<span style="color: #339933;">-</span>archetype \<br />
&nbsp;<span style="color: #339933;">-</span>D archetypeVersion<span style="color: #339933;">=</span><span style="color: #cc66cc;">24</span> \<br />
&nbsp;<span style="color: #339933;">-</span>D appTitle<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;AEM SourcedCode&quot;</span> \<br />
&nbsp;<span style="color: #339933;">-</span>D appId<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;sourcedcodeaem&quot;</span> \<br />
&nbsp;<span style="color: #339933;">-</span>D groupId<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;com.sourcedcode.aem&quot;</span> \<br />
&nbsp;<span style="color: #339933;">-</span>D aemVersion<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;6.5.0&quot;</span> \<br />
&nbsp;<span style="color: #339933;">-</span>D frontendModule<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;none&quot;</span> \<br />
&nbsp;<span style="color: #339933;">-</span>D includeExamples<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;y&quot;</span></div></td></tr></tbody></table></div>
<p>The post <a rel="nofollow" href="https://sourcedcode.com/blog/aem/errors-while-building-the-latest-aem-project-archetype-24-on-macos">Errors while building the latest AEM Project Archetype 24 on MacOS</a> appeared first on <a rel="nofollow" href="https://sourcedcode.com">Sourced Code</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sourcedcode.com/blog/aem/errors-while-building-the-latest-aem-project-archetype-24-on-macos/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
