<?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>Three2Tango &#187; ATG &amp; Java</title>
	<atom:link href="http://www.three2tango.com/category/techcorner/atg-java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.three2tango.com</link>
	<description>Points To Ponder : The Latest news from the TechWorld,Automobiles,CellPhones and lots of useful Code Snippets</description>
	<lastBuildDate>Fri, 27 Jan 2012 09:03:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ATG Repository Concepts</title>
		<link>http://www.three2tango.com/techcorner/atg-java/atg-repository-concepts.html/</link>
		<comments>http://www.three2tango.com/techcorner/atg-java/atg-repository-concepts.html/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 10:14:34 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[ATG basic]]></category>
		<category><![CDATA[ATG framework]]></category>
		<category><![CDATA[atg repository]]></category>
		<category><![CDATA[ATG technology]]></category>
		<category><![CDATA[repository xml template]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=4779</guid>
		<description><![CDATA[We will work this out from the very basic question,
What is an ATG Repository??
A repository is a data access layer that defines a generic representation of a data store. It simplifies the storage and retrieval of data. The manipulations of data are done through the Repository API. Application developers access data only using the interfaces such as Repository and RepositoryItem. Developers can create, modify, query and remove repository items. A repository item is more or less like a Java bean. The ATG platform  includes a set of models for repositories.
1. ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">We will work this out from the very basic question,<br />
<strong>What is an ATG Repository??</strong><br />
A repository is a data access layer that defines a generic representation of a data store. It simplifies the storage and retrieval of data. The manipulations of data are done through the Repository API. Application developers access data only using the interfaces such as <strong>Repository </strong>and <strong>RepositoryItem</strong>. Developers can create, modify, query and remove repository items. A repository item is more or less like a Java bean. The ATG platform  includes a set of models for repositories.</p>
<p style="text-align: justify;"><strong>1.</strong> SQL Repository: uses the Generic SQL Adapter(GSA) to perform a mapping between ATG and data stored in a SQL database.</p>
<p style="text-align: justify;"><strong>2.</strong>Versioned Repository: is an extension of SQL repository used in ATG Content Administration. It has versions for every set of data.For example a price for a product is edited, new entry will be made with a new version number instead of editing the price.</p>
<p style="text-align: justify;">The SQL repository is implemented through the atg.adapter.gsa package. The main ATG component in the SQL repository is an instance of the atg.adapter.gsa.GSARepository class, which implements the interfaces atg.repository.MutableRepository and atg.repository.content.ContentRepository and which extends the class atg.repository.RepositoryImpl.</p>
<p>Lets keep aside the hardcore theory for now and move to more practical aspects of repositories.</p>
<p>A repository is a collection of repository items. In general, a repository item corresponds to the smallest uniquely identifiable entity in the underlying data store. Each repository item is made of properties and these properties store the data and thus makes a repository item. These properties of a repository item are defined inside the repository&#8217;s ITEM DESCRIPTORs. Properties of repository items may be single-valued or multi-valued.</p>
<p>Its still confusing&#8230;??? be patient,towards the end there is a something informative which will help you enhance your understanding.</p>
<p><strong>What is an Item Descriptor?</strong><br />
Lets keep it simple with the help of an SQL Repository, for example, each database table have its own repository item descriptor. Sometimes a JOIN of multiple tables into a single item descriptor.</p>
<p>Points to Note:<br />
ATG repositories support Java collections and hence we can store a List, Map or  Arrays.<br />
ATG repositories allow one-one, one &#8211; many and many- many relationships.</p>
<p>Here is what i have promised: how to setup a repository..??</p>
<p>We have a database table (eg:  tb_tango).<br />
Now create a property file which specifies the repository mapping xml file, class file, data Source etc. Lets name it as &#8220;<strong>dummyPropFile.properties</strong>&#8220;. The mapping xml(<strong>repositoryMapping.xml</strong>) file specifies the repository item desciptors. And the final step is registering the repository with dynamo(<a href="http://www.three2tango.com/techcorner/atg-java/interview-questions-basic-atg.html">I have explained it in another post(question-5)</a>).</p>
<p><strong>Table name and details</strong></p>
<p>create table tb_tango{<br />
id Varchar2(30),<br />
prof varchar2(255),<br />
fname varchar2(50)<br />
}</p>
<p><strong>&#8220;dummyPropFile.properties&#8221;</strong></p>
<p>$class=atg.adapter.gsa.GSARepository<br />
definitionFiles=Folder Structure/repositoryMapping.xml<br />
XMLToolsFactory=/atg/dynamo/service/xml/XMLToolsFactory<br />
transactionManager=/atg/dynamo/transaction/TransactionManager<br />
idGenerator=/atg/dynamo/service/IdGenerator<br />
dataSource=/atg/dynamo/service/jdbc/dataSourceFile</p>
<p>* The &#8220;dataSourceFile&#8221;  is yet another property file where the JDBC connections and database driver,server name, user, password etc are specified.</p>
<p><strong>&#8220;repositoryMapping.xml&#8221;</strong></p>
<pre name="code" language="C#">
&lt;!DOCTYPE gsa-template PUBLIC "-//Art Technology Group, Inc.//DTD General SQL Adapter//EN"
        "http://www.atg.com/dtds/gsa/gsa_1.0.dtd"&gt;
&lt;gsa-template&gt;
&lt;item-descriptor name="tango"&gt;
	&lt;table name="tb_tango" type="primary" id-column-name="id"&gt;
		&lt;property name="id" column-names="id" data-type="string"/&gt;
		&lt;property name="profession" column-names="prof" data-type="string"/&gt;
		&lt;property name="firstname" column-names="fname" data-type="string"/&gt;
	&lt;/table&gt;
&lt;/item-descriptor&gt;

&lt;/gsa-template&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/atg-java/atg-repository-concepts.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview Questions: Basic ATG</title>
		<link>http://www.three2tango.com/techcorner/atg-java/interview-questions-basic-atg.html/</link>
		<comments>http://www.three2tango.com/techcorner/atg-java/interview-questions-basic-atg.html/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 05:11:04 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[ATG]]></category>
		<category><![CDATA[ATG and java relation]]></category>
		<category><![CDATA[ATG basic]]></category>
		<category><![CDATA[ATG framework]]></category>
		<category><![CDATA[ATG interview questions]]></category>
		<category><![CDATA[atg logging features]]></category>
		<category><![CDATA[ATG technology]]></category>
		<category><![CDATA[technical interview questions]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=4772</guid>
		<description><![CDATA[Some very basic stuffs in ATG, go ahead and read if you are looking for simple things, veteran ATG developers please stay away as you wont find it resourceful. Here in this article you will not find any codes but some basic interview questions.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><strong>1.Logging features of ATG</strong><br />
Any component whose base class implements &#8220;ApplicationLogging&#8221; Interface can use atg logging infrastructure. Logging can be done  per-component, per-module/per-application basis. Error, Warning,Info &amp; Debug messages are the various logging mechanisms.First three are logged by default, whereas the Debug messages are just for debugging purpose and should be removed when the code goes into production.Logging is managed using the &#8220;GLOBAL.properties&#8221; file, which specfies the log levels of various modules.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;-<strong>2</strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Scope of a component started through &#8220;initialServices&#8221; is GLOBAL.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;-<strong>3</strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
<strong>Format of a Properties file :</strong><br />
Entries are generally expected to be a single line of the form<br />
propertyName=propertyValue<br />
or<br />
propertyName:propertyValue<br />
The property value is generally terminated by the end of the line. White space following the property value is not ignored, and is treated as part of the property value. White space at the beginning of the line is ignored.A property value can span several lines if each line is terminated by a backslash (‘\’) character.<br />
The backslash character must also be “escaped” using a double backslash.Eg: C:\\home\\3tt<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<strong>4</strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<strong>What is Config Layering??</strong><br />
Properties set in later entries in the CONFIGPATH override earlier entries. By adding a entry to the config path you can customize any components in the system without losing the original configuration information.You can have a global configuration common to all machines then have machine specific information in the last layer.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<strong>5</strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
<strong>How to register a repository with the dynamo??</strong><br />
Create &#8220;/config/atg/registry/ContentRepositories.properties&#8221; file and append our repository file (XML )name to the &#8220;initialRepositories&#8221; property<br />
Eg: initialRepositories+= /myModule/mySampleRepository<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<strong>6</strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<strong>ATG standard product catalog uses which repository??</strong><br />
If we are using the standard product catalog provided by ATG no need to configure anything. We can straight away use the &#8220;/atg/commerce/catalog/ProductCatalog&#8221;  repository component</p>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/atg-java/interview-questions-basic-atg.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dsp Tags Continued</title>
		<link>http://www.three2tango.com/techcorner/atg-java/dsp-tags-continued-2.html/</link>
		<comments>http://www.three2tango.com/techcorner/atg-java/dsp-tags-continued-2.html/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 06:09:19 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[ATG basic]]></category>
		<category><![CDATA[ATG Tag Library]]></category>
		<category><![CDATA[ATG technology]]></category>
		<category><![CDATA[Dsp]]></category>
		<category><![CDATA[DSP Tag library]]></category>
		<category><![CDATA[DSP tags]]></category>
		<category><![CDATA[dsp:getvalueof]]></category>
		<category><![CDATA[dsp:valueof]]></category>
		<category><![CDATA[knowledge tips in ATG]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=4765</guid>
		<description><![CDATA[The article focuses on the dsp tags, like previous post on this category here also our prime focus is dsp tags. In this specific article the author is trying to explain the usage of bean variable inside a jsp page. The code snippets include  dsp getvalueof tag, dsp import bean, jstl tag c:out.Also it has some inputs to the usage of scriplets. The concepts is explained with the help of a sample code which might not actually work if you just copy paste but will surely help you understand the usage.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><strong>Usage of bean variables in dsp page?</strong><br />
Before we deep dive, lets have a look at the various shards we are clubbing together.First we will create our miniscule component, lets name it &#8220;<strong>SampleBean</strong>&#8220;(SampleBean.properties) ofcourse the twin java class is there, lets name it &#8220;<strong>SampleBeanJ</strong>&#8220;(SampleBeanJ.java), the &#8220;J&#8221; can be used to differentiate the property file from a java file.The other important piece in the story is the jsp file, which we will call &#8220;<strong>ttt</strong>&#8220;(ttt.jsp), the three T&#8217;s represent three2tango.</p>
<p style="text-align: justify;"><strong>1. SampleBean.properties</strong><br />
The component which bridges the java file with the jsp file.This name is used to import the java class into the jsp. In our example we are keeping it simple, nothing abstruse will be written in that.</p>
<p style="text-align: justify;">$class= rootfolder.SampleBeanJ</p>
<p style="text-align: justify;">The &#8220;rootfolder&#8221; is the location where the java class resides.And its in this SampleBeanJ we will write our actual application logic.</p>
<p style="text-align: justify;"><strong>2. SampleBeanJ.java </strong><br />
SBJ is written like any other java class, it starts with the package information, then the imports, then the class declaration with access specifiers and extentions if any.</p>
<pre name="code" language="C#" style="text-align: justify;">package rootfolder;
import java.io.IOException;// not actually required in our case, written just to stick to the standard format.
public class SampleBeanJ
{
	private String varFromBean;

	//getter method
	public String getVarFromBean() {
		return varFromBean;
	}
	//setter method.
	public void setVarFromBean(String varFromBean) {
		this.varFromBean = varFromBean;
	}
}</pre>
<p style="text-align: justify;">How the variable &#8220;varFromBean&#8221; is getting/setting a value is a different issue and we will discuss it in some other session. Our prime focus is on how to use a bean variable in a jsp, also the various methods of handling the bean variables.</p>
<p>Lets take a look at our &#8220;ttt.jsp&#8221;<br />
Dont forget to include the dsp tag libs at the very beginning. Also the tag libs for the jstl(Jsp Standard Tag Library).<br />
<strong>3. ttt.jsp</strong></p>
<pre name="code" language="C#" style="text-align: justify;">&lt;%@ taglib uri="/dspTaglib" prefix="dsp" %&gt;
&lt;%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%&gt;
&lt;dsp:page&gt;
&lt;dsp:importbean bean="rootfolder/SampleBean"/&gt;
//comment : the attribute bean specifies the property file, which in turn points to the java file.(The ATG component centric architecture)
&lt;%
String jspVar1 = "foo";
//comment : Java code inside the JSP is kept inside &lt;% and %&gt; characters (just like expressions, but without the = sign at the start of the sequence.)This block of code is known as a "SCRIPLET".A scriptlet contains Java code that is executed every time the JSP is invoked.
%&gt;
&lt;dsp:getvalueof bean="SampleBean.varFromBean" idtype="java.lang.String" id="jspid"&gt;
&lt;%
jspVar1 = jspid;
//comment: the "jspid" has the value of the private string variable"varFromBean" in the SampleBean class.
%&gt;
&lt;/dsp:getvalueof&gt;
&lt;%if("foo".equals(jspVar1)){%&gt;
&lt;c:out value="foo from the jsp itself"&gt;&lt;/c:out&gt;
&lt;%}else{%&gt;
&lt;dsp:valueof bean="SampleBean.varFromBean"/&gt;
//comment:value of the variable will be printed.
&lt;%}%&gt;
&lt;/dsp:page&gt;</pre>
<p>Here we see a method of using the variable in a bean inside the jsp.There are different other ways also to do the same. I will try to explain those in other posts. Hope this one helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/atg-java/dsp-tags-continued-2.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Brief Note on eCommerce Catalogs</title>
		<link>http://www.three2tango.com/techcorner/tech-talk/brief-note-on-ecommerce-catalogs.html/</link>
		<comments>http://www.three2tango.com/techcorner/tech-talk/brief-note-on-ecommerce-catalogs.html/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 10:07:43 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[Tech Talk]]></category>
		<category><![CDATA[ATg Architecture]]></category>
		<category><![CDATA[ATG Catalogs]]></category>
		<category><![CDATA[ATG fra]]></category>
		<category><![CDATA[ATG framework]]></category>
		<category><![CDATA[knowledge tips in ATG]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=4658</guid>
		<description><![CDATA[Catalog is a very important terminology when we talk about electronic commerce. This article will focus on the ATG&#8217;s standard product catalog and various terms related to the catalog. The article will describe the terms like &#8211; Categories, Products, SKUs etc. Categories are the central portion of the catalog which provides it with a structure, the navigational hierarchy comes only when there is a category. To be simple the categories make the heart of a catalog. An eg: will explain it further. Consider a store which sells different type of ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><strong>Catalog</strong> is a very important terminology when we talk about electronic commerce. This article will focus on the <strong>ATG&#8217;s standard product catalog</strong> and various terms related to the catalog. The article will describe the terms like &#8211; Categories, Products, SKUs etc. Categories are the central portion of the catalog which provides it with a structure, the navigational hierarchy comes only when there is a category. To be simple the categories make the heart of a catalog. An eg: will explain it further. Consider a store which sells different type of products, like groceries, stationery, electronic goods etc, then each of this can be considered a category and thus plays a pivotal role in the catalog. A category can have other categories or products or both under it. A product on the other hand is the end point of the catalog hierarchy. But to be more precise a product is not something the customer will be purchasing. Its a SKU that a customers looks at and purchases. SKU is the acronym for<strong> Stock Keeping Units</strong>. To differentiate a SKU from Product , consider the following eg:- In our Catalog hierarchy say stationery is a category, and pen is the product. But &#8220;Pen&#8221; can&#8217;t be purchased; only a Parker, Bic, Pierre Cardin can be bought and these are SKUs for the product &#8220;Pen&#8221;. So essentially a product has various SKUs associated with it representing the size, brand,color etc.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong><span class="wp-table-reloaded-table-description">Properties of Category and Products as defined by ATG Commerce Framework</span>

<table id="wp-table-reloaded-id-4-no-1" class="wp-table-reloaded wp-table-reloaded-id-4">
<thead>
	<tr class="row-1">
		<th colspan="2" class="column-1 colspan-2">Category Properties</th>
	</tr>
</thead>
<tbody class="row-hover">
	<tr class="row-2">
		<td class="column-1">ancestorCategories</td><td class="column-2">Set of categories which are higher in the catelog hierarchy than this category.</td>
	</tr>
	<tr class="row-3">
		<td class="column-1">childCategories</td><td class="column-2">List of all Categories which comes under this Category.</td>
	</tr>
	<tr class="row-4">
		<td class="column-1">childProducts</td><td class="column-2">List of all products that are children of the category.</td>
	</tr>
	<tr class="row-5">
		<td class="column-1">creationDate</td><td class="column-2">The date on which the Category was created.</td>
	</tr>
	<tr class="row-6">
		<td class="column-1">displayName</td><td class="column-2">Is the name ACC displays for the category.</td>
	</tr>
	<tr class="row-7">
		<td class="column-1">endDate		</td><td class="column-2">Date the category will no longer be available.</td>
	</tr>
	<tr class="row-8">
		<td class="column-1">parentCategory 	</td><td class="column-2">Specifies the default parent category for the category .</td>
	</tr>
	<tr class="row-9">
		<td class="column-1">root		</td><td class="column-2">Specifies whether this category is the starting of the hierarchy, its a boolean value.</td>
	</tr>
	<tr class="row-10">
		<td colspan="2" class="column-1 colspan-2">Product Properties:</td>
	</tr>
	<tr class="row-11">
		<td class="column-1">ancestorCategories 	</td><td class="column-2">Generated Set of categories that are higher in the catalog hierarchy than the product. </td>
	</tr>
	<tr class="row-12">
		<td class="column-1">childSKUs 		</td><td class="column-2">List of all SKUs that are children of the product. </td>
	</tr>
	<tr class="row-13">
		<td class="column-1">creationDate 	</td><td class="column-2">Date on which the product was created. </td>
	</tr>
	<tr class="row-14">
		<td class="column-1">description 	</td><td class="column-2">Descriptive text for display with the product. </td>
	</tr>
	<tr class="row-15">
		<td class="column-1">displayName 	</td><td class="column-2">Product name displayed by the ACC. </td>
	</tr>
	<tr class="row-16">
		<td class="column-1">endDate 		 </td><td class="column-2">Date the product will no longer be available. </td>
	</tr>
	<tr class="row-17">
		<td class="column-1">parentCategory 	</td><td class="column-2">Specifies the default parent category for the product. </td>
	</tr>
</tbody>
</table>
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/tech-talk/brief-note-on-ecommerce-catalogs.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ForEach Droplet &amp; its usage in DSP</title>
		<link>http://www.three2tango.com/techcorner/atg-java/foreach-droplet-its-usage-in-dsp.html/</link>
		<comments>http://www.three2tango.com/techcorner/atg-java/foreach-droplet-its-usage-in-dsp.html/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 12:07:10 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[ATG]]></category>
		<category><![CDATA[ATG framework]]></category>
		<category><![CDATA[ATG servlet bean]]></category>
		<category><![CDATA[ATG technology]]></category>
		<category><![CDATA[Dsp]]></category>
		<category><![CDATA[DSP Tag library]]></category>
		<category><![CDATA[dsp:droplet]]></category>
		<category><![CDATA[forEach droplet]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=4431</guid>
		<description><![CDATA[Dynamically generating HTML from a java object is a very common requirement for most applications. The droplet tag will help us in this by embedding the ATG servlet beans. The output of the ATG servlet beans is included in the HTML page. In this article our prime focus will be on a simple  ATG Out of the  Box servlet bean.
DSP:DROPLET tag: helps you invoke a servlet bean from a JSP page. The programming logic will be encapsulated in a java class(bean) which is used in the jsp.
ForEach Droplet: (&#8220;atg.droplet.ForEach&#8221; is ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Dynamically generating HTML from a java object is a very common requirement for most applications. The <strong>droplet tag</strong> will help us in this by embedding the ATG servlet beans. The output of the ATG servlet beans is included in the HTML page. In this article our prime focus will be on a simple  ATG Out of the  Box servlet bean.</p>
<p style="text-align: justify;"><strong>DSP:DROPLET tag:</strong> helps you invoke a servlet bean from a JSP page. The programming logic will be encapsulated in a java class(bean) which is used in the jsp.</p>
<p style="text-align: justify;"><strong>ForEach Droplet:</strong> (&#8220;atg.droplet.ForEach&#8221; is the class, Component is &#8220;atg/dynamo/droplet/ForEach&#8221;) help us to iterate through the elements of an array which we specify. The droplet helps us to specify the HTML before and after the array processing also to specify the HTML if the array is empty.</p>
<p><strong>Example:</strong></p>
<pre name="code" language="C#">&lt;dsp:droplet name="/atg/dynamo/droplet/ForEach"&gt;
  &lt;dsp:param name="array"  bean="/Employee.technologies"/&gt;
  &lt;dsp:oparam name="outputStart"&gt;
    &lt;p&gt;Employee and corresponding technologies&lt;/p&gt;
  &lt;/dsp:oparam&gt;
  &lt;dsp:oparam name="output"&gt;
    &lt;li&gt;&lt;dsp:valueof param="element"&gt;&lt;/dsp:valueof&gt;&lt;/li&gt;
  &lt;/dsp:oparam&gt;
  &lt;dsp:oparam name="outputEnd"&gt;
    &lt;p&gt;List finished&lt;/p&gt;
  &lt;/dsp:oparm&gt;
&lt;/dsp:droplet&gt;</pre>
<p style="text-align: justify;">Here &#8220;Employee&#8221; is a bean and &#8220;technologies&#8221; is returning a set of values(various technlogies the particular employee know).Say atg,java,jsp,javascripts.<br />
<strong>The output will be like:</strong><br />
Employee and corresponding technologies<br />
atg<br />
java<br />
jsp<br />
javascripts<br />
List finished</p>
<p><strong>INPUT PARAMETERs in the droplet:</strong><br />
<strong>1.   array:</strong> parameter can be a collection, enumeration, Iterator, map or array.<br />
<strong>2.  sortProperties</strong><br />
This is an optional parameter and holds a string that specifies the order the items in the array are rendered.<br />
A + and &#8211; will sort the properties in acsending and descending order respectively. The Syntax varies depending on the type of item in the array,<br />
<strong>-</strong> If its a JavaBean specify the sortProperties in a comma seperated list of property names.<br />
<strong>-</strong> If the array constitutes a Strings, numbers or dates; just mention a + or -<br />
<strong>-</strong> While sorting values of a map and we have to sort according to the key, give &#8220;_key&#8221; along with +/- to indicate the sort order.<br />
<strong>Eg: (in the above order)</strong></p>
<pre name="code" language="C#">&lt;dsp:param name="sortProperties" values="+name, - age"/&gt; (This will sort first by an alphabetical ordering of name and then by descending order of age.)
&lt;dsp:param name="sortProperties" values="+"/&gt;
&lt;dsp:param name="sortProperties" values="+_key"/&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/atg-java/foreach-droplet-its-usage-in-dsp.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DSP Tags continued</title>
		<link>http://www.three2tango.com/techcorner/dsp-tags-continued.html/</link>
		<comments>http://www.three2tango.com/techcorner/dsp-tags-continued.html/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 11:17:33 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[Tech Corner]]></category>
		<category><![CDATA[ATG]]></category>
		<category><![CDATA[ATG framework]]></category>
		<category><![CDATA[ATG technology]]></category>
		<category><![CDATA[Dsp]]></category>
		<category><![CDATA[dsp tag converters]]></category>
		<category><![CDATA[DSP Tag library]]></category>
		<category><![CDATA[DSP tags]]></category>
		<category><![CDATA[dsp:include]]></category>
		<category><![CDATA[dsp:setvalue]]></category>
		<category><![CDATA[dsp:valueof]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=4413</guid>
		<description><![CDATA[The previous article on DSP tags was on June 2010, almost an year back and since then i had very less chances using dsps.Now again i am back into the jsp and dsp. So here in this article i will try to explain few more tags and there usage. Come back to me for any doubts i can help you.
DSP PARAM tag: for input parameter.
This tag holds an input parameter with name and value, which are made available to the parent servlet bean(Eg: for servlet beans atg.droplet.ForEach,atg.droplet.Switch,atg.droplet.Format,atg.droplet.IsEmpty). Two attributes, name ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">The previous article on DSP tags was on June 2010, almost an year back and since then i had very less chances using dsps.Now again i am back into the jsp and dsp. So here in this article i will try to explain few more tags and there usage. Come back to me for any doubts i can help you.<br />
<strong>DSP PARAM tag:</strong> for input parameter.<br />
This tag holds an input parameter with name and value, which are made available to the parent servlet bean(Eg: for servlet beans atg.droplet.ForEach,atg.droplet.Switch,atg.droplet.Format,atg.droplet.IsEmpty). Two attributes, name and bean/value/param are mandatory.The parameter name attribute identifies an input parameter. &#8220;Parameter Value&#8221; is the value to the particular parameter declared, this is given using BEAN/VALUE/PARAM.</p>
<pre name="code" language="C#">&lt;dsp:param name="color" bean="/myProfile/Color.favoriteColor"/&gt;
&lt;dsp:param name="color" value="Blue"/&gt;
&lt;dsp:param name="color" param="favColor"/&gt;</pre>
<p><strong>DSP VALUEOF tag </strong>: renders a value in a bean property or page parameter. &#8220;BEAN&#8221;, &#8220;PARAM&#8221;,&#8221;VALUE&#8221; are the attributes used with the tag. Of these three &#8220;BEAN&#8221; or  &#8220;PARAM&#8221; is mandatory<br />
<strong>Sample usage:</strong></p>
<pre name="code" language="C#">&lt;dsp:page&gt;
&lt;dsp:importbean bean="/sample/Employee"/&gt;
&lt;html&gt;
&lt;body&gt;
Name: &lt;dsp:valueof bean="Employee.name"/&gt;
Age: &lt;dsp:valueof bean="Employee.age"/&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/dsp:page&gt;</pre>
<p>Here valueof will help render the value of employee from the &#8220;Employee&#8221; imported in the beginning.To include a default value, remove the final back slash, add an end tag (&lt;/dsp:valueof&gt;), and insert your default value between that start tag and end tag.<br />
<em>&lt;dsp:valueof bean=&#8221;Employee.name&#8221;&gt;Default Value&lt;/dsp:valueof&gt;</em></p>
<p style="text-align: justify;"><strong>DSP SETVALUE tag: </strong>helps the page developer to set a bean property or page parameter with a constant value, value copied from another bean property, param value; &#8220;BEAN&#8221; or  &#8220;PARAM&#8221; is mandatory attributes with the setvalue tag, these are destination values. The source attributes are BEANVALUE, PARAMVALUE and VALUE. If no source value is specified a NULL is assigned to destination.<br />
Eg:<br />
<strong>A fixed value :</strong></p>
<p style="text-align: justify;">&lt;dsp:setvalue bean=“Employee.Designation” value=“analyst” /&gt;<br />
<strong>A component property value :</strong></p>
<p style="text-align: justify;">&lt;dsp:setvalue bean=“Employee.Designation” beanvalue=“/EmployeeDetails/EmployeeId.Designation” /&gt;<br />
<strong>A parameter value :</strong></p>
<p style="text-align: justify;">&lt;dsp:setvalue bean=“Employee.Designation” paramvalue=“empDesig” /&gt;<br />
&#8220;empDesig&#8221; : is a page parameter previously set to some value, this will be copied to &#8220;Designation&#8221; property.</p>
<p><strong>DSP INCLUDE tag:</strong> lets you include a page fragment inside a JSP file.It also helps to pass page parameters from the parent page to the included page. SRC or PAGE are the required attributes.One must use one of these attributes to specify which page needs to be included.</p>
<p><strong>Tag Converters:</strong><br />
Allows the formatting of the tags.They let you specify how data in forms is interpreted and displayed, and to control when exceptions are thrown. Various tag converters are date, required,maxdate,mindate,nullable,number etc. The converters can be used in two different ways:<br />
<strong>Explicit Converter:</strong><br />
&lt;dsp:valueof bean=&#8221;Employee.DOB&#8221; converter=&#8221;date&#8221; date=&#8221;M/dd/yyyy&#8221;/&gt;<br />
Here the &#8220;converter&#8221; specifies the type of attribute later date=&#8221;M/dd/yyyy&#8221; specifies the format in which the bean value to be rendered.Output will look like 5/08/1986. Instead if we give date=&#8221;MMM dd,yyyy&#8221;, the output will be MAY 08,1986.<br />
<strong>Implicit Converter:</strong><br />
Avoids the &#8220;converter&#8221; attribute and directly gives the format.<br />
&lt;dsp:valueof  bean=“Employee.DOB” date=“M dd yyyy”/&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/dsp-tags-continued.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interview Questions:Basic ATG</title>
		<link>http://www.three2tango.com/techcorner/atg-java/interview-questionsbasic-atg.html/</link>
		<comments>http://www.three2tango.com/techcorner/atg-java/interview-questionsbasic-atg.html/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 12:28:04 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[ATG]]></category>
		<category><![CDATA[ATG basic]]></category>
		<category><![CDATA[ATG interview questions]]></category>
		<category><![CDATA[ATG Nucleus definition]]></category>
		<category><![CDATA[ATG technology]]></category>
		<category><![CDATA[Inter]]></category>
		<category><![CDATA[technical interview questions]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=4080</guid>
		<description><![CDATA[Here are a few interview questions i came across recently.Though Very basic questions this might help the reader in someway. Don&#8217;t think you will come across such simple questions if you are aiming a big ATG based project. But surely these questions will throw some light into your understanding in ATG Framework. All the answers are two liners which is just the first line of thought to the question.
 1.  What is atg Nucleus??
Nucleus is a ATG container for components. It creates and initializes component instances on request. It manages ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Here are a few interview questions i came across recently.Though Very basic questions this might help the reader in someway. Don&#8217;t think you will come across such simple questions if you are aiming a big ATG based project. But surely these questions will throw some light into your understanding in ATG Framework. All the answers are two liners which is just the first line of thought to the question.</p>
<p style="text-align: justify;"><strong> 1.  What is atg Nucleus??</strong></p>
<p style="text-align: justify;">Nucleus is a ATG container for components. It creates and initializes component instances on request. It manages the components scope. It locates the properties file for the component and through that it reaches the class file of the component. Nucleus components are Java Objects each with an associated .properties file which store configuration values.<strong></strong></p>
<p style="text-align: justify;"><strong> 2 . What is MANIFEST file??</strong></p>
<p style="text-align: justify;">Applications often depend on other modules, these dependencies are declared in this file.The file name is MANIFEST.MF and resides in the META_INF directory. It specifies ATG-Class-Path,ATG-Required, ATG-Config-Path etc</p>
<p style="text-align: justify;"><strong> 3. How a component is Instantiated ??</strong><br />
One can start or stop components manually using an ACC.</p>
<p style="text-align: justify;">OR.</p>
<p style="text-align: justify;">We can instruct nucleus to start a component during server startup, this is done by modifying the &#8220;Initial.properties&#8221; file.Add the component name to the &#8220;initialServices&#8221; property inside the Initial.properties file.</p>
<p style="text-align: justify;"><strong> 4. Differentiate Global,Request &amp; session scopes.</strong></p>
<p style="text-align: justify;"><strong>Global:</strong> components are accessible from all other components.Not available across ATG servers, each server has its own copy of global scoped component.</p>
<p style="text-align: justify;"><strong> Session:</strong> means every user of the application gets a separate copy of the component, and component exists for duration of the user&#8217;s session.</p>
<p style="text-align: justify;"><strong>Request :</strong> A component is called in for returning the values of a search, so each time a search is triggered an object instantiation happens and its gone when the result page is closed.Which means the scope of the search component is request.Eg:-formhandlers normally have a request scope.<br />
<strong> </strong></p>
<p style="text-align: justify;"><strong> 5. What is a context root?</strong><br />
Is a URL mounting point of the web application. It decides what URL site site visitors will enter to get to the site. Eg: http://www.atg.com/&#8221;context-root&#8221;<br />
&#8220;context-root&#8221; is specified in the &#8220;application.xml&#8221; file in the &#8220;j2ee-apps&#8221; folder.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/atg-java/interview-questionsbasic-atg.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache POI Utility for MS Excel Parsing</title>
		<link>http://www.three2tango.com/techcorner/atg-java/apache-poi-utility-for-ms-excel-parsing.html/</link>
		<comments>http://www.three2tango.com/techcorner/atg-java/apache-poi-utility-for-ms-excel-parsing.html/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 12:59:09 +0000</pubDate>
		<dc:creator>LG</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Excel parsing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java code to read an MS excel]]></category>
		<category><![CDATA[POI HSSF]]></category>
		<category><![CDATA[POI utility]]></category>
		<category><![CDATA[Reading cells from an excel]]></category>
		<category><![CDATA[XSSF]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=3966</guid>
		<description><![CDATA[          Aim of the article is to explain how to parse a Microsoft Excel file. The utility used for this purpose is POI utility, an open source utility by apache. In apache mission statement they say-
&#8221; The Apache POI Project&#8217;s mission is to create and maintain Java APIs for manipulating various file formats based upon the Office Open XML standards (OOXML) and Microsoft&#8217;s OLE 2 Compound Document format (OLE2). In short,you can read and write MS Excel files using Java.&#8221;
HSSF is used in here for the excel reading and writing, ...]]></description>
			<content:encoded><![CDATA[<p style="TEXT-ALIGN: justify">          Aim of the article is to explain how to parse a Microsoft Excel file. The utility used for this purpose is POI utility, an open source utility by apache. In apache mission statement they say-</p>
<blockquote><p>&#8221; The Apache POI Project&#8217;s mission is to create and maintain Java APIs for manipulating various file formats based upon the Office Open XML standards (OOXML) and Microsoft&#8217;s OLE 2 Compound Document format (OLE2). In short,you can read and write MS Excel files using Java.&#8221;</p></blockquote>
<p style="TEXT-ALIGN: justify">HSSF is used in here for the excel reading and writing, it is a pure Java implementation of the Excel &#8217;97-2003(The example here is using hssf package). XSSF is java implementation of Excel-&#8217;07(.xlsx format). A funny thing about HSSF is that its the acronym of Horrible Spread Sheet Format. The package used is &#8220;org.apache.poi.hssf.usermodel &#8220;, it contains classes to generate excel documents. HSSFWorkbook, HSSFSheet  &amp; HSSFRow classes will help you in your task. For the above classes to be available you need to add the jar file into the project folder.The JAR we used is poi.jar. The <a href="#last">code below</a> reads an excel and prints each cell of the excel. The functionality is written in the main() sothat you can try it out just by copying the class. <a href="#bottom">Picture</a> shows a sample excel file i used and also some methods.<br />
<a name="bottom"></a></p>

<a href="http://www.three2tango.com/wp-content/gallery/loy/excelFormat.JPG" title="" class="shutterset_singlepic1041" >
	<img class="ngg-singlepic ngg-center" src="http://www.three2tango.com/wp-content/gallery/cache/1041__320x240_excelFormat.JPG" alt="excelFormat.JPG" title="excelFormat.JPG" />
</a>

<p><strong>Note:-</strong>             </p>
<ul>
<li>Make sure you have the excel in the location mentioned in the code and also in the specified format.</li>
<li>If &#8220;row.getCell()&#8221; is trying to read a cell with no value it will return a &#8220;java.lang.NullPointerException&#8221;. So either columns should not be empty or modify code accordingly for this sample program to be run.</li>
</ul>
<p><a name="last"></a><br />
<strong>SAMPLEeXCELpARSING.java </strong><a name="last"></a></p>
<pre name="code" language="C#">import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class SampleExcelParsing
{
	@SuppressWarnings("unchecked")
	public static void main(String[] argS)
	{
		File f = null;
		FileInputStream fis = null;
		// Short variable to get the column number.row.getCell() method takes a
		// short variable as input.
		short column1 = 0;
		short column2 = 1;
		short column3 = 2 ;
		try{

			f = new File("E:\\FilesforTesting\\T3Test.xls");
			fis = new FileInputStream(f);
			HSSFWorkbook wb = new HSSFWorkbook(fis);
			HSSFSheet sheet = wb.getSheetAt(0);
			Iterator rows = sheet.rowIterator();
			StringBuffer s = new StringBuffer();
//			 To skip first row.
			HSSFRow row = rows.next();
			while(rows.hasNext()){
				row = rows.next();
				String columnOwner = row.getCell(column1).toString();
				String columnCategory = row.getCell(column2).toString();
				String columnLink = row.getCell(column3).toString();
				s.append(columnOwner)
				.append("..")
				.append(columnCategory)
				.append("..")
				.append(columnLink)
				.append("\n");
			}
			fis.close();
			System.out.print(s);

		}catch(Exception ex)
		{System.out.println("Exption...."+ex);}

	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/atg-java/apache-poi-utility-for-ms-excel-parsing.html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XMLDOM Parser:ATG</title>
		<link>http://www.three2tango.com/techcorner/atg-java/xmldom-parseratg.html/</link>
		<comments>http://www.three2tango.com/techcorner/atg-java/xmldom-parseratg.html/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 13:20:23 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[ATG]]></category>
		<category><![CDATA[ATG and java relation]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xml parsing]]></category>
		<category><![CDATA[XML serialization of Objects in .NET]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=3923</guid>
		<description><![CDATA[The code below explains how to get the value of a particular node from an XML. Dont forget to take a look into the imports in the class as the XMLToDOMParser and ApacheXMLToolsFactory are two very important packages you can&#8217;t forget for this code to work. &#8220;xPath&#8221; gives the node we have to find. The string variable &#8220;xPath&#8221; is defined in a particular way. The path in the eg: file(testParsingXML.java) will lead you to the node named &#8220;category&#8220;. Here is another example to know how to write the xPath:=  /root/son[@name=\"firstchild\"]/grandson[@name=\"gs1\"]
This ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">The <a href='#last'>code below</a> explains how to get the value of a particular node from an XML. Dont forget to take a look into the imports in the class as the <strong>XMLToDOMParser</strong> and <strong>ApacheXMLToolsFactory</strong> are two very important packages you can&#8217;t forget for this code to work. &#8220;<strong>xPath</strong>&#8221; gives the node we have to find. The string variable &#8220;xPath&#8221; is defined in a particular way. The path in the eg: file(testParsingXML.java) will lead you to the node named &#8220;<strong>category</strong>&#8220;. Here is another example to know how to write the xPath:=  <strong>/root/son[@name=\"firstchild\"]/grandson[@name=\"gs1\"]</strong></p>
<p style="text-align: justify;">This xpath will lead you to grandson node. All other things in the code are self explanatory. An xml specified in the code is also provided., make sure  you copy the <a href="#end">xml(test.xml)</a> in the same path mentioned in the java code. Hope the code snippet helps. This code will work fine within an ATG environment. I tried successfully.</p>
<p style="text-align: justify;"><strong>Drawback:</strong></p>
<p style="text-align: justify;">This code will definitely help you find the value of known node, but wont help you in finding a dynamic node.Which means you need to specify the node name to get the value.Eg: you can&#8217;t read all <strong>&#8220;category&#8221;</strong> nodes of  <strong>&#8220;granddaughter&#8221;</strong> just by specifying xpath till &#8220;granddaughter&#8221;.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p><strong>1 .     &#8220;testParsingXML.java&#8221;</strong></p>
<p><a name="last"></a></p>
<pre name="code" language="C#">import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import atg.xml.tools.XMLToDOMParser;
import atg.xml.tools.apache.ApacheXMLToolsFactory;

public class testParsingXML{
public static void main(String[] argS){
		XMLToDOMParser xtdParser;
		ApacheXMLToolsFactory axtFactory = new ApacheXMLToolsFactory();
		xtdParser = axtFactory.createXMLToDOMParser();
		File xmlFile = null;
		FileInputStream fis= null;
		xmlFile = new File("E:\\test.xml");

		try {
			fis = new FileInputStream(xmlFile);	 // Should wrap with try catch block
			byte fileContent[] = new byte[(int)xmlFile.length()];
			fis.read(fileContent); 	// Should wrap with try catch block
			ByteArrayInputStream bis = new ByteArrayInputStream(fileContent);
			Document document = xtdParser.parse(bis ,false ,null);
			String xPath ="/root/daughter[@name=\"secondchild\"]/granddaughter[@name=\"three2tango\"]/category[@name=\"c1\"]";
			Enumeration nodes = axtFactory.createXSLQueryEngine().select(xPath, document, null);
			Node node = nodes.nextElement();
			if (node.hasAttributes())
			{
			NamedNodeMap attributes = node.getAttributes();
			System.out.println(attributes.item(1));
			System.out.println(attributes.getNamedItem("name").getTextContent());
			System.out.println(attributes.getNamedItem("value").getTextContent());
			}
		} catch (FileNotFoundException e) {
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}</pre>
<p><strong>2. &#8220;test.xml&#8221;</strong><a name="end"></a></p>
<pre name="code" language="C#">     &lt;root&gt;
	&lt;son name="firstchild"&gt;
		&lt;grandson name="gs1" value="dileep"/&gt;
		&lt;grandson name="gs2" value="lloyd"/&gt;
		&lt;grandson name="gs3" value="vivek"/&gt;
	&lt;/son&gt;
	&lt;daughter name="secondchild"&gt;
		&lt;granddaughter name="three2tango"&gt;
			&lt;category name="c1" value="java"/&gt;
			&lt;category name="c2" value="atg"/&gt;
		&lt;/granddaughter&gt;
	&lt;/daughter&gt;
&lt;/root&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/atg-java/xmldom-parseratg.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing a Decompiler plugin(JAD) for Eclipse</title>
		<link>http://www.three2tango.com/techcorner/atg-java/installing-a-decompiler-pluginjad-for-eclipse.html/</link>
		<comments>http://www.three2tango.com/techcorner/atg-java/installing-a-decompiler-pluginjad-for-eclipse.html/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 21:58:35 +0000</pubDate>
		<dc:creator>LG</dc:creator>
				<category><![CDATA[ATG & Java]]></category>
		<category><![CDATA[ATG Debug help]]></category>
		<category><![CDATA[ATG Helping tools]]></category>
		<category><![CDATA[Eclipse Decompiler]]></category>
		<category><![CDATA[How to decompile a java byte code]]></category>
		<category><![CDATA[JAD]]></category>
		<category><![CDATA[JAD eclipse]]></category>
		<category><![CDATA[JADClipse]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.three2tango.com/?p=3885</guid>
		<description><![CDATA[A decompiler does the reverse of a compiler, a lowel byte code into a high level language.Java decompiler will help you decompile a byte code file so that you can see the java code.
Steps in installing JADClipse(An eclipse plugin for decompiling)
1. Create a folder parallel to the eclipse installation named &#8220;JAD&#8221;, place the &#8220;jad.exe&#8221; file inside the folder.
2. Run the &#8220;jad.exe&#8221;.
3. Copy the jar file to the plugins folder in eclipse.(&#8220;jadclipse_3.2.2.jar&#8221;)
4. Restart your eclipse.
5.Go to window &#8211;&#62;preferences&#8211;&#62;Java&#8211;&#62;jadeclipse. (Check the Picture below)

6.Set the &#8220;Path to Decompiler&#8221; as your &#8220;jad.exe&#8221; location.
7.Set the ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">A decompiler does the reverse of a compiler, a lowel byte code into a high level language.Java decompiler will help you decompile a byte code file so that you can see the java code.<br />
<strong>Steps in installing JADClipse(An eclipse plugin for decompiling)</strong><br />
1. Create a folder parallel to the eclipse installation named <strong>&#8220;JAD&#8221;</strong>, place the <strong>&#8220;jad.exe&#8221;</strong> file inside the folder.<br />
2. Run the &#8220;<strong>jad.exe&#8221;</strong>.<br />
3. Copy the jar file to the plugins folder in eclipse.(<strong>&#8220;jadclipse_3.2.2.jar&#8221;</strong>)<br />
4. Restart your eclipse.<br />
5.Go to <strong>window &#8211;&gt;preferences&#8211;&gt;Java&#8211;&gt;jadeclipse</strong>. (Check the Picture below)</p>
<p style="text-align: justify;">
<a href="http://www.three2tango.com/wp-content/gallery/loy/jadInstall.JPG" title="" class="shutterset_singlepic1027" >
	<img class="ngg-singlepic ngg-center" src="http://www.three2tango.com/wp-content/gallery/cache/1027_watermark_250x250_jadInstall.JPG" alt="jadInstall.JPG" title="jadInstall.JPG" />
</a>
<br />
6.Set the <strong>&#8220;Path to Decompiler&#8221;</strong> as your <strong>&#8220;jad.exe&#8221;</strong> location.<br />
7.Set the <strong>&#8220;Directory for temperary files &#8220;</strong> as <strong>&#8220;D\.jadeclipse&#8221;</strong><br />
8. Restart eclipse once more to use JAD.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">The decompiler will come handy when you are moving back and forth through ATG Out of the Box components. If JAD is there OOTB components and can be read and understood easily. <span style="color: #0000ff;"><strong><a href="http://www.three2tango.com/JAD_Required_Files.zip">Click ToDownload JAD Utility</a></strong></span>.</p>
<p style="text-align: justify;"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.three2tango.com/techcorner/atg-java/installing-a-decompiler-pluginjad-for-eclipse.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

