<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;
		Component or Subproject Lead&nbsp;-&nbsp;Chuck&nbsp;Bridgham</title>
</head>
<body>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<tbody>
<tr>
<td width="60%" align="left"><font class="indextop">chuck&nbsp;bridgham&nbsp;@ eclipse wtp</font>
<br>
<font class="indexsub">
			Eclipse Web Tool Platform Project Team -&nbsp;
		Component or Subproject Lead&nbsp;-&nbsp;Chuck&nbsp;Bridgham</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="279" width="200" src="photos/large/chuck-bridgham.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()">cbridgha&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 = "cbridgha";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">
			Chuck is a lead and committer for the J2EE Tools components
			of WTP.
		</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">
<p>
		Chuck is the development manager of the Rational J2EE Tools team
		at the IBM Raleigh Lab. This team is responsible for the core
		tooling involved with creating, editing, and assembling J2EE
		artifacts (EJB/WAR/EAR...). This team will also contribute many
		of the same core technologies to WTP including Project
		Navigator, Validation Framework, and core J2EE model/resources.
		Chuck has spent the last 10 years at IBM on several projects
		focusing on object persistence and mapping (IBM Smalltalk/VA
		Java/Eclipse).
	</p>
</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#Chuck-Bridgham">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#Chuck-Bridgham">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>
