<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../..//default_style.css" type="text/css">
<link rel="stylesheet" href="../..//webtools/wtp.css" type="text/css">
<title>
			Eclipse Web Tool Platform Project Team -&nbsp;
		Contributor&nbsp;-&nbsp;Neeraj&nbsp;Agrawal</title>
</head>
<body>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<tbody>
<tr>
<td width="60%" align="left"><font class="indextop">neeraj&nbsp;agrawal&nbsp;@ eclipse wtp</font>
<br>
<font class="indexsub">
			Eclipse Web Tool Platform Project Team -&nbsp;
		Contributor&nbsp;-&nbsp;Neeraj&nbsp;Agrawal</font></td><td width="40%"><img width="207" hspace="50" height="129" align="middle" src="../..//webtools/images/wtplogosmall.jpg"></td>
</tr>
</tbody>
</table>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<col width="16">
<col width="*">
<tbody>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top"><img height="250" width="200" src="photos/large/no-picture.png"></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><b>Affiliation:&nbsp;</b><a target="_top" href="http://www.ibm.com">IBM</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><b>E-mail:&nbsp;</b><script language="JavaScript">var protocol = "mailto";
							function contact() { window.open(protocol +
							":" + user + "@" + server, "_self"); }
						</script><a href="javascript:contact()">nagrawal&nbsp;at&nbsp;us&nbsp;dot&nbsp;ibm&nbsp;dot&nbsp;com</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><b>Home page:&nbsp;</b>n/a</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top"><script language="JavaScript">var user = "nagrawal";var server = "us.ibm.com";
					
var bugzilla = "https://bugs.eclipse.org/bugs/buglist.cgi?classification=WebTools";

function bugsIReported() { 
	var query_string = "&emailreporter1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" +
	server, "_top"); 
}

function bugsIOwn() { 
	var query_string = "&emailassigned_to1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToConfirm() { 
	var query_string = "&bug_status=UNCONFIRMED&emailassigned_to1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToResolve() { 
	var query_string = "&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToVerify() { 
	var query_string = "&bug_status=RESOLVED&emailreporter1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToClose() { 
	var query_string = "&bug_status=VERIFIED&emailassigned_to1=1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}
					
				</script></td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Bugs</font></b></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsIReported()">Bugs I Reported</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToVerify()">
					Bugs I Need to Verify
				</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsIOwn()">Bugs I Own</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToConfirm()">
					Bugs I Need to Confirm
				</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToResolve()">
					Bugs I Need to Resolve
				</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToClose()">
					Bugs I Need to Close
				</a></td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Contribution</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p xmlns:person="http://eclipse.org/webtools/person" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			Neeraj has contributed heavily to the using and providing
			feedback on the Flexible Project virtual path API while
			implementing alot of the component creation operations and
			wizards.
		</p>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Biography</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="contributors.html#Neeraj-Agrawal">Contributor Activity</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="index.html#Neeraj-Agrawal">Contributor Index</a></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
            Please see our
			<a target="_top" href="http://eclipse.org/legal/privacy.html">privacy policy</a>
            and website
			<a target="_top" href="http://eclipse.org/legal/termsofuse.html">terms of use</a>. 
			For problems with the eclipse.org site, please contact the
            <a href="mailto:webmaster@eclipse.org">webmaster</a>
            or read the
			<a target="_top" href="http://eclipse.org/webmaster/index.html">webmaster FAQ</a>
            for answers to common questions!
        </p>
</td>
</tr>
</tbody>
</table>
</body>
</html>
