You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(16) |
Sep
(10) |
Oct
(1) |
Nov
(2) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(148) |
Feb
(80) |
Mar
(41) |
Apr
(85) |
May
(247) |
Jun
(345) |
Jul
(237) |
Aug
(241) |
Sep
(439) |
Oct
(321) |
Nov
(413) |
Dec
(302) |
2004 |
Jan
(143) |
Feb
(147) |
Mar
(200) |
Apr
(107) |
May
(15) |
Jun
(36) |
Jul
(11) |
Aug
(1) |
Sep
(36) |
Oct
|
Nov
(6) |
Dec
|
2005 |
Jan
|
Feb
|
Mar
|
Apr
(115) |
May
(74) |
Jun
(215) |
Jul
(82) |
Aug
(47) |
Sep
(32) |
Oct
(8) |
Nov
(70) |
Dec
(24) |
2006 |
Jan
|
Feb
(1) |
Mar
(4) |
Apr
(2) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <mr...@us...> - 2003-02-27 07:15:33
|
Update of /cvsroot/struts/struts-resume/lib/hibernate-2.0-beta3/lib In directory sc8-pr-cvs1:/tmp/cvs-serv18761/lib Log Message: Directory /cvsroot/struts/struts-resume/lib/hibernate-2.0-beta3/lib added to the repository |
From: <mr...@us...> - 2003-02-27 07:15:25
|
Update of /cvsroot/struts/struts-resume/lib/hibernate-2.0-beta3 In directory sc8-pr-cvs1:/tmp/cvs-serv18717/hibernate-2.0-beta3 Log Message: Directory /cvsroot/struts/struts-resume/lib/hibernate-2.0-beta3 added to the repository |
From: <mr...@us...> - 2003-02-27 07:14:41
|
Update of /cvsroot/struts/struts-resume/lib/strutstest-1.9.5 In directory sc8-pr-cvs1:/tmp/cvs-serv18529 Added Files: strutstest-1.9.5.jar Log Message: --- NEW FILE: strutstest-1.9.5.jar --- (This appears to be a binary file; contents omitted.) |
From: <mr...@us...> - 2003-02-27 07:14:25
|
Update of /cvsroot/struts/struts-resume/lib/strutstest-1.9.5 In directory sc8-pr-cvs1:/tmp/cvs-serv18463/strutstest-1.9.5 Log Message: Directory /cvsroot/struts/struts-resume/lib/strutstest-1.9.5 added to the repository |
From: <mr...@us...> - 2003-02-26 05:31:34
|
Update of /cvsroot/struts/struts-resume In directory sc8-pr-cvs1:/tmp/cvs-serv8254 Added Files: struts-resume.version Log Message: added version file for automated building with Anthill --- NEW FILE: struts-resume.version --- 0.6.0 |
From: <mr...@us...> - 2003-01-08 06:02:48
|
Update of /cvsroot/struts/struts-resume/web/styles In directory sc8-pr-cvs1:/tmp/cvs-serv464 Added Files: default.css menuExpandable.css messages.css Log Message: --- NEW FILE: default.css --- @import url(messages.css); a { color: #f93; font-weight: 600; } a:link {color: red;} a:visited {color: orange;} a:hover { background-color: #eee; color: green; text-decoration: underline overline; } /* 0 means zero regardless of measurement */ body { background: #FFFFFF; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin: 0; padding: 0; } div#content { margin: 0px 210px 50px 10px; padding: 10px; text-align: left; } div#content>p {margin:10px 0px} div#footer { background: transparent; border-top: 1px solid #C0C0C0; color: #666666; font-size: 0.9em; margin-top: 30px; padding: 5px 0px 10px 20px; text-align: left; } div#footer a { background: transparent; color: #666666; } div#footer a:hover { background: transparent; border-bottom: 1px dashed #FFA500; color: #000000; text-decoration: none; } div#footer a:active { background: transparent; color: #0000FF; text-decoration: overline underline; } div#header { margin: 50px 0px 10px 0px; padding: 17px 0px 5px 20px; /* For IE5/Win's benefit height = [correct height] + [top padding] + [top and bottom border widths] */ height: 33px; /* 14px + 17px + 2px = 33px */ border-style: solid; border-color: black; border-width: 1px 0px; /* top and bottom borders: 1px; left and right borders: 0px */ line-height: 11px; background-color: #eee; /* Here is the ugly brilliant hack that protects IE5/Win from its own stupidity. Thanks to Tantek Celik for the hack and to Eric Costello for publicizing it. IE5/Win incorrectly parses the "\"}"" value, prematurely closing the style declaration. The incorrect IE5/Win value is above, while the correct value is below. See http://glish.com/css/hacks.asp for details. */ voice-family: "\"}\""; voice-family: inherit; height:14px; /* the correct height */ } /* I've heard this called the "be nice to Opera 5" rule. Basically, it feeds correct length values to user agents that exhibit the parsing error exploited above yet get the CSS box model right and understand the CSS2 parent-child selector. ALWAYS include a "be nice to Opera 5" rule every time you use the Tantek Celik hack (above). */ body>#header {height: 14px;} div#loginTable { background: #EEEEEE; border: 1px solid #C0C0C0; color: inherit; margin: 10px 0px; padding: 5px; width: 400px; } div#menu { position: absolute; top: 100px; right: 20px; width: 172px; padding: 10px; background-color: #eee; border: 1px dashed #999; line-height: 17px; /* Again, the ugly brilliant hack. */ voice-family: "\"}\""; voice-family: inherit; width: 150px; } /* Again, "be nice to Opera 5". */ body>div#menu {width: 150px;} div#readme { background: #ffd; border: 1px solid silver; color: #008000; height: 300px; margin-top: 10px; overflow: auto; padding: 5px; width: 600px; } div#userStatus { position: absolute; right: 5px; top: 5px; font-size: .9em; height: 40px; line-height: 1.2; text-align: right; } div#validators { float: right; } div.separator { border-bottom: 1px solid orange; margin: 10px 0px; width: 300px; } div.standardsNote { display: none; } form, table { margin: 0; padding: 0; } h1 { color: #ccc; font-size: 28px; font-weight: 900; line-height: 28px; margin: 0px 0px 15px 0px; padding: 0px; } img.badge { border: 0px; height: 31px; margin-right: 5px; width: 88px; } p { font: 12px/20px; margin: 0px 0px 16px 0px; padding: 0px; } span.attention { background: transparent; color: #0000ff; } /* These are the styles for detail screen tables */ table.detail { margin-left: 10px; padding: 5px; } table.detail th { text-align: right; padding: 5px; } table.detail th.tallCell { vertical-align: top; } table.detail td { text-align: left; padding: 5px; } /* These are the styles for list screen tables */ table.list { margin: 10px; width: 400px; border-collapse: collapse; border: 1px solid #000; } table.list th { background: #eee; color: #000; padding: 3px; } table.list td { padding: 3px; } label { font-weight: bold; } th, td, pre,code { font-size: 12px; } ul.glassList { list-style: url(../images/aquadot.jpg) disc outside; vertical-align: top; line-height: 1.5; margin-left: 30px; } --- NEW FILE: menuExpandable.css --- @import url(global.css); @import url(notes.css); /* These id's are static, so keep the same names #menuDiv { background-color: #EEE; border: 1px dotted #000; color: #000; width: 203px; float: left; margin: 10px 10px 10px 20px; } */ #menuList { margin: 0px; padding: 10px 0px 10px 15px; } li.menubar { background: url(../images/plus.gif) no-repeat 0em 0.3em; font-size: 12px; line-height: 1.5em; list-style: none outside; } .menu, .submenu { display: none; margin-left: 15px; padding: 0px; } .menu li, .submenu li { background: url(../images/square.gif) no-repeat 0em 0.3em; list-style: none outside; } a.actuator { background-color: transparent; color: #000; font-size: 12px; padding-left: 15px; text-decoration: none; } a.actuator:hover { text-decoration: underline; } .menu li a, .submenu li a { background-color: transparent; color: #000; font-size: 12px; padding-left: 15px; text-decoration: none; } .menu li a:hover, submenu li a:hover { /*border-bottom: 1px dashed #000;*/ text-decoration: underline; } span.key { text-decoration: underline; } --- NEW FILE: messages.css --- /* This is the style for the informational messages presented to the user */ div.error { background: #ffc; border: 1px solid #c0c0c0; color: #f00; font-size: 0.9em; font-weight: bold; margin: 5px 5px 5px 0px; padding: 3px; text-align: left; vertical-align: bottom; } div.message { background: #FFFFCC; border: 1px solid #c0c0c0; color: #000000; font-size: 0.9em; font-weight: normal; margin: 5px 10px 5px 0px; padding: 3px; text-align: left; vertical-align: bottom; } div.message a { background: transparent; color: #0000FF; } div.message a:visited { background: transparent; color: #0000FF; } div.message a:hover { background: transparent; color: #008000; } div.message a:active { text-decoration: underline overline; } div.message img.icon { vertical-align: middle; } |
From: <mr...@us...> - 2003-01-08 06:02:35
|
Update of /cvsroot/struts/struts-resume/web/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv398 Added Files: global.js login.js menuExpandable.js validator.jsp Log Message: --- NEW FILE: global.js --- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } /* This function is used to change the style class of an element */ function swapClass(obj, newStyle) { obj.className = newStyle; } function isUndefined(value) { var undef; return value == undef; } /* Function for showing and hiding elements that use 'display:none' to hide */ function toggleDisplay(targetId) { if (document.getElementById) { target = document.getElementById(targetId); if (target.style.display == "none"){ target.style.display = ""; } else { target.style.display = "none"; } } } // toggle visibility function toggleVisibility(targetId) { if (document.getElementById) { target = document.getElementById(targetId); if (target.style.visibility == "hidden"){ target.style.visibility = "visible"; } else { target.style.visibility = "hidden"; } } } function checkAll(theForm) { // check all the checkboxes in the list for (var i=0;i<theForm.elements.length;i++) { var e = theForm.elements[i]; var eName = e.name; if (eName != 'allbox' && (e.type.indexOf("checkbox") == 0)) { e.checked = theForm.allbox.checked; } } } /* Function to clear a form of all it's values */ function clearForm(frmObj) { for (var i = 0; i < frmObj.length; i++) { var element = frmObj.elements[i]; if(element.type.indexOf("text") == 0 || element.type.indexOf("password") == 0) { element.value=""; } else if (element.type.indexOf("radio") == 0) { element.checked=false; } else if (element.type.indexOf("checkbox") == 0) { element.checked = false; } else if (element.type.indexOf("select") == 0) { for(var j = 0; j < element.length ; j++) { element.options[j].selected=false; } element.options[0].selected=true; } } } /* Function to get a form's values in a string */ function getFormAsString(frmObj) { var query = ""; for (var i = 0; i < frmObj.length; i++) { var element = frmObj.elements[i]; if (element.type.indexOf("checkbox") == 0 || element.type.indexOf("radio") == 0) { if (element.checked) { query += element.name + '=' + escape(element.value) + "&"; } } else if (element.type.indexOf("select") == 0) { for (var j = 0; j < element.length ; j++) { if (element.options[j].selected) { query += element.name + '=' + escape(element.value) + "&"; } } } else { query += element.name + '=' + escape(element.value) + "&"; } } return query; } /* Function to hide form elements that show through the search form when it is visible */ function toggleForm(frmObj, iState) // 1 visible, 0 hidden { for(var i = 0; i < frmObj.length; i++) { if (frmObj.elements[i].type.indexOf("select") == 0 || frmObj.elements[i].type.indexOf("checkbox") == 0) { frmObj.elements[i].style.visibility = iState ? "visible" : "hidden"; } } } /* Helper function for re-ordering options in a select */ function opt(txt,val,sel) { this.txt=txt; this.val=val; this.sel=sel; } /* Function for re-ordering <option>'s in a <select> */ function move(list,to) { var total=list.options.length; index = list.selectedIndex; if (index == -1) return false; if (to == +1 && index == total-1) return false; if (to == -1 && index == 0) return false; to = index+to; var opts = new Array(); for (i=0; i<total; i++) { opts[i]=new opt(list.options[i].text,list.options[i].value,list.options[i].selected); } tempOpt = opts[to]; opts[to] = opts[index]; opts[index] = tempOpt list.options.length=0; // clear for (i=0;i<opts.length;i++) { list.options[i] = new Option(opts[i].txt,opts[i].val); list.options[i].selected = opts[i].sel; } list.focus(); } /* This function is to select all options in a multi-valued <select> */ function selectAll(elementId) { var element = document.getElementById(elementId); len = element.length; if (len != 0) { for (i = 0; i < len; i++) { element.options[i].selected = true; } } } /* This function is used to select a checkbox by passing * in the checkbox id */ function toggleChoice(elementId) { var element = document.getElementById(elementId); if (element.checked) { element.checked = false; } else { element.checked = true; } } /* This function is used to select a radio button by passing * in the radio button id and index you want to select */ function toggleRadio(elementId, index) { var element = document.getElementsByName(elementId)[index]; element.checked = true; } /* This function is used to open a pop-up window */ function openWindow(url, winTitle, winParams) { winName = window.open(url, winTitle, winParams); winName.focus(); } /* This function is to open search results in a pop-up window */ function openSearch(url, winTitle) { var screenWidth = parseInt(screen.availWidth); var screenHeight = parseInt(screen.availHeight); var winParams = "width=" + screenWidth + ",height=" + screenHeight; winParams += ",left=0,top=0,toolbar,scrollbars,resizable,status=yes"; openWindow(url, winTitle, winParams); } /* This function is used to set cookies */ function setCookie(name,value,expires,path,domain,secure) { document.cookie = name + "=" + escape (value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); } /* This function is used to get cookies */ function getCookie(name) { var prefix = name + "=" var start = document.cookie.indexOf(prefix) if (start==-1) { return null; } var end = document.cookie.indexOf(";", start+prefix.length) if (end==-1) { end=document.cookie.length; } var value=document.cookie.substring(start+prefix.length, end) return unescape(value); } /* This function is used to delete cookies */ function deleteCookie(name,path,domain) { if (getCookie(name)) { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; } } // This function is for stripping leading and trailing spaces function trim(str) { if (str != null) { var i; for (i=0; i<str.length; i++) { if (str.charAt(i)!=" ") { str=str.substring(i,str.length); break; } } for (i=str.length-1; i>=0; i--) { if (str.charAt(i)!=" ") { str=str.substring(0,i+1); break; } } if (str.charAt(0)==" ") { return ""; } else { return str; } } } // This function is used by the login screen to validate user/pass // are entered. function validateRequired(form) { var bValid = true; var focusField = null; var i = 0; var fields = new Array(); oRequired = new required(); for (x in oRequired) { if ((form[oRequired[x][0]].type == 'text' || form[oRequired[x][0]].type == 'textarea' || form[oRequired[x][0]].type == 'select-one' || form[oRequired[x][0]].type == 'radio' || form[oRequired[x][0]].type == 'password') && form[oRequired[x][0]].value == '') { if (i == 0) focusField = form[oRequired[x][0]]; fields[i++] = oRequired[x][1]; bValid = false; } } if (fields.length > 0) { focusField.focus(); alert(fields.join('\n')); } return bValid; } // Show the document's title on the status bar window.defaultStatus=document.title; --- NEW FILE: login.js --- <script type="text/javascript"> <!-- if (getCookie("username") != null) { document.getElementById("j_username").value = getCookie("username"); document.getElementById("j_password").focus(); } else { document.getElementById("j_username").focus(); } function saveUsername(theForm) { var expires = new Date(); expires.setTime(expires.getTime() + 24 * 30 * 60 * 60 * 1000); // sets it for approx 30 days. setCookie("username",theForm.j_username.value,expires,"/"); } function validateForm(form) { return validateRequired(form); } function required () { this.aa = new Array("j_username", "<bean:message key="label.username"/> is a required field.", new Function ("varName", " return this[varName];")); this.ab = new Array("j_password", "<bean:message key="label.password"/> is a required field.", new Function ("varName", " return this[varName];")); } // --> </script> --- NEW FILE: menuExpandable.js --- /* * menuExpandable2.js - implements an expandable menu based on a HTML list * Author: Dave Lindquist (da...@ga...) */ if (!document.getElementById) document.getElementById = function() { return null; } function initializeMenu(menuId, actuatorId) { var menu = document.getElementById(menuId); var actuator = document.getElementById(actuatorId); if (menu == null || actuator == null) return; if (window.opera) return; // I'm too tired actuator.parentNode.style.backgroundImage = "url(images/plus.gif)"; actuator.onclick = function() { var display = menu.style.display; this.parentNode.style.backgroundImage = (display == "block") ? "url(images/plus.gif)" : "url(images/minus.gif)"; menu.style.display = (display == "block") ? "none" : "block"; return false; } } --- NEW FILE: validator.jsp --- <%@ page language="java" contentType="javascript/x-javascript" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %> <html:javascript dynamicJavascript="false" staticJavascript="true"/> |
From: <mr...@us...> - 2003-01-08 06:02:23
|
Update of /cvsroot/struts/struts-resume/web/pages In directory sc8-pr-cvs1:/tmp/cvs-serv343 Added Files: educationForm.jsp loginForm.jsp mainMenu.jsp menu.jsp resumeForm.jsp resumeList.jsp roleList.jsp skillCategoryForm.jsp skillForm.jsp uploadDisplay.jsp uploadForm.jsp userForm.jsp userProfile.jsp welcome.jsp Log Message: --- NEW FILE: educationForm.jsp --- <%@ include file="/common/taglibs.jsp"%> <html:form action="" method="post" styleId="educationForm" focus="" onsubmit="return validateEducationForm(this)"> <table> <tr> <th> <label for="degree"> <bean:message key="educationForm.degree"/> </label> </th> <td> <html:text property="degree" styleId="degree"/> </td> </tr> <tr> <th> <label for="gpa"> <bean:message key="educationForm.gpa"/> </label> </th> <td> <html:text property="gpa" styleId="gpa"/> </td> </tr> <tr> <th> <label for="id"> <bean:message key="educationForm.id"/> </label> </th> <td> <html:text property="id" styleId="id"/> </td> </tr> <tr> <th> <label for="location"> <bean:message key="educationForm.location"/> </label> </th> <td> <html:text property="location" styleId="location"/> </td> </tr> <tr> <th> <label for="name"> <bean:message key="educationForm.name"/> </label> </th> <td> <html:text property="name" styleId="name"/> </td> </tr> <tr> <th> <label for="resumeId"> <bean:message key="educationForm.resumeId"/> </label> </th> <td> <html:text property="resumeId" styleId="resumeId"/> </td> </tr> </table> <html:cancel styleClass="button" property="action" onclick="bCancel=true"> <bean:message key="button.cancel"/> </html:cancel> <html:submit styleClass="button" property="action" onclick="bCancel=false"> <bean:message key="button.save"/> </html:submit> </html:form> <html:javascript formName="educationForm" dynamicJavascript="true" staticJavascript="false"/> <script type="text/javascript" src="<html:rewrite page="/scripts/validator.jsp"/>"></script> --- NEW FILE: loginForm.jsp --- <%@ include file="/common/taglibs.jsp"%> <div id="loginTable"> <%-- If you don't want to encrypt passwords programmatically, or you don't care about using SSL for the login, you can change this form's action to "j_security_check" --%> <form method="post" id="loginForm" action="auth/" onsubmit="saveUsername(this);return validateForm(this)"> <table width="100%"> <tr> <td colspan="2"> <logic:present parameter="error"> <div class="error"> <bean:message key="errors.password.mismatch"/> </div> </logic:present> </td> </tr> <tr> <th> <label for="j_username"><bean:message key="label.username"/>:</label> </th> <td> <input type="text" name="j_username" id="j_username" size="25" /> </td> </tr> <tr> <th> <label for="j_password"><bean:message key="label.password"/>:</label> </th> <td> <input type="password" name="j_password" id="j_password" size="20" /> <!-- for Resin --> <input type="hidden" name="j_uri" id="j_uri" value="" /> </td> </tr> <tr> <td></td> <td> <input type="submit" name="login" id="login" value="Login" /> <input type="reset" name="reset" id="reset" value="Reset" onclick="document.getElementById('j_username').focus()" /> </td> </tr> </table> </form> </div> <%@ include file="/scripts/login.js"%> --- NEW FILE: mainMenu.jsp --- <%@ include file="/common/taglibs.jsp"%> <bean:message key="mainMenu.message"/> <div class="separator"></div> <ul class="glassList"> <li> <html:link forward="editProfile"> <bean:message key="menu.user.edit"/> </html:link> </li> <li> <html:link forward="viewResumes"> <bean:message key="menu.resume.view.tip"/> </html:link> </li> <li> <html:link forward="addResume"> <bean:message key="menu.resume.add.tip"/> </html:link> </li> <li> <html:link forward="uploadResume"> <bean:message key="menu.resume.upload.tip"/> </html:link> </li> </ul> --- NEW FILE: menu.jsp --- <%@ taglib uri="/WEB-INF/struts-menu.tld" prefix="menu"%> <div id="menu"> <menu:useMenuDisplayer name="ListMenu" bundle="org.apache.struts.action.MESSAGE"> <menu:displayMenu name="UserMenu"/> <menu:displayMenu name="ResumeMenu"/> </menu:useMenuDisplayer> </div> --- NEW FILE: resumeForm.jsp --- <%@ include file="/common/taglibs.jsp"%> <html:form action="saveResume" method="post" styleId="resumeForm" focus="name" onsubmit="return validateResumeForm(this)"> <html:hidden property="id"/> <html:hidden property="userId"/> <%-- Since we use the same screen and method for add/save, we have to notify the save method in ResumeAction.java that we're adding a new one so it can set success messages appropriately --%> <c:if test="${param.action == 'Add'}"> <input type="hidden" name="new" id="new" value="true" /> </c:if> <table class="detail"> <tr> <th> <label for="name"> <bean:message key="resumeForm.name"/> </label> </th> <td> <html:text property="name" size="50" styleId="name"/> </td> </tr> <tr> <th class="tallCell"> <label for="description"> <bean:message key="resumeForm.description"/> </label> </th> <td> <html:textarea property="description" cols="40" rows="3" styleId="description"/> </td> </tr> <tr> <th class="tallCell"> <label for="objective"> <bean:message key="resumeForm.objective"/> </label> </th> <td> <html:textarea cols="40" rows="5" property="objective" styleId="objective"/> </td> </tr> <tr> <td></td> <td> <html:submit styleClass="button" property="action" onclick="bCancel=false"> <bean:message key="button.save"/> </html:submit> <html:cancel styleClass="button" property="action" onclick="bCancel=true"> <bean:message key="button.cancel"/> </html:cancel> </td> </tr> </table> </html:form> <html:javascript formName="resumeForm" dynamicJavascript="true" staticJavascript="false"/> <script type="text/javascript" src="<html:rewrite page="/scripts/validator.jsp"/>"></script> --- NEW FILE: resumeList.jsp --- <%@ include file="/common/taglibs.jsp"%> <%@ page import="org.apache.struts.util.MessageResources, org.apache.struts.action.Action"%> <bean:message key="resumeList.message"/> <br /> <br /> <input type="button" value="<bean:message key="button.add.resume"/>" onclick="location.href='<html:rewrite forward="addResume"/>'" /> <input type="button" value="<bean:message key="button.cancel"/>" onclick="location.href='<html:rewrite forward="mainMenu"/>'" /> <div class="separator"></div> Using <logic:iterate> <table class="list"> <tr> <th><bean:message key="resumeForm.name"/></th> <th><bean:message key="resumeForm.description"/></th> </tr> <logic:iterate id="resume" name="userResumes" indexId="index"> <tr> <td> <html:link forward="editResume" title="Edit" paramId="id" paramName="resume" paramProperty="id"> <bean:write name="resume" property="name"/> </html:link> </td> <td><bean:write name="resume" property="description"/></td> </tr> </logic:iterate> </table> Using <c:forEach> <table class="list"> <tr> <th><bean:message key="resumeForm.name"/></th> <th><bean:message key="resumeForm.description"/></th> </tr> <c:forEach var="resume" items="${userResumes}"> <tr> <td> <a href="<html:rewrite forward="editResume"/>&id=<c:out value="${resume.id}"/>" title="Edit"/><c:out value="${resume.name}"/></a> </td> <td><c:out value="${resume.description}"/></td> </tr> </c:forEach> </table> <% MessageResources resources = (MessageResources) request.getAttribute(Action.MESSAGES_KEY); // If I don't add grab this, the display tag library will chop off the "Search" parameter String qString = (request.getQueryString() == null) ? "" : "?" + request.getQueryString(); // chop of the order and sort attributes for display taglib if (qString.indexOf("order=") > -1) { qString = qString.substring(0,qString.indexOf("order=")-1); } String action = "?action=Search"; // chop off action=Search if it appears twice in the queryString if (qString.indexOf(action) > -1) { qString = qString.substring(qString.indexOf(action)+action.length()); } %> <%-- For linking to edit screen --%> <bean:struts id="editURL" forward="editResume"/> <%-- URL to this screen --%> <bean:struts id="thisURL" forward="viewResumes"/> Using <display*> <display:table name="userResumes" scope="request" pagesize="10" styleClass="list" requestURI="<%=request.getContextPath()+thisURL.getPath()+qString%>"> <display:column property="name" sort="true" title='<%=resources.getMessage("resumeForm.name")%>' href="<%=request.getContextPath()+editURL.getPath()%>" paramId="id" paramProperty="id" /> <display:column property="description" sort="true" title='<%=resources.getMessage("resumeForm.description")%>' /> </display:table> ** <a href="<html:rewrite forward="editResume"/>&id=a">Invoke a declared Exception</a> by passing in a value that's not a number. --- NEW FILE: roleList.jsp --- <%@ include file="/common/taglibs.jsp"%> <%@ page import="org.apache.struts.util.MessageResources, org.apache.struts.action.Action"%> Using <logic:iterate> <table class="list"> <tr> <th><bean:message key="roleForm.name"/></th> </tr> <logic:iterate id="role" name="userForm" property="roles"> <tr> <td><bean:write name="role" property="rolename"/></td> </tr> </logic:iterate> </table> Using <c:forEach> <table class="list"> <tr> <th><bean:message key="roleForm.name"/></th> </tr> <c:forEach var="role" items="${userForm.roles}"> <tr> <td><c:out value="${role.rolename}"/></td> </tr> </c:forEach> </table> <% MessageResources resources = (MessageResources) request.getAttribute(Action.MESSAGES_KEY); %> <bean:define id="roles" name="userForm" type="java.util.Set" property="roles" scope="session"/> Using <display*> <display:table name="roles" scope="page" pagesize="10" styleClass="list" requestURI="<%=request.getRequestURL().toString()%>"> <display:column property="rolename" sort="true" title='<%=resources.getMessage("roleForm.rolename")%>' /> </display:table> --- NEW FILE: skillCategoryForm.jsp --- <%@ include file="/common/taglibs.jsp"%> <html:form action="" method="post" styleId="skillCategoryForm" focus="" onsubmit="return validateSkillCategoryForm(this)"> <table> <tr> <th> <label for="description"> <bean:message key="skillCategoryForm.description"/> </label> </th> <td> <html:text property="description" styleId="description"/> </td> </tr> <tr> <th> <label for="id"> <bean:message key="skillCategoryForm.id"/> </label> </th> <td> <html:text property="id" styleId="id"/> </td> </tr> <tr> <th> <label for="name"> <bean:message key="skillCategoryForm.name"/> </label> </th> <td> <html:text property="name" styleId="name"/> </td> </tr> </table> <html:cancel styleClass="button" property="action" onclick="bCancel=true"> <bean:message key="button.cancel"/> </html:cancel> <html:submit styleClass="button" property="action" onclick="bCancel=false"> <bean:message key="button.save"/> </html:submit> </html:form> <html:javascript formName="skillCategoryForm" dynamicJavascript="true" staticJavascript="false"/> <script type="text/javascript" src="<html:rewrite page="/scripts/validator.jsp"/>"></script> --- NEW FILE: skillForm.jsp --- <%@ include file="/common/taglibs.jsp"%> <html:form action="" method="post" styleId="skillForm" focus="" onsubmit="return validateSkillForm(this)"> <table> <tr> <th> <label for="description"> <bean:message key="skillForm.description"/> </label> </th> <td> <html:text property="description" styleId="description"/> </td> </tr> <tr> <th> <label for="id"> <bean:message key="skillForm.id"/> </label> </th> <td> <html:text property="id" styleId="id"/> </td> </tr> <tr> <th> <label for="name"> <bean:message key="skillForm.name"/> </label> </th> <td> <html:text property="name" styleId="name"/> </td> </tr> </table> <html:cancel styleClass="button" property="action" onclick="bCancel=true"> <bean:message key="button.cancel"/> </html:cancel> <html:submit styleClass="button" property="action" onclick="bCancel=false"> <bean:message key="button.save"/> </html:submit> </html:form> <html:javascript formName="skillForm" dynamicJavascript="true" staticJavascript="false"/> <script type="text/javascript" src="<html:rewrite page="/scripts/validator.jsp"/>"></script> --- NEW FILE: uploadDisplay.jsp --- <%@ include file="/common/taglibs.jsp"%> Eventually, this file will be stored on the filesystem and added to the database. This functionality is not present at this time. <div class="separator"></div> <table class="detail"> <tr> <th>Friendly Name</th> <td><%= request.getAttribute("name") %></td> </tr> <tr> <th>Filename</th> <td><%= request.getAttribute("fileName") %></td> </tr> <tr> <th>File content type</th> <td><%= request.getAttribute("contentType") %></td> </tr> <tr> <th>File size</th> <td><%= request.getAttribute("size") %></td> </tr> <tr> <th>File Location</th> <td> <%= request.getAttribute("location") %> </td> </tr> <tr> <td></td> <td> <input type="button" name="done" id="done" value="Done" onclick="location.href='<html:rewrite forward="mainMenu"/>'" /> <input type="button" name="done" id="done" value="Upload Another" onclick="location.href='<html:rewrite forward="index"/>'" /> </td> </tr> </table> --- NEW FILE: uploadForm.jsp --- <%@ include file="/common/taglibs.jsp"%> <%@ page contentType="text/html; charset=utf-8" %> <%@ page import="org.apache.struts.action.*, java.util.Iterator, org.appfuse.webapp.form.UploadForm"%> <!-- Find out if the maximum length has been exceeded. --> <logic:present name="<%= Action.ERROR_KEY %>" scope="request"> <% ActionErrors errors = (ActionErrors) request.getAttribute(Action.ERROR_KEY); //note that this error is created in the validate() method of UploadForm Iterator iterator = errors.get(UploadForm.ERROR_PROPERTY_MAX_LENGTH_EXCEEDED); //there's only one possible error in this ActionError error = (ActionError) iterator.next(); pageContext.setAttribute("maxlength.error", error, PageContext.REQUEST_SCOPE); %> </logic:present> <!-- If there was an error, print it out --> <logic:present name="maxlength.error" scope="request"> <div class="error"> <bean:message name="maxlength.error" property="key" /> </div> </logic:present> <logic:notPresent name="maxlength.error" scope="request"> Note that the maximum allowed size of an uploaded file for this application is two megabytes. See the /WEB-INF/struts-upload.xml file for this application to change it. </logic:notPresent> <br /><br /> <!-- The most important part is to declare your form's enctype to be "multipart/form-data", and to have a form:file element that maps to your ActionForm's FormFile property --> <div class="separator"></div> <html:form action="uploadFile" method="post" styleId="uploadForm" enctype="multipart/form-data" onsubmit="return validateUploadForm(this)"> <table class="detail"> <tr> <th> <label for="description"> <bean:message key="uploadForm.name"/> </label> </th> <td> <html:text property="name" size="40" styleId="name" /> </td> </tr> <tr> <th> <label for="theFile"> <bean:message key="uploadForm.file"/> </label> </th> <td> <html:file property="theFile" size="50" styleId="theFile" /> </td> </tr> <tr> <td></td> <td> <html:submit styleClass="button" onclick="bCancel=false"> <bean:message key="button.upload"/> </html:submit> <html:cancel styleClass="button" onclick="bCancel=true"> <bean:message key="button.cancel"/> </html:cancel> </td> </tr> </table> </html:form> <html:javascript formName="uploadForm" dynamicJavascript="true" staticJavascript="false"/> <script type="text/javascript" src="<html:rewrite page="/scripts/validator.jsp"/>"></script> --- NEW FILE: userForm.jsp --- <%@ include file="/common/taglibs.jsp"%> <html:form action="editUser" focus="firstName" styleId="userForm" onsubmit="return validateUserForm(this)"> <table class="detail"> <tr> <th> <label for="username"> <bean:message key="userForm.username"/> </label> </th> <td> <c:out value="${userForm.username}"/> <html:hidden property="username" /> </td> </tr> <tr> <th> <label for="firstName"> <bean:message key="userForm.firstName"/> </label> </th> <td> <html:text property="firstName" styleId="firstName"/> </td> </tr> <tr> <th> <label for="lastName"> <bean:message key="userForm.lastName"/> </label> </th> <td> <html:text property="lastName" styleId="lastName"/> </td> </tr> <tr> <th> <label for="address"> <bean:message key="userForm.address"/> </label> </th> <td> <html:text property="address" styleId="address" size="50"/> </td> </tr> <tr> <th> <label for="city"> <bean:message key="userForm.city"/> </label> </th> <td> <html:text property="city" styleId="city" size="40"/> </td> </tr> <tr> <th> <label for="province"> <bean:message key="userForm.province"/> </label> </th> <td> <html:text property="province" styleId="province" size="30"/> </td> </tr> <tr> <th> <label for="country"> <bean:message key="userForm.country"/> </label> </th> <td> <html:text property="country" styleId="country"/> </td> </tr> <tr> <th> <label for="postalCode"> <bean:message key="userForm.postalCode"/> </label> </th> <td> <html:text property="postalCode" styleId="postalCode"/> </td> </tr> <tr> <th> <label for="email"> <bean:message key="userForm.email"/> </label> </th> <td> <html:text property="email" styleId="email" size="50"/> </td> </tr> <tr> <th> <label for="phoneNumber"> <bean:message key="userForm.phoneNumber"/> </label> </th> <td> <html:text property="phoneNumber" styleId="phoneNumber"/> </td> </tr> <tr> <th> <label for="website"> <bean:message key="userForm.website"/> </label> </th> <td> <html:text property="website" styleId="website" size="50"/> </td> </tr> <tr> <td></td> <td> <html:submit styleClass="button" property="action" onclick="bCancel=false"> <bean:message key="button.save"/> </html:submit> <html:cancel styleClass="button" property="action" onclick="bCancel=true"> <bean:message key="button.cancel"/> </html:cancel> </td> </tr> </table> </html:form> <html:javascript formName="userForm" dynamicJavascript="true" staticJavascript="false"/> <script type="text/javascript" src="<html:rewrite page="/scripts/validator.jsp"/>"></script> --- NEW FILE: userProfile.jsp --- <%@ include file="/common/taglibs.jsp"%> <!-- You could also add a message to the baseLayout and not use this page. --> <bean:message key="userProfile.message"/> <div class="separator"></div> <jsp:include page="/WEB-INF/pages/userForm.jsp" flush="true"/> --- NEW FILE: welcome.jsp --- <%@ include file="/common/taglibs.jsp"%> <logic:notPresent name="org.apache.struts.action.MESSAGE" scope="application"> <div class="error"> ERROR: Application resources not loaded -- check servlet container logs for error messages. </div> </logic:notPresent> <p><bean:message key="welcome.message"/></p> <%-- Include the login form --%> <jsp:include page="/WEB-INF/pages/loginForm.jsp" flush="true"/> <a href="#" onclick="toggleDisplay('readme'); return false">Toggle README</a> <div id="readme" style="display: none"> <%-- Include the README.txt --%> <pre> <%@ include file="/README.txt"%> </pre> </div> |
From: <mr...@us...> - 2003-01-08 06:02:05
|
Update of /cvsroot/struts/struts-resume/web/layouts In directory sc8-pr-cvs1:/tmp/cvs-serv32707 Added Files: baseLayout.jsp Log Message: --- NEW FILE: baseLayout.jsp --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <%-- Include common set of tag library declarations for each layout --%> <%@ include file="/common/taglibs.jsp"%> <html:html xhtml="true" locale="true"> <head> <%-- Include common set of meta tags for each layout --%> <%@ include file="/common/meta.jsp" %> <%-- Push tiles attributes in page context --%> <tiles:importAttribute /> <title><bean:message name="title.key"/></title> <%-- Get Javascript List --%> <tiles:useAttribute id="scriptList" name="scripts" classname="java.util.List" ignore="true"/> <c:forEach var="js" items="${scriptList}"> <script type="text/javascript" src="<%=request.getContextPath()%><c:out value="${js}"/>"></script> </c:forEach> <%-- Get List of Stylesheets --%> <tiles:useAttribute id="styleList" name="styles" classname="java.util.List" ignore="true"/> <c:forEach var="css" items="${styleList}"> <link rel="stylesheet" type="text/css" media="all" href="<%=request.getContextPath()%><c:out value="${css}"/>" /> </c:forEach> <style type="text/css" media="all"> div.standardsNote {background: #FFFFCC; border: 1px solid blue; margin-bottom: 10px; padding: 5px} </style> </head> <body> <div class="standardsNote"> <bean:message key="errors.browser.warning"/> </div> <div id="screen"> <div id="header"> <c:if test="${userForm != null}"> <div id="userStatus"> Logged in as: <c:out value="${userForm.firstName}"/> <c:out value="${userForm.lastName}"/><br /> <html:link forward="logout">Logout</html:link> </div> </c:if> <tiles:insert attribute="header"/> </div> <tiles:insert attribute="menu" ignore="true"/> <div id="content"> <h1><bean:message name="heading.key"/></h1> <%@ include file="/common/messages.jsp" %> <tiles:insert attribute="content"/> </div> <div id="footer"> <tiles:insert attribute="footer"/> </div> </div> </body> </html:html> |
From: <mr...@us...> - 2003-01-08 06:01:53
|
Update of /cvsroot/struts/struts-resume/web/images In directory sc8-pr-cvs1:/tmp/cvs-serv32614 Added Files: aquadot.jpg favicon.ico minus.gif plus.gif valid-xhtml10.png vcss.png Log Message: --- NEW FILE: aquadot.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: favicon.ico --- (This appears to be a binary file; contents omitted.) --- NEW FILE: minus.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: plus.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: valid-xhtml10.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: vcss.png --- (This appears to be a binary file; contents omitted.) |
From: <mr...@us...> - 2003-01-08 06:01:35
|
Update of /cvsroot/struts/struts-resume/web/common In directory sc8-pr-cvs1:/tmp/cvs-serv32454 Added Files: footer.jsp header.jsp messages.jsp meta.jsp taglibs.jsp validator.jsp Log Message: --- NEW FILE: footer.jsp --- <%@ include file="/common/taglibs.jsp" %> <div id="validators"> <%-- <html:rewrite page="" usually works fine, but not with modules, since it includes the servletContext and the prefix --%> <a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="<%=request.getContextPath()%>/images/vcss.png" alt="Valid CSS!" class="badge" /></a> <a href="http://validator.w3.org/check/referer"><img src="<%=request.getContextPath()%>/images/valid-xhtml10.png" alt="Valid XHTML 1.0!" class="badge" /></a> </div> Style respectfully borrowed from Blue Robot's <a href="http://www.bluerobot.com/web/layouts/">Layout Reservoir</a>. <!-- <%@ include file="/WEB-INF/classes/build.properties"%> --> --- NEW FILE: header.jsp --- <%@ include file="/common/taglibs.jsp"%> <logic:present role="tomcat"> <html:link forward="mainMenu"><bean:message key="mainMenu.title"/></html:link> </logic:present> --- NEW FILE: messages.jsp --- <%-- Error Messages --%> <logic:messagesPresent> <div class="error"> <html:messages id="error"> <bean:write name="error" filter="false"/><br/> </html:messages> </div> </logic:messagesPresent> <%-- Success Messages --%> <logic:messagesPresent message="true"> <div class="message"> <html:messages id="message" message="true"> <bean:write name="message" filter="false"/><br/> </html:messages> </div> </logic:messagesPresent> --- NEW FILE: meta.jsp --- <!-- HTTP 1.1 --> <meta http-equiv="Cache-Control" content="no-store"/> <!-- HTTP 1.0 --> <meta http-equiv="Pragma" content="no-cache"/> <!-- Prevents caching at the Proxy Server --> <meta http-equiv="Expires" content="0"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="Matt Raible (ma...@ra...)"/> <link rel="icon" href="<html:rewrite page="/images/favicon.ico"/>"/> --- NEW FILE: taglibs.jsp --- <%@ page language="java" errorPage="/error.jsp" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested" %> <%@ taglib uri="http://jakarta.apache.org/taglibs/display" prefix="display" %> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> <%@ taglib uri="/WEB-INF/appfuse.tld" prefix="appfuse" %> --- NEW FILE: validator.jsp --- <%@ include file="/common/taglibs.jsp"%> <html:javascript formName='<c:out value="${param.formId}"/>' dynamicJavascript="true" staticJavascript="false"/> <script type="text/javascript" src="<html:rewrite page='/scripts/validator.jsp'/>"></script> |
From: <mr...@us...> - 2003-01-08 06:01:23
|
Update of /cvsroot/struts/struts-resume/web/WEB-INF/classes In directory sc8-pr-cvs1:/tmp/cvs-serv32299 Added Files: ApplicationResources.properties cactus.properties hibernate.cfg.xml log4j.properties log_client.properties log_server.properties UploadResources.properties Log Message: --- NEW FILE: ApplicationResources.properties --- # -- validator errors -- errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. errors.minlength={0} can not be less than {1} characters. errors.range={0} is not in the range {1} through {2}. errors.required={0} is required. errors.byte={0} must be an byte. errors.date={0} is not a date. errors.double={0} must be an double. errors.float={0} must be an float. errors.integer={0} must be an integer. errors.long={0} must be an long. errors.short={0} must be an short. errors.creditcard={0} is not a valid credit card number. errors.email={0} is an invalid e-mail address. errors.phone={0} is an invalid phone number. errors.zip={0} is an invalid zip code. # -- other errors -- errors.cancel=Operation cancelled. errors.detail={0} errors.general=The process did not complete. Details should follow. errors.token=Request could not be completed. Operation is not in sequence. errors.none=No error message was found, check your server logs. errors.password.mismatch=Invalid username and/or password, please try again. errors.browser.warning=<strong>Note:</strong> This site's content is accessible to all versions of every browser. However, this browser may not support basic Web standards, preventing the display of our site's design details. We support the mission of the Web Standards Project in the <a href="http://www.webstandards.org/upgrade/">campaign</a> encouraging users to upgrade their browsers. errors.conversion=An error occurred while converting web values to data values. errors.invalid.resume=The resume you selected to edit appears to have an invalid id - "{0}". # -- error page messages -- errorPage.title=An error has occurred errorPage.heading=Yikes! # -- login -- login.title=Login login.heading=Login # -- welcome -- welcome.message=This application is mean to demonstrate the use of web application security, as well as some tricks for pluggable persistence and Struts Advanced features. Most of the persistence layer for this application is generated using XDoclet. You can find more information on how to build your own application from this one by reading the README file below. <span class="attention">This application is configured to allow the <strong>tomcat</strong> role to login. Tomcat is installed with a user that has this role. The username/password combination is <strong>tomcat/tomcat</strong></span>. # -- mainMenu -- mainMenu.title=Main Menu mainMenu.heading=Welcome! mainMenu.message=Congratulations, you have logged in successfully! Now that you've logged in, you have the following options: # -- menu/link messages -- menu.admin=Administration menu.admin.users=View Users menu.admin.resumes=View Resumes menu.user=User Settings menu.user.edit=Edit Profile menu.resume=Resume Options menu.resume.view=View menu.resume.add=Create menu.resume.upload=Upload menu.resume.view.tip=View My Resumes menu.resume.add.tip=Create Resume menu.resume.upload.tip=Upload Resume # -- form labels -- label.username=Username label.password=Password # -- button labels -- button.add=Add button.cancel=Cancel button.copy=Copy button.delete=Delete button.edit=Edit button.save=Save button.search=Search # -- buttons used for navigation -- button.add.resume=Add Resume # -- education form -- educationForm.degree=Degree educationForm.gpa=Gpa educationForm.id=Id educationForm.location=Location educationForm.name=Name educationForm.resumeId=Resume Id # -- resume form -- resumeForm.description=Description resumeForm.id=Id resumeForm.name=Name resumeForm.objective=Objective resumeForm.userId=User Id # -- role form -- roleForm.name=Name # -- skill category form -- skillCategoryForm.description=Description skillCategoryForm.id=Id skillCategoryForm.name=Name # -- skill form -- skillForm.description=Description skillForm.id=Id skillForm.name=Name # -- user profile page -- userProfile.title=User Settings userProfile.heading=User Profile userProfile.message=Please update your information using the form below. userProfile.updated=Your information has been updated successfully. # -- user form -- userForm.address=Address userForm.city=City userForm.country=Country userForm.email=Email userForm.firstName=First Name userForm.id=Id userForm.lastName=Last Name userForm.password=Password userForm.phoneNumber=Phone Number userForm.postalCode=Postal Code userForm.province=State userForm.username=Username userForm.website=Website # -- resume list page -- resumeList.title=View Resumes resumeList.heading=Your Resumes resumeList.message=This is a list of resumes we have on file for you. Click the "Add Resume" button if you'd like to add a new one. # -- resume detail page -- resumeDetail.title=Edit Resume resumeDetail.heading=Edit Your Resume # -- resume add page -- resumeAdd.title=Add Resume resumeAdd.heading=Add New Resume # -- role list page -- roleList.title=View Roles roleList.heading=Your Roles # -- success messages -- resume.added=The resume named "{0}" has been added. resume.updated=Your resume has been updated successfully. resume.deleted=The resume "{0}" has been deleted. --- NEW FILE: cactus.properties --- # Web app Context under which our application to test runs cactus.contextURL = http://localhost:8080/@APPNAME@ # Default Servlet Redirector Name. Used by ServletTestCase test cases. cactus.servletRedirectorName = ServletRedirector # Default JSP Redirector Name. Used by JspTestCase test cases. cactus.jspRedirectorName = JspRedirector --- NEW FILE: hibernate.cfg.xml --- <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration.dtd"> <hibernate-configuration> <!-- shared properties --> <property name="show_sql">true</property> <property name="use_outer_join">true</property> <property name="jta.UserTransaction"> java:comp/UserTransaction/ </property> <!-- a SessionFactory instance listed as /jndi/name --> <session-factory name="hibernate/sessionFactory"> <!-- properties for this SessionFactory only --> <property name="connection.datasource">java:comp/env/jdbc/resume</property> <property name="dialect">cirrus.hibernate.sql.MySQLDialect</property> <!-- mapping files --> <mapping resource="org/appfuse/persistence/Education.hbm.xml"/> <mapping resource="org/appfuse/persistence/Resume.hbm.xml"/> <mapping resource="org/appfuse/persistence/Role.hbm.xml"/> <mapping resource="org/appfuse/persistence/Skill.hbm.xml"/> <mapping resource="org/appfuse/persistence/SkillGroup.hbm.xml"/> <mapping resource="org/appfuse/persistence/User.hbm.xml"/> </session-factory> </hibernate-configuration> --- NEW FILE: log4j.properties --- # Properties for configuring Log4j for the OnPoint Application (Dev Version) # This is the configuring for logging displayed in the Application Server log4j.rootCategory=INFO, stdout # Replace the line above if you want to put a log file into the directory # you start Tomcat from # log4j.rootCategory=INFO, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%p [%t] [%c] %C{1}.%M(%L) | %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender # You can change this to be an absolute path or even an environment variable # If you're using an environment variable, you will have to set JAVA_OPTS # to contain this variables - for example in the catalina.sh or catalina.bat # file log4j.appender.R.File=@APPNAME@.log log4j.appender.R.MaxFileSize=100KB # Don't keep a backup file log4j.appender.R.MaxBackupIndex=0 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n # If programmed properly the most messages would be at DEBUG # and the least at FATAL. log4j.logger.org.appfuse=DEBUG # Control logging for Struts and Commons classes log4j.logger.org.apache.commons=ERROR log4j.logger.org.apache.struts=ERROR # All hibernate log output of "info" level or higher goes to stdout. # For more verbose logging, change the "info" to "debug" on the last line. log4j.logger.cirrus.hibernate.ps.PreparedStatementCache=WARN log4j.logger.cirrus.hibernate=WARN --- NEW FILE: log_client.properties --- # Properties for configuring Log4j # This is the configuring for logging on the JUnit side (i.e. the client side) # This file is not included during packaging and deployment log4j.appender.cactus = org.apache.log4j.FileAppender log4j.appender.cactus.File = cactus_client.log log4j.appender.cactus.Append = false log4j.appender.cactus.layout = org.apache.log4j.PatternLayout log4j.appender.cactus.layout.ConversionPattern = %d{ABSOLUTE} [%t] %-5p %-30.30c{2} %x - %m %n # Any application log which uses Log4J will be logged to the Cactus log file log4j.rootCategory=DEBUG, cactus # By default we don't log at the DEBUG level for Cactus log, in order not to generate too # many logs. However, should a problem arise and logs need to be sent to the Cactus dev team, # then we will ask you to change this to DEBUG. log4j.category.org.apache.cactus = WARN, cactus log4j.additivity.org.apache.cactus=false # Don't show debug logs for HttpClient log4j.category.org.apache.commons.httpclient = WARN, cactus log4j.additivity.org.apache.commons.httpclient=false log4j.category.httpclient = WARN, cactus log4j.additivity.httpclient=false --- NEW FILE: log_server.properties --- # Properties for configuring Log4j # This is the configuring for logging on the server side log4j.appender.cactus = org.apache.log4j.FileAppender log4j.appender.cactus.File = cactus_server.log log4j.appender.cactus.Append = false log4j.appender.cactus.layout = org.apache.log4j.PatternLayout log4j.appender.cactus.layout.ConversionPattern = %d{ABSOLUTE} [%t] %-5p %-30.30c{2} %x - %m %n # Any application log which uses Log4J will be logged to the Cactus log file log4j.rootCategory=DEBUG, cactus # By default we don't log at the DEBUG level for Cactus log, in order not to generate too # many logs. However, should a problem arise and logs need to be sent to the Cactus dev team, # then we will ask you to change this to DEBUG. log4j.category.org.apache.cactus = WARN, cactus log4j.additivity.org.apache.cactus=false # Don't show debug logs for HttpClient log4j.category.org.apache.commons.httpclient = WARN, cactus log4j.additivity.org.apache.commons.httpclient=false log4j.category.httpclient = WARN, cactus log4j.additivity.httpclient=false --- NEW FILE: UploadResources.properties --- # -- validator errors -- errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. errors.minlength={0} can not be less than {1} characters. errors.range={0} is not in the range {1} through {2}. errors.required={0} is required. errors.byte={0} must be an byte. errors.date={0} is not a date. errors.double={0} must be an double. errors.float={0} must be an float. errors.integer={0} must be an integer. errors.long={0} must be an long. errors.short={0} must be an short. errors.creditcard={0} is not a valid credit card number. errors.email={0} is an invalid e-mail address. errors.phone={0} is an invalid phone number. errors.zip={0} is an invalid zip code. # -- other errors -- errors.cancel=Operation cancelled. errors.detail={0} errors.general=The process did not complete. Details should follow. errors.token=Request could not be completed. Operation is not in sequence. errors.none=No error message was found, check your server logs. errors.password.mismatch=Invalid username and/or password, please try again. errors.browser.warning=<strong>Note:</strong> This site's content is accessible to all versions of every browser. However, this browser may not support basic Web standards, preventing the display of our site's design details. We support the mission of the Web Standards Project in the <a href="http://www.webstandards.org/upgrade/">campaign</a> encouraging users to upgrade their browsers. # -- error page messages -- errorPage.title=An error has occurred errorPage.heading=Yikes! # -- link in header -- mainMenu.title=Main Menu # -- upload page messages -- maxLengthExceeded=The maximum upload length has been exceeded by the client. upload.title=File Upload upload.heading=Upload Your Resume uploadForm.name=Friendly Name uploadForm.file=File to Upload # -- display page messages display.title=File Uploaded Successfully! display.heading=File Information button.cancel=Cancel button.upload=Upload |
Update of /cvsroot/struts/struts-resume/web/WEB-INF In directory sc8-pr-cvs1:/tmp/cvs-serv32186 Added Files: menu-config.xml struts-upload.xml tiles-config.xml tiles-upload.xml validation-upload.xml Log Message: --- NEW FILE: menu-config.xml --- <?xml version="1.0" encoding="UTF-8"?> <MenuConfig> <Displayers> <Displayer name="ListMenu" type="com.fgm.web.menu.displayer.ListMenuDisplayer"/> </Displayers> <Menus> <!-- Right now, the Struts Menu does not integrate with forwards in struts-config.xml --> <!-- Hopefully it will in the future, but for now you can specify the path here. --> <!-- NOTE: If you're using a "/do/*" mapping, you should be able to use the forward --> <!-- names here. --> <!-- ==================== Administrator Menu =========================== --> <Menu name="AdminMenu" title="menu.admin" description="Admin Menu" roles="admin"> <Item name="am.viewUsers" title="menu.admin.users" page="/viewAllUsers.do"/> <Item name="am.viewResumes" title="menu.admin.resumes" page="/viewAllResumes.do"/> </Menu> <!-- ==================== User Menu =========================== --> <Menu name="UserMenu" title="menu.user" description="User Menu"> <Item name="um.edit" title="menu.user.edit" page="/userProfile.do"/> </Menu> <!-- ==================== Resume Menu =========================== --> <Menu name="ResumeMenu" title="menu.resume" description="Resume Menu"> <Item name="rm.view" title="menu.resume.view" page="/viewResumes.do?action=Search"/> <Item name="rm.add" title="menu.resume.add" page="/addResume.do?action=Add"/> <Item name="rm.upload" title="menu.resume.upload" page="/upload/index.do"/> </Menu> </Menus> </MenuConfig> --- NEW FILE: struts-upload.xml --- <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <form-beans> <form-bean name="uploadForm" type="org.appfuse.webapp.form.UploadForm"/> </form-beans> <global-forwards> <forward name="index" path="/index.do" /> <!-- Switch to default module --> <forward name="mainMenu" contextRelative="true" path="/mainMenu.do" redirect="true" /> <forward name="logout" contextRelative="true" path="/logout.do" redirect="true" /> </global-forwards> <action-mappings> <!-- Router to upload tiles definition --> <action path="/index" type="org.apache.struts.actions.ForwardAction" parameter="upload"/> <!-- Upload Action --> <action path="/uploadFile" type="org.appfuse.webapp.action.UploadAction" name="uploadForm" scope="request" input="index"> <forward name="success" path="display" /> </action> </action-mappings> <!-- This is where you set the maximum file size for your file uploads. -1 is an unlimited size. If you don't specify this here, it defaults to -1. --> <controller maxFileSize="2M" inputForward="true" /> <message-resources parameter="UploadResources"/> <!-- ========== Tiles plugin =================== --> <plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEB-INF/tiles-upload.xml" /> <set-property property="moduleAware" value="true" /> <set-property property="definitions-parser-validate" value="true" /> </plug-in> <!-- ========== Validator plugin =================== --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation-upload.xml"/> </plug-in> </struts-config> --- NEW FILE: tiles-config.xml --- <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> <tiles-definitions> <!-- Base layout definition --> <definition name="baseLayout" path="/layouts/baseLayout.jsp"> <put name="title.key"/> <put name="heading.key"/> <put name="header" value="/common/header.jsp"/> <put name="footer" value="/common/footer.jsp"/> <!-- Default Javascript File --> <putList name="scripts"> <add value="/scripts/global.js"/> </putList> <!-- Default Stylesheet File --> <putList name="styles"> <add value="/styles/default.css"/> </putList> </definition> <!-- Login Page definition --> <definition name="login" extends="baseLayout"> <put name="title.key" value="login.title"/> <put name="heading.key" value="login.heading"/> <put name="menu" value="/menu.html"/> <put name="content" value="/WEB-INF/pages/welcome.jsp"/> </definition> <!-- Main Menu definition --> <definition name="mainMenu" extends="baseLayout"> <put name="title.key" value="mainMenu.title" /> <put name="heading.key" value="mainMenu.heading" /> <put name="menu" value="/WEB-INF/pages/menu.jsp"/> <put name="content" value="/WEB-INF/pages/mainMenu.jsp"/> <putList name="scripts"> <add value="/scripts/global.js"/> <add value="/scripts/menuExpandable.js"/> </putList> <putList name="styles"> <add value="/styles/default.css"/> <add value="/styles/menuExpandable.css"/> </putList> </definition> <!-- User Profile definition --> <definition name="userProfile" extends="mainMenu"> <put name="title.key" value="userProfile.title" /> <put name="heading.key" value="userProfile.heading" /> <put name="content" value="/WEB-INF/pages/userProfile.jsp"/> </definition> <!-- Resume List definition --> <definition name="resumeList" extends="mainMenu"> <put name="title.key" value="resumeList.title" /> <put name="heading.key" value="resumeList.heading" /> <put name="content" value="/WEB-INF/pages/resumeList.jsp"/> </definition> <!-- Resume Details definition --> <definition name="resumeDetail" extends="mainMenu"> <put name="title.key" value="resumeDetail.title" /> <put name="heading.key" value="resumeDetail.heading" /> <put name="content" value="/WEB-INF/pages/resumeForm.jsp"/> </definition> <!-- Resume Add definition --> <definition name="resumeAdd" extends="resumeDetail"> <put name="title.key" value="resumeAdd.title" /> <put name="heading.key" value="resumeAdd.heading" /> </definition> <!-- Role List definition --> <definition name="roleList" extends="mainMenu"> <put name="title.key" value="roleList.title" /> <put name="heading.key" value="roleList.heading" /> <put name="content" value="/WEB-INF/pages/roleList.jsp"/> </definition> </tiles-definitions> --- NEW FILE: tiles-upload.xml --- <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> <tiles-definitions> <!-- Base layout definition --> <definition name="baseLayout" path="/layouts/baseLayout.jsp"> <put name="title.key"/> <put name="heading.key"/> <put name="header" value="/common/header.jsp"/> <put name="footer" value="/common/footer.jsp"/> <!-- Default Javascript File --> <putList name="scripts"> <add value="/scripts/global.js"/> </putList> <!-- Default Stylesheet File --> <putList name="styles"> <add value="/styles/default.css"/> </putList> </definition> <!-- Upload Page definition --> <definition name="upload" extends="baseLayout"> <put name="title.key" value="upload.title"/> <put name="heading.key" value="upload.heading"/> <put name="content" value="/WEB-INF/pages/uploadForm.jsp"/> </definition> <!-- Display Upload definition --> <definition name="display" extends="baseLayout"> <put name="title.key" value="display.title" /> <put name="heading.key" value="display.heading" /> <put name="content" value="/WEB-INF/pages/uploadDisplay.jsp"/> </definition> </tiles-definitions> --- NEW FILE: validation-upload.xml --- <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Struts Validation Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/validation_1_1.dtd"> <form-validation> <formset> <form name="uploadForm"> <field property="name" depends="required"> <arg0 key="uploadForm.name"/> </field> <!-- Client-side Javascript won't catch this, but server-side will --> <field property="theFile" depends="required"> <arg0 key="uploadForm.theFile"/> </field> </form> </formset> </form-validation> |
From: <mr...@us...> - 2003-01-08 06:00:54
|
Update of /cvsroot/struts/struts-resume/web/WEB-INF/classes In directory sc8-pr-cvs1:/tmp/cvs-serv32168/classes Log Message: Directory /cvsroot/struts/struts-resume/web/WEB-INF/classes added to the repository |
From: <mr...@us...> - 2003-01-08 06:00:49
|
Update of /cvsroot/struts/struts-resume/web In directory sc8-pr-cvs1:/tmp/cvs-serv32141 Added Files: error.jsp index.jsp login.jsp logout.jsp menu.html Log Message: --- NEW FILE: error.jsp --- <%@ page language="java" isErrorPage="true" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- I do not integrate this page as a tile, but rather as a standalone-page --> <html> <head> <title><bean:message key="errorPage.title"/></title> <link rel="stylesheet" type="text/css" media="all" href="<%=request.getContextPath()%>/styles/default.css" /> </head> <body> <div id="screen"> <div id="content"> <h1><bean:message key="errorPage.heading"/></h1> <%-- Error Messages --%> <logic:messagesPresent> <div class="error"> <html:messages id="error"> <bean:write name="error" filter="false"/><br/> </html:messages> </div> </logic:messagesPresent> <% if (exception != null) { exception.printStackTrace(new java.io.PrintWriter(out)); } else { %> <%-- only show this if no error messages present --%> <logic:messagesNotPresent> <bean:message key="errors.none"/> </logic:messagesNotPresent> <% } %> </div> </div> </body> </html> --- NEW FILE: index.jsp --- <%@ include file="/common/taglibs.jsp"%> <%-- You can use this logic if you're running your app on 80 & 443, but IE seems to have issues when running on non-standard ports and spits up a Server Not Found error <c:if test="${applicationScope.secureLogin == 'true'}"> <appfuse:secure /> </c:if> --%> <logic:redirect forward="mainMenu"/> --- NEW FILE: login.jsp --- <%@ include file="/common/taglibs.jsp"%> <tiles:insert definition="login" flush="true"/> --- NEW FILE: logout.jsp --- <%@ include file="/common/taglibs.jsp"%> <% session.invalidate(); %> <logic:redirect forward="mainMenu"/> --- NEW FILE: menu.html --- <div id="menu"> <a href="http://raibledesigns.com/" title="Matt's Weblog">Raible Designs</a><br /> <a href="http://jakarta.apache.org/struts" title="Struts Project">Struts Project</a><br /> <a href="http://xdoclet.sourceforge.net/" title="XDoclet Project">XDoclet Project</a> </div> |
From: <mr...@us...> - 2003-01-08 06:00:36
|
Update of /cvsroot/struts/struts-resume/web/WEB-INF In directory sc8-pr-cvs1:/tmp/cvs-serv32062/WEB-INF Log Message: Directory /cvsroot/struts/struts-resume/web/WEB-INF added to the repository |
From: <mr...@us...> - 2003-01-08 06:00:36
|
Update of /cvsroot/struts/struts-resume/web/pages In directory sc8-pr-cvs1:/tmp/cvs-serv32062/pages Log Message: Directory /cvsroot/struts/struts-resume/web/pages added to the repository |
From: <mr...@us...> - 2003-01-08 06:00:35
|
Update of /cvsroot/struts/struts-resume/web/styles In directory sc8-pr-cvs1:/tmp/cvs-serv32062/styles Log Message: Directory /cvsroot/struts/struts-resume/web/styles added to the repository |
From: <mr...@us...> - 2003-01-08 06:00:35
|
Update of /cvsroot/struts/struts-resume/web/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv32062/scripts Log Message: Directory /cvsroot/struts/struts-resume/web/scripts added to the repository |
From: <mr...@us...> - 2003-01-08 06:00:35
|
Update of /cvsroot/struts/struts-resume/web/layouts In directory sc8-pr-cvs1:/tmp/cvs-serv32062/layouts Log Message: Directory /cvsroot/struts/struts-resume/web/layouts added to the repository |
From: <mr...@us...> - 2003-01-08 06:00:34
|
Update of /cvsroot/struts/struts-resume/web/images In directory sc8-pr-cvs1:/tmp/cvs-serv32062/images Log Message: Directory /cvsroot/struts/struts-resume/web/images added to the repository |
From: <mr...@us...> - 2003-01-08 06:00:34
|
Update of /cvsroot/struts/struts-resume/web/common In directory sc8-pr-cvs1:/tmp/cvs-serv32062/common Log Message: Directory /cvsroot/struts/struts-resume/web/common added to the repository |
From: <mr...@us...> - 2003-01-08 06:00:05
|
Update of /cvsroot/struts/struts-resume/tools/strutsgen/src/org/example/antbook/xdoclet In directory sc8-pr-cvs1:/tmp/cvs-serv31820 Added Files: FormTagsHandler.java Log Message: --- NEW FILE: FormTagsHandler.java --- package org.example.antbook.xdoclet; import xdoclet.DocletSupport; import xdoclet.XDocletException; import xdoclet.tagshandler.AbstractProgramElementTagsHandler; import xdoclet.tagshandler.MethodTagsHandler; import xdoclet.tagshandler.TypeTagsHandler; import xjavadoc.ClassIterator; import xjavadoc.XClass; import xjavadoc.XCollections; import xjavadoc.XMethod; import xjavadoc.XParameter; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Properties; import java.util.TreeMap; import java.util.List; import java.util.ArrayList; public class FormTagsHandler extends AbstractProgramElementTagsHandler { private String curFieldName; private final static List supportedTypes = new ArrayList(); static { supportedTypes.add("java.lang.String"); supportedTypes.add("java.lang.Integer"); supportedTypes.add("int"); supportedTypes.add("java.lang.Float"); supportedTypes.add("float"); supportedTypes.add("java.lang.Long"); supportedTypes.add("long"); supportedTypes.add("java.lang.Double"); supportedTypes.add("double"); supportedTypes.add("java.lang.Boolean"); supportedTypes.add("boolean"); } /** * Iterates the body for each field of the current form requiring validation. * * @param template * @param attributes * @throws XDocletException */ public void forAllFields(String template, Properties attributes) throws XDocletException { XClass clazz = getCurrentClass(); TreeMap setters = new TreeMap(getFields(clazz)); for (Iterator iterator = setters.keySet().iterator(); iterator.hasNext();) { curFieldName = (String) iterator.next(); XMethod field = (XMethod) setters.get(curFieldName); setCurrentMethod(field); generate(template); } } /** * Returns the current fields name. * * @param props * @return */ public String fieldName(Properties props) { return curFieldName; } public String fieldDescription(Properties props) { StringBuffer buffer = new StringBuffer(); boolean nextUpper = false; for (int i = 0; i < curFieldName.length(); i++) { char c = curFieldName.charAt(i); if (i == 0) { buffer.append(Character.toUpperCase(c)); continue; } if (Character.isUpperCase(c)) { buffer.append(' '); buffer.append(c); continue; } if (c == '.') { buffer.append(" - "); nextUpper = true; continue; } char x = nextUpper ? Character.toUpperCase(c) : c; buffer.append(x); nextUpper = false; } return buffer.toString(); } private Map getFields(XClass clazz) throws XDocletException { return getFields(clazz, ""); } private Map getFields(XClass clazz, String prefix) throws XDocletException { Map fields = new HashMap(); Collection curFields = clazz.getMethods(); for (Iterator iterator = curFields.iterator(); iterator.hasNext();) { XMethod setter = (XMethod) iterator.next(); if (MethodTagsHandler.isSetterMethod(setter)) { String name = MethodTagsHandler.getPropertyNameFor(setter); XParameter param = (XParameter) setter.getParameters().iterator().next(); String type = param.getType().getQualifiedName(); if (supportedTypes.contains(type)) { fields.put(prefix + name, setter); } else { fields.putAll(getFields(param.getType(), prefix + (prefix.length() == 0 ? "" : ".") + name + ".")); } } } return fields; } } |
From: <mr...@us...> - 2003-01-08 05:59:52
|
Update of /cvsroot/struts/struts-resume/tools/strutsgen/src/org/example/antbook/xdoclet In directory sc8-pr-cvs1:/tmp/cvs-serv31774/xdoclet Log Message: Directory /cvsroot/struts/struts-resume/tools/strutsgen/src/org/example/antbook/xdoclet added to the repository |
From: <mr...@us...> - 2003-01-08 05:59:46
|
Update of /cvsroot/struts/struts-resume/tools/strutsgen/src/org/example/antbook In directory sc8-pr-cvs1:/tmp/cvs-serv31739/antbook Log Message: Directory /cvsroot/struts/struts-resume/tools/strutsgen/src/org/example/antbook added to the repository |