You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(89) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(9) |
Feb
(6) |
Mar
(22) |
Apr
(34) |
May
(43) |
Jun
(48) |
Jul
(96) |
Aug
(64) |
Sep
(30) |
Oct
(12) |
Nov
(17) |
Dec
(21) |
2007 |
Jan
(61) |
Feb
(24) |
Mar
(51) |
Apr
(54) |
May
(41) |
Jun
(57) |
Jul
(16) |
Aug
(12) |
Sep
(29) |
Oct
(143) |
Nov
(57) |
Dec
(193) |
2008 |
Jan
(92) |
Feb
(54) |
Mar
(34) |
Apr
(50) |
May
(71) |
Jun
(3) |
Jul
(16) |
Aug
(16) |
Sep
(11) |
Oct
(13) |
Nov
(8) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
(9) |
Apr
(36) |
May
(10) |
Jun
(2) |
Jul
(13) |
Aug
(15) |
Sep
(5) |
Oct
(2) |
Nov
(13) |
Dec
(4) |
2010 |
Jan
(5) |
Feb
(2) |
Mar
(6) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(24) |
Sep
(14) |
Oct
(8) |
Nov
(4) |
Dec
(9) |
2011 |
Jan
(4) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(2) |
Jul
(1) |
Aug
(4) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(1) |
From: Eric P. <th...@us...> - 2011-12-18 16:55:18
|
Update of /cvsroot/sandev/sand/apps/basics/build In directory vz-cvs-3.sog:/tmp/cvs-serv11809 Modified Files: mainbuild.xml Log Message: added includeantruntime=true parameter for java build to avoid warnings about this from ant. Index: mainbuild.xml =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/mainbuild.xml,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** mainbuild.xml 24 Jan 2011 17:19:49 -0000 1.39 --- mainbuild.xml 18 Dec 2011 16:55:15 -0000 1.40 *************** *** 373,377 **** Set the ANT_OPTS environment variable to -Xmx128m instead. --> <javac srcdir="${srcdir}" destdir="${classdir}" ! debug="${debug}" deprecation="on"> <classpath> <pathelement path="${runenv.CLASSPATH}"/> --- 373,377 ---- Set the ANT_OPTS environment variable to -Xmx128m instead. --> <javac srcdir="${srcdir}" destdir="${classdir}" ! debug="${debug}" deprecation="on" includeantruntime="true"> <classpath> <pathelement path="${runenv.CLASSPATH}"/> |
From: Eric P. <th...@us...> - 2011-11-23 21:56:16
|
Update of /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor In directory vz-cvs-3.sog:/tmp/cvs-serv13607 Modified Files: XHTMLSandUIServlet.java Log Message: Since initiating a session while in https no longer seems to survive a redirect back to plain http, write the rememberme cookie to enable login after hitting a nonsecure continue url. Index: XHTMLSandUIServlet.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor/XHTMLSandUIServlet.java,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** XHTMLSandUIServlet.java 24 Jun 2011 20:34:11 -0000 1.40 --- XHTMLSandUIServlet.java 23 Nov 2011 21:56:13 -0000 1.41 *************** *** 961,964 **** --- 961,965 ---- String username=req.getParameter("username"); String password=req.getParameter("password"); + String redirURL=req.getParameter(REDIRURL); if(StringUtil.haveValue(username)) { AuthUser user=null; *************** *** 969,975 **** debugout(" session: " + session.getId()); String rememberme=req.getParameter("rememberme"); ! if((rememberme!=null)&&(!rememberme.equals(""))) { writeRememberMeCookie(user,res); } - String redirURL=req.getParameter(REDIRURL); if(!StringUtil.haveValue(redirURL)) { redirURL=rewriteURL(req, --- 970,977 ---- debugout(" session: " + session.getId()); String rememberme=req.getParameter("rememberme"); ! if(((rememberme!=null)&&(!rememberme.equals("")))|| ! ((StringUtil.haveValue(redirURL))&& //session won't ! (redirURL.startsWith("http://")))) { //survive mode switch writeRememberMeCookie(user,res); } if(!StringUtil.haveValue(redirURL)) { redirURL=rewriteURL(req, |
From: Eric P. <th...@us...> - 2011-09-30 14:48:59
|
Update of /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util In directory vz-cvs-3.sog:/tmp/cvs-serv11302 Modified Files: AuthFilterBase.java Log Message: Added instanceWriteAccess to isGeneratedField and generatedFieldAccess Index: AuthFilterBase.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util/AuthFilterBase.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** AuthFilterBase.java 19 Nov 2009 01:58:59 -0000 1.9 --- AuthFilterBase.java 30 Sep 2011 14:48:57 -0000 1.10 *************** *** 135,138 **** --- 135,144 ---- * transient fields used for caching and message transmission are * generally not part of editing a form. </p> + * + * <p>instanceWriteAccess is a boolean used by cache management + * and should never be displayed or changed by anything other than + * the cache management processing. It is unrestricted because it + * makes no sense to restore its value during internode + * communications. </p> */ protected int generatedFieldAccess(AuthUser user,SandMessage msg, *************** *** 153,157 **** return AuthFilter.AUTH_READONLYNODISP; } //other generated fields ! else if((fieldName.equals("lastAccessedTime"))|| (fieldName.equals("writeAccess"))|| (fieldName.equals("sandTransmitStatus"))|| --- 159,164 ---- return AuthFilter.AUTH_READONLYNODISP; } //other generated fields ! else if((fieldName.equals("instanceWriteAccess"))|| ! (fieldName.equals("lastAccessedTime"))|| (fieldName.equals("writeAccess"))|| (fieldName.equals("sandTransmitStatus"))|| *************** *** 587,590 **** --- 594,598 ---- (fieldName.equals("recordStatus"))|| //other generated fields + (fieldName.equals("instanceWriteAccess"))|| (fieldName.equals("lastAccessedTime"))|| (fieldName.equals("writeAccess"))|| |
From: Eric P. <th...@us...> - 2011-08-13 19:25:00
|
Update of /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator In directory vz-cvs-3.sog:/tmp/cvs-serv3948 Modified Files: NodeClassGenerator.java Log Message: Gate the severity in the generated log method so we don't have to rely on the logger having the appropriate setting. Index: NodeClassGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator/NodeClassGenerator.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** NodeClassGenerator.java 31 Mar 2009 01:19:31 -0000 1.24 --- NodeClassGenerator.java 13 Aug 2011 19:24:58 -0000 1.25 *************** *** 333,336 **** --- 333,338 ---- out.println(" */"); out.println(" public void log(int severity,String msg) {"); + out.println(" if(severity<getLogLevel()) {"); + out.println(" return; }"); out.println(" if(logger==null) { //external adaptor node, root node etc"); out.println(" String nodeName=\"SAND unknown\";"); *************** *** 340,344 **** out.println(" nodeName=getClass().getName();"); out.println(" nodeName=nodeName.substring(nodeName.lastIndexOf(\".\")+1); }"); ! out.println(" System.out.println(Logger.LOGLEVEL_STRINGS[severity] + "); out.println(" \" [\" +nodeName + \"] \" + msg); }"); out.println(" else try {"); --- 342,346 ---- out.println(" nodeName=getClass().getName();"); out.println(" nodeName=nodeName.substring(nodeName.lastIndexOf(\".\")+1); }"); ! out.println(" System.out.println(\"pln\" + Logger.LOGLEVEL_STRINGS[severity] + "); out.println(" \" [\" +nodeName + \"] \" + msg); }"); out.println(" else try {"); |
From: Eric P. <th...@us...> - 2011-08-13 19:22:46
|
Update of /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/Authorizer In directory vz-cvs-3.sog:/tmp/cvs-serv3800 Modified Files: AuthorizerNode.java Log Message: Bumped a couple of LOGDEBUG calls up to LOGINFO. In general this node will not be in DEBUG for production because logging all the messages creates a lot of log spew. Index: AuthorizerNode.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/Authorizer/AuthorizerNode.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** AuthorizerNode.java 22 Oct 2007 22:35:23 -0000 1.9 --- AuthorizerNode.java 13 Aug 2011 19:22:44 -0000 1.10 *************** *** 312,317 **** log(LOGDEBUG,"scrubbing " + retMsg.getShortName()); AuthUser user=authorizeAndScrub(returnMsg); ! log(LOGINFO," <== " + retMsg.getShortName() + ! " <u:" + retMsg.getSandTransmitAuthID() + ">"); AuthWrapper returnWrapper=wrap(user,returnMsg); return returnWrapper; --- 312,321 ---- log(LOGDEBUG,"scrubbing " + retMsg.getShortName()); AuthUser user=authorizeAndScrub(returnMsg); ! String text=" <== " + retMsg.getShortName(); ! if(retMsg instanceof SandCollectionMessage) { ! SandCollectionMessage scm=(SandCollectionMessage)retMsg; ! text+="[" + scm.getElements().length + "]"; } ! text+=" <u:" + retMsg.getSandTransmitAuthID() + ">"; ! log(LOGINFO,text); AuthWrapper returnWrapper=wrap(user,returnMsg); return returnWrapper; *************** *** 468,472 **** } if(user==null) { ! log(LOGDEBUG,"AuthorizerNode.checkMessageAuthorization could not find AuthUser id " + stm.getSandTransmitAuthID()); } AuthFilter af=getAuthFilter(); --- 472,476 ---- } if(user==null) { ! log(LOGWARN,"AuthorizerNode.checkMessageAuthorization could not find AuthUser id " + stm.getSandTransmitAuthID()); } AuthFilter af=getAuthFilter(); *************** *** 543,547 **** String text= "AuthorizerNode.verifyMatchRestrictions could not retrieve match restrictions: " + e; ! log(LOGDEBUG,text); throw new MessagerException(text,e); } --- 547,551 ---- String text= "AuthorizerNode.verifyMatchRestrictions could not retrieve match restrictions: " + e; ! log(LOGWARN,text); throw new MessagerException(text,e); } |
From: Eric P. <th...@us...> - 2011-08-13 19:19:31
|
Update of /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/util In directory vz-cvs-3.sog:/tmp/cvs-serv3652 Modified Files: DirectCallMessager.java Log Message: Factored the inbound and outbound message logging, and dump the size of any returned collections since that's useful to see. Index: DirectCallMessager.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/util/DirectCallMessager.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** DirectCallMessager.java 21 Jul 2006 21:26:23 -0000 1.3 --- DirectCallMessager.java 13 Aug 2011 19:19:28 -0000 1.4 *************** *** 1,5 **** /* * SAND development/deployment environment ! * Copyright (C) 2004,2006 SAND Services Inc. * * This library is free software; you can redistribute it and/or --- 1,5 ---- /* * SAND development/deployment environment ! * Copyright (C) 2004,2006,2011 SAND Services Inc. * * This library is free software; you can redistribute it and/or *************** *** 32,35 **** --- 32,36 ---- import org.sandev.basics.structs.SandTransmitMessage; import org.sandev.basics.structs.SandUpdateMessage; + import org.sandev.basics.structs.SandCollectionMessage; import org.sandev.basics.structs.NodeInstance; import org.sandev.basics.structs.SandException; *************** *** 253,257 **** } if (recipient==null) { ! throw new MessagerException("DirectCallMessgaer.query: Recipient is null"); } if(mode==Messager.MODE_SECURE) { --- 254,258 ---- } if (recipient==null) { ! throw new MessagerException("DirectCallMessager.query: Recipient is null"); } if(mode==Messager.MODE_SECURE) { *************** *** 261,269 **** "Local authorizer " + localAuth + " not found."); } Authorizer locAuthA=(Authorizer)locAuthM; ! info(msg.getShortName() + " ==> " + localAuth + ! " <u:" + ((SandTransmitMessage)msg).getSandTransmitAuthID() + ">"); SandMessage retval=locAuthA.query(msg,recipient,optimize); ! info(" <== " + retval.getShortName() + ! " <u:" + ((SandTransmitMessage)retval).getSandTransmitAuthID() + ">"); return retval; } else { --- 262,268 ---- "Local authorizer " + localAuth + " not found."); } Authorizer locAuthA=(Authorizer)locAuthM; ! logoutbound(msg,locAuthM); SandMessage retval=locAuthA.query(msg,recipient,optimize); ! loginbound(retval); return retval; } else { *************** *** 272,275 **** --- 271,295 ---- + protected void logoutbound(SandMessage msg,Messageable node) + { + SandTransmitMessage stm=(SandTransmitMessage)msg; + info(msg.getShortName() + " ==> " + node + + " <u:" + stm.getSandTransmitAuthID() + ">"); + } + + + protected void loginbound(SandMessage msg) + { + SandTransmitMessage stm=(SandTransmitMessage)msg; + String text=" <== " + msg.getShortName(); + if(msg instanceof SandCollectionMessage) { + SandCollectionMessage scm=(SandCollectionMessage)msg; + text+="[" + scm.getElements().length + "]"; } + text+=" <u:" + stm.getSandTransmitAuthID() + ">"; + info(text); + } + + + /** * Get the local authorizer and register this node as the recipient *************** *** 438,446 **** SandMessage retval=null; try { ! info(msg.getShortName() + " ==> " + recipient + ! " <u:" + ((SandTransmitMessage)msg).getSandTransmitAuthID() + ">"); retval=node.receive(msg); ! info(" <== " + retval.getShortName() + ! " <u:" + ((SandTransmitMessage)retval).getSandTransmitAuthID() + ">"); } catch(SandException e) { String errtext="DirectCallMessager.query: query processing by " + --- 458,464 ---- SandMessage retval=null; try { ! logoutbound(msg,node); retval=node.receive(msg); ! loginbound(retval); } catch(SandException e) { String errtext="DirectCallMessager.query: query processing by " + |
From: Eric P. <th...@us...> - 2011-08-01 23:47:28
|
Update of /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util In directory vz-cvs-3.sog:/tmp/cvs-serv15500 Modified Files: StringUtil.java Log Message: Added ellipsis utility method. Index: StringUtil.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util/StringUtil.java,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** StringUtil.java 9 Mar 2011 17:31:19 -0000 1.44 --- StringUtil.java 1 Aug 2011 23:47:25 -0000 1.45 *************** *** 1457,1460 **** --- 1457,1472 ---- /** + * Return a substring of the source that is at most lenmax chars + * long including ellipsis if necessary. + */ + public static String ellipsis(int lenmax,String source) + { + if((!haveValue(source))||(source.length()<=lenmax)) { + return source; } + return source.substring(0,lenmax-3) + "..."; + } + + + /** * Wrap the given string so there are no more than maxCharsPerLine * without a terminating newline string. |
From: Eric P. <th...@us...> - 2011-07-23 19:17:41
|
Update of /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator In directory vz-cvs-3.sog:/tmp/cvs-serv27816 Modified Files: GeneratorCommon.java Log Message: Added a special case to pluralize method so we get things like "ModeDefs" rather than "ModeDeves" Index: GeneratorCommon.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator/GeneratorCommon.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** GeneratorCommon.java 5 Sep 2010 13:50:16 -0000 1.19 --- GeneratorCommon.java 23 Jul 2011 19:17:39 -0000 1.20 *************** *** 252,257 **** case 'z': return base + "es"; ! case 'f': // I'm not sure all -f words work this way, but most do ! return base.substring(0, base.length()-1) + "ves"; case 'e': if (penultChar == 'f') { // life --> lives --- 252,260 ---- case 'z': return base + "es"; ! case 'f': ! if(base.endsWith("Def")) { ! return base + "s"; } ! else { // I'm not sure all -f words work this way, but most do ! return base.substring(0, base.length()-1) + "ves"; } case 'e': if (penultChar == 'f') { // life --> lives |
From: Eric P. <th...@us...> - 2011-06-24 20:34:15
|
Update of /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor In directory vz-cvs-3.sog:/tmp/cvs-serv23995 Modified Files: XHTMLSandUIServlet.java Log Message: login and logout now support a "continue" parameter with a URL to redirect to on completion. Index: XHTMLSandUIServlet.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor/XHTMLSandUIServlet.java,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** XHTMLSandUIServlet.java 15 Jun 2011 18:46:45 -0000 1.39 --- XHTMLSandUIServlet.java 24 Jun 2011 20:34:11 -0000 1.40 *************** *** 1060,1067 **** //out.println("</div>"); out.println(""); ! if(!(getForgotPasswordPrimary().equals(""))) { //supports forgot password out.println("<p id=\"forgotPasswordLink\">"); ! out.println("<a href=\"?" + XHTMLScreenAdaptor.SCREENPARAM + ! "=forgotPassword\">forgot my password</a>"); out.println("</p>"); } out.println(""); --- 1060,1069 ---- //out.println("</div>"); out.println(""); ! if(!(getForgotPasswordPrimary().equals(""))) { //supports forgot pw out.println("<p id=\"forgotPasswordLink\">"); ! String fpl="?" + XHTMLScreenAdaptor.SCREENPARAM + "=forgotPassword"; ! if(StringUtil.haveValue(redirURL)) { ! fpl+="&" + REDIRURL + "=" + redirURL; } ! out.println("<a href=\"" + fpl + "\">forgot my password</a>"); out.println("</p>"); } out.println(""); *************** *** 1086,1090 **** if(authID!=defaultAuthID) { writeRememberMeCookie(null,res); } ! wrappedRedirect(res,rewriteURL(req,false,null)); return null; } --- 1088,1095 ---- if(authID!=defaultAuthID) { writeRememberMeCookie(null,res); } ! String redirURL=req.getParameter(REDIRURL); ! if(!StringUtil.haveValue(redirURL)) { ! redirURL=rewriteURL(req,false,null); } ! wrappedRedirect(res,redirURL); return null; } *************** *** 1110,1113 **** --- 1115,1119 ---- String primaryVal=req.getParameter(primary); String secondaryVal=req.getParameter(secondary); + String redirURL=req.getParameter(REDIRURL); if((primaryVal!=null)&&(!(primaryVal.trim().equals("")))) { String resultTxt="Your request could not be processed."; *************** *** 1135,1138 **** --- 1141,1147 ---- out.println("</code>"); out.println("<br class=\"fieldLineBreak\"/></span>"); } + if(StringUtil.haveValue(redirURL)) { + out.println("<input type=\"hidden\" name=\"" + REDIRURL + + "\" " + "value=\"" + redirURL + "\"/>"); } out.println("<br class=\"SandUIDefaultFormatting\"/>"); out.println("<br class=\"SandUIDefaultFormatting\"/>"); *************** *** 1152,1155 **** --- 1161,1166 ---- req,true,XHTMLScreenAdaptor.SCREENPARAM + "=login"); out.println(" <p id=\"loginLinkPara\">"); + if(StringUtil.haveValue(redirURL)) { + loginURL+="&" + REDIRURL + "=" + redirURL; } out.println(" <a id=\"loginLink\" href=\"" + loginURL + "\">return to login screen</a>"); out.println(" </p>"); |
From: Eric P. <th...@us...> - 2011-06-15 18:46:47
|
Update of /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor In directory vz-cvs-3.sog:/tmp/cvs-serv18054 Modified Files: XHTMLSandUIServlet.java Log Message: Added a redirect URL parameter to allow returning to a different page than what is specified as the default in the SAND UI. Useful with multiple interfaces to the same server are sharing the login processing. Index: XHTMLSandUIServlet.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor/XHTMLSandUIServlet.java,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** XHTMLSandUIServlet.java 8 Mar 2010 23:12:58 -0000 1.38 --- XHTMLSandUIServlet.java 15 Jun 2011 18:46:45 -0000 1.39 *************** *** 145,148 **** --- 145,154 ---- + /** + * The name of the parameter holding the optional redirect URL. + */ + public final static String REDIRURL = "continue"; + + //////////////////////////////////////// // SandUI data members *************** *** 965,970 **** if((rememberme!=null)&&(!rememberme.equals(""))) { writeRememberMeCookie(user,res); } ! wrappedRedirect(res,rewriteURL( ! req,getSandUI().isDefaultSecuritySecure(),null)); return null; } } UIRenderOutputString uiros=getScreenAdaptor().getUIRenderOutputString(); --- 971,979 ---- if((rememberme!=null)&&(!rememberme.equals(""))) { writeRememberMeCookie(user,res); } ! String redirURL=req.getParameter(REDIRURL); ! if(!StringUtil.haveValue(redirURL)) { ! redirURL=rewriteURL(req, ! getSandUI().isDefaultSecuritySecure(),null); } ! wrappedRedirect(res,redirURL); return null; } } UIRenderOutputString uiros=getScreenAdaptor().getUIRenderOutputString(); *************** *** 1034,1037 **** --- 1043,1050 ---- out.println("</code>"); out.println("<br class=\"fieldLineBreak\"/></span>"); } + String redirURL=req.getParameter(REDIRURL); + if(StringUtil.haveValue(redirURL)) { + out.println("<input type=\"hidden\" name=\"" + REDIRURL + "\" " + + "value=\"" + redirURL + "\"/>"); } out.println("<br class=\"SandUIDefaultFormatting\"/>"); out.println("<br class=\"SandUIDefaultFormatting\"/>"); |
From: Eric P. <th...@us...> - 2011-03-25 18:02:05
|
Update of /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/structs In directory vz-cvs-3.sog:/tmp/cvs-serv26208 Modified Files: SandQueryMessage.java Log Message: Added addOrderBy method to general signature. Useful to have at this level. Index: SandQueryMessage.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/structs/SandQueryMessage.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** SandQueryMessage.java 7 Mar 2011 20:08:31 -0000 1.10 --- SandQueryMessage.java 25 Mar 2011 18:02:03 -0000 1.11 *************** *** 379,382 **** --- 379,388 ---- + /** + * Add the specified ordering to the order by clause + */ + public void addOrderBy(SandAttrVal orderBy); + + //////////////////////////////////////// // page |
From: Eric P. <th...@us...> - 2011-03-09 17:31:21
|
Update of /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util In directory vz-cvs-3.sog:/tmp/cvs-serv27737 Modified Files: StringUtil.java Log Message: Added getRawStackTrace utility method Index: StringUtil.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util/StringUtil.java,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** StringUtil.java 15 Dec 2010 00:57:09 -0000 1.43 --- StringUtil.java 9 Mar 2011 17:31:19 -0000 1.44 *************** *** 33,36 **** --- 33,38 ---- import java.util.Locale; import java.util.TimeZone; + import java.io.PrintWriter; + import java.io.ByteArrayOutputStream; /** *************** *** 1513,1516 **** --- 1515,1536 ---- + /** + * Return the stack trace for the given error as a string. + */ + public static String getRawStackTrace(Throwable error) + { + String retval="initial value"; + try { + ByteArrayOutputStream baos=new ByteArrayOutputStream(); + PrintWriter pw=new PrintWriter(baos); + error.printStackTrace(pw); + pw.close(); //flush contents to baos + retval=baos.toString("UTF-8"); + } catch(Exception e) { + retval="getRawStackTraceFailed: " + e; + } + return retval; + } + } |
From: Eric P. <th...@us...> - 2011-01-24 17:19:57
|
Update of /cvsroot/sandev/sand/apps/basics/build In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv14715 Modified Files: mainbuild.xml Log Message: On to the 1_43 release next Index: mainbuild.xml =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/mainbuild.xml,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** mainbuild.xml 11 Jan 2011 22:44:07 -0000 1.38 --- mainbuild.xml 24 Jan 2011 17:19:49 -0000 1.39 *************** *** 103,107 **** <property name="main.webappdir" value="../webapp"/> <!-- release number for the next release of sandev --> ! <property name="publish.releasename" value="sandev_1_42"/> <property name="taglets" value= --- 103,107 ---- <property name="main.webappdir" value="../webapp"/> <!-- release number for the next release of sandev --> ! <property name="publish.releasename" value="sandev_1_43"/> <property name="taglets" value= |
From: Eric P. <th...@us...> - 2011-01-24 17:04:17
|
Update of /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv11962 Modified Files: FuncSpecGenerator.java Log Message: Commented out the contact info inserted at the bottom of the left nav column until it can be generalized for all projects. Index: FuncSpecGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator/FuncSpecGenerator.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** FuncSpecGenerator.java 22 Aug 2010 07:06:52 -0000 1.11 --- FuncSpecGenerator.java 24 Jan 2011 17:04:09 -0000 1.12 *************** *** 323,332 **** out.println(datestr + " </i></p>"); out.println(""); ! out.println("<p>Contact: </p>"); ! out.println(""); ! out.println("<p><i><a href=\"http://sandservices.com\" target=\"contents\">SAND Services Inc.</a> </p>"); ! out.println("<a href=\"mailto:in...@sa...\">in...@sa...</a> "); ! out.println("</i></p>"); ! out.println(""); out.println("<br /><br />"); out.println(""); --- 323,334 ---- out.println(datestr + " </i></p>"); out.println(""); ! //Commenting this out until it can be generalized. For the slidematch ! //project this doesn't make sense to include. ! //out.println("<p>Contact: </p>"); ! //out.println(""); ! //out.println("<p><i><a href=\"http://sandservices.com\" target=\"contents\">SAND Services Inc.</a> </p>"); ! //out.println("<a href=\"mailto:in...@sa...\">in...@sa...</a> "); ! //out.println("</i></p>"); ! //out.println(""); out.println("<br /><br />"); out.println(""); |
From: Eric P. <th...@us...> - 2011-01-11 22:46:15
|
Update of /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv12578 Modified Files: XMLPersisterGenerator.java Log Message: Factored out backupAndOpenForWrite method for easier use by subclasses. Index: XMLPersisterGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator/XMLPersisterGenerator.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** XMLPersisterGenerator.java 30 Oct 2010 17:32:12 -0000 1.10 --- XMLPersisterGenerator.java 11 Jan 2011 22:46:07 -0000 1.11 *************** *** 565,579 **** out.println(" File readfile=new File(getFileName());"); out.println(" if(writing) {"); ! out.println(" String backupname=getBackupFileName();"); ! out.println(" File backup=new File(backupname);"); ! out.println(" if(backup.exists()) {"); ! out.println(" backup.delete(); }"); ! out.println(" backup=new File(backupname); //reset"); ! out.println(" if(readfile.exists()) {"); ! out.println(" readfile.renameTo(backup); }"); ! out.println(" readfile=new File(backupname); //reset regardless exists or not"); ! out.println(" File rewrite=new File(getFileName());"); ! out.println(" FileWriter fw=new FileWriter(rewrite);"); ! out.println(" pw=new PrintWriter(fw); }"); out.println(" if(readfile.exists()) {"); out.println(" FileReader fr=new FileReader(readfile);"); --- 565,569 ---- out.println(" File readfile=new File(getFileName());"); out.println(" if(writing) {"); ! out.println(" readfile=backupAndOpenForWrite(readfile); }"); out.println(" if(readfile.exists()) {"); out.println(" FileReader fr=new FileReader(readfile);"); *************** *** 587,590 **** --- 577,602 ---- out.println(""); out.println(" /**"); + out.println(" * Delete any existing bak file, move the current file to bak,"); + out.println(" * open for file write."); + out.println(" */"); + out.println(" protected File backupAndOpenForWrite(File readfile)"); + out.println(" throws IOException"); + out.println(" {"); + out.println(" String backupname=getBackupFileName();"); + out.println(" File backup=new File(backupname);"); + out.println(" if(backup.exists()) {"); + out.println(" backup.delete(); }"); + out.println(" backup=new File(backupname); //reset"); + out.println(" if(readfile.exists()) {"); + out.println(" readfile.renameTo(backup); }"); + out.println(" readfile=new File(backupname); //reset regardless if exists or not"); + out.println(" File rewrite=new File(getFileName());"); + out.println(" FileWriter fw=new FileWriter(rewrite);"); + out.println(" pw=new PrintWriter(fw);"); + out.println(" return readfile;"); + out.println(" }"); + out.println(""); + out.println(""); + out.println(" /**"); out.println(" * Close the files we are reading and writing."); out.println(" */"); |
From: Eric P. <th...@us...> - 2011-01-11 22:44:16
|
Update of /cvsroot/sandev/sand/apps/basics/build In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv11749 Modified Files: mainbuild.xml Log Message: On to the next release. Index: mainbuild.xml =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/mainbuild.xml,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** mainbuild.xml 16 Dec 2010 18:25:20 -0000 1.37 --- mainbuild.xml 11 Jan 2011 22:44:07 -0000 1.38 *************** *** 103,107 **** <property name="main.webappdir" value="../webapp"/> <!-- release number for the next release of sandev --> ! <property name="publish.releasename" value="sandev_1_41"/> <property name="taglets" value= --- 103,107 ---- <property name="main.webappdir" value="../webapp"/> <!-- release number for the next release of sandev --> ! <property name="publish.releasename" value="sandev_1_42"/> <property name="taglets" value= |
From: Eric P. <th...@us...> - 2010-12-16 18:28:32
|
Update of /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv29615 Modified Files: InstanceGeneratorBase.java Log Message: Changed isEquivalent so that it calls a new diff method which will report back what the differences are between two instances. Same functionality but much more useful when debugging. Index: InstanceGeneratorBase.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator/InstanceGeneratorBase.java,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** InstanceGeneratorBase.java 31 Mar 2009 01:19:30 -0000 1.55 --- InstanceGeneratorBase.java 16 Dec 2010 18:28:24 -0000 1.56 *************** *** 1,5 **** /* * SAND development/deployment environment ! * Copyright (C) 2003,2006-2009 SAND Services Inc. * * This library is free software; you can redistribute it and/or --- 1,5 ---- /* * SAND development/deployment environment ! * Copyright (C) 2003,2006-2010 SAND Services Inc. * * This library is free software; you can redistribute it and/or *************** *** 2022,2031 **** out.println(" * equivalent to another null array element. </p>"); out.println(" */"); ! out.println(" public boolean isEquivalent(SandMessage sm) {"); out.println(" if(sm==null) {"); ! out.println(" return false; }"); out.println(" if(!(sm instanceof " + classname + ")) {"); ! out.println(" return false; }"); out.println(" " + classname + " msg=(" + classname + ")sm;"); for(int i=0;i<fields.length;i++) { FieldDoc fd=fields[i]; --- 2022,2047 ---- out.println(" * equivalent to another null array element. </p>"); out.println(" */"); ! out.println(" public boolean isEquivalent(SandMessage sm)"); ! out.println(" {"); ! out.println(" if(!StringUtil.haveValue(diff(sm,false))) {"); ! out.println(" return true; }"); ! out.println(" return false;"); ! out.println(" }"); ! out.println(""); ! out.println(""); ! out.println(" /**"); ! out.println(" * Compare the given message and return a description of which"); ! out.println(" * fields are different. If allFields is true then allfields"); ! out.println(" * are compared, otherwise only the first differing field is"); ! out.println(" * returned."); ! out.println(" */"); ! out.println(" public String diff(SandMessage sm,boolean allFields)"); ! out.println(" {"); out.println(" if(sm==null) {"); ! out.println(" return \"Given message is null\"; }"); out.println(" if(!(sm instanceof " + classname + ")) {"); ! out.println(" return \"Given message not a " + classname + ".\"; }"); out.println(" " + classname + " msg=(" + classname + ")sm;"); + out.println(" StringBuffer sbuf=new StringBuffer();"); for(int i=0;i<fields.length;i++) { FieldDoc fd=fields[i]; *************** *** 2049,2053 **** isArray=true; } writeEquivalenceCheck(out,fieldName,fieldType,isStruct,isArray); } ! out.println(" return true;"); out.println(" }"); out.println(""); --- 2065,2069 ---- isArray=true; } writeEquivalenceCheck(out,fieldName,fieldType,isStruct,isArray); } ! out.println(" return sbuf.toString();"); out.println(" }"); out.println(""); *************** *** 2075,2082 **** out.println(indent + "if(((" + thisacc + "==null)&&(" + thatacc + "!=null))||"); out.println(indent + " ((" + thisacc + "!=null)&&(" + thatacc + "==null))) {"); ! out.println(indent + " return false; } //valid array not same as null"); out.println(indent + "if((" + thisacc + "!=null)&&(" + thatacc + "!=null)) {"); out.println(indent + " if(" + thisacc + ".length!=" + thatacc + ".length) {"); ! out.println(indent + " return false; } //array lengths differ"); out.println(indent + " for(int i=0;i<" + fieldName + ".length;i++) {"); indent+=" "; } --- 2091,2100 ---- out.println(indent + "if(((" + thisacc + "==null)&&(" + thatacc + "!=null))||"); out.println(indent + " ((" + thisacc + "!=null)&&(" + thatacc + "==null))) {"); ! out.println(indent + " sbuf.append(\"" + fieldName + " array not same as null. \");"); ! out.println(indent + " if(!allFields) return sbuf.toString(); }"); out.println(indent + "if((" + thisacc + "!=null)&&(" + thatacc + "!=null)) {"); out.println(indent + " if(" + thisacc + ".length!=" + thatacc + ".length) {"); ! out.println(indent + " sbuf.append(\"" + fieldName + " array lengths differ. \");"); ! out.println(indent + " if(!allFields) return sbuf.toString(); }"); out.println(indent + " for(int i=0;i<" + fieldName + ".length;i++) {"); indent+=" "; } *************** *** 2126,2130 **** out.print(")"); } out.println(" {"); ! out.println(indent + " " + "return false; }"); if(isArray) { out.println(indent + "} }"); } --- 2144,2149 ---- out.print(")"); } out.println(" {"); ! out.println(indent + " sbuf.append(\"" + fieldName + " not equivalent. \");"); ! out.println(indent + " if(!allFields) return sbuf.toString(); }"); if(isArray) { out.println(indent + "} }"); } |
From: Eric P. <th...@us...> - 2010-12-16 18:26:14
|
Update of /cvsroot/sandev/sand/platform/docs In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv29425 Modified Files: release.txt Log Message: Changed this so it doesn't have to be modified for every minor release. Index: release.txt =================================================================== RCS file: /cvsroot/sandev/sand/platform/docs/release.txt,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** release.txt 15 Dec 2010 01:19:01 -0000 1.35 --- release.txt 16 Dec 2010 18:26:07 -0000 1.36 *************** *** 13,17 **** customized or replaced. ! SANDev 1.40 includes the following updates and changes: - Minor bug fixes and improvements. --- 13,17 ---- customized or replaced. ! This release of SANDev includes the following updates and changes: - Minor bug fixes and improvements. |
From: Eric P. <th...@us...> - 2010-12-16 18:25:28
|
Update of /cvsroot/sandev/sand/apps/basics/build In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv29088 Modified Files: mainbuild.xml Log Message: On to the next release. Index: mainbuild.xml =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/mainbuild.xml,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** mainbuild.xml 15 Dec 2010 01:18:20 -0000 1.36 --- mainbuild.xml 16 Dec 2010 18:25:20 -0000 1.37 *************** *** 103,107 **** <property name="main.webappdir" value="../webapp"/> <!-- release number for the next release of sandev --> ! <property name="publish.releasename" value="sandev_1_40"/> <property name="taglets" value= --- 103,107 ---- <property name="main.webappdir" value="../webapp"/> <!-- release number for the next release of sandev --> ! <property name="publish.releasename" value="sandev_1_41"/> <property name="taglets" value= |
From: Eric P. <th...@us...> - 2010-12-16 18:23:43
|
Update of /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv28774 Modified Files: DateUtil.java Log Message: Always set the millis to zero in readDefaultUSAFullValue, otherwise comparisons can be thrown off. Index: DateUtil.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util/DateUtil.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** DateUtil.java 15 Dec 2010 00:55:22 -0000 1.23 --- DateUtil.java 16 Dec 2010 18:23:35 -0000 1.24 *************** *** 509,513 **** * Read the standard USA full date, regardless of what our current * locale and date preferences are. Returns null if the date cannot ! * be read. Example date: "Nov 25, 2008 10:15:53 AM" */ public static Date readDefaultUSAFullValue(String val) --- 509,514 ---- * Read the standard USA full date, regardless of what our current * locale and date preferences are. Returns null if the date cannot ! * be read. Example date: "Nov 25, 2008 10:15:53 AM". The millis ! * will always be set to zero. */ public static Date readDefaultUSAFullValue(String val) *************** *** 586,589 **** --- 587,591 ---- //System.out.println("hour: " + hour); Calendar cal=Calendar.getInstance(); + cal.set(Calendar.MILLISECOND,0); //zero any existing value cal.set(year,month,day,hour,minutes,seconds); return cal.getTime(); |
From: Eric P. <th...@us...> - 2010-12-15 01:19:08
|
Update of /cvsroot/sandev/sand/platform/docs In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv17570 Modified Files: release.txt Log Message: On to the next release Index: release.txt =================================================================== RCS file: /cvsroot/sandev/sand/platform/docs/release.txt,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** release.txt 4 Nov 2010 17:26:21 -0000 1.34 --- release.txt 15 Dec 2010 01:19:01 -0000 1.35 *************** *** 13,17 **** customized or replaced. ! SANDev 1.39 includes the following updates and changes: - Minor bug fixes and improvements. --- 13,17 ---- customized or replaced. ! SANDev 1.40 includes the following updates and changes: - Minor bug fixes and improvements. |
From: Eric P. <th...@us...> - 2010-12-15 01:18:28
|
Update of /cvsroot/sandev/sand/apps/basics/build In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv17459 Modified Files: mainbuild.xml Log Message: On to the next release. Index: mainbuild.xml =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/mainbuild.xml,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** mainbuild.xml 4 Nov 2010 17:27:10 -0000 1.35 --- mainbuild.xml 15 Dec 2010 01:18:20 -0000 1.36 *************** *** 103,107 **** <property name="main.webappdir" value="../webapp"/> <!-- release number for the next release of sandev --> ! <property name="publish.releasename" value="sandev_1_39"/> <property name="taglets" value= --- 103,107 ---- <property name="main.webappdir" value="../webapp"/> <!-- release number for the next release of sandev --> ! <property name="publish.releasename" value="sandev_1_40"/> <property name="taglets" value= |
From: Eric P. <th...@us...> - 2010-12-15 01:01:24
|
Update of /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv11679 Modified Files: XMLSerializerGenerator.java Log Message: After yet another uninformative crash where readField found something unexpected, I actually added some context through an additional method parameter that gives a clue where we were coming from. So hopefully the next time we are trying to decipher the crash message from a corrupted file it will be ever so slightly easier. Index: XMLSerializerGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator/XMLSerializerGenerator.java,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** XMLSerializerGenerator.java 4 Nov 2010 16:52:55 -0000 1.25 --- XMLSerializerGenerator.java 15 Dec 2010 00:53:22 -0000 1.26 *************** *** 298,302 **** out.println(" info(\"XMLSerializer.staticRead original failure: \" + e);"); out.println(" e.printStackTrace();"); ! out.println(" throw new IOException(\"Read failure: \" + e);"); out.println(" }"); out.println(" }"); --- 298,303 ---- out.println(" info(\"XMLSerializer.staticRead original failure: \" + e);"); out.println(" e.printStackTrace();"); ! out.println(" throw new IOException(\"Read failure: \" + e +"); ! out.println(" \" XMLStandardReader failure: \" + e2);"); out.println(" }"); out.println(" }"); *************** *** 765,769 **** out.println(" StreamTokenizer st=getStreamToker(in);"); out.println(" String className=readElementLabel(st);"); ! out.println(" SandAttrVal av=readField(st);"); out.println(" return read(className,st);"); out.println(" }"); --- 766,770 ---- out.println(" StreamTokenizer st=getStreamToker(in);"); out.println(" String className=readElementLabel(st);"); ! out.println(" SandAttrVal av=readField(st,\"top level read\");"); out.println(" return read(className,st);"); out.println(" }"); *************** *** 778,782 **** out.println(" StreamTokenizer st=getStreamToker(in);"); out.println(" String className=readElementLabel(st);"); ! out.println(" SandAttrVal av=readField(st);"); out.println(" return readArray(className,st);"); out.println(" }"); --- 779,783 ---- out.println(" StreamTokenizer st=getStreamToker(in);"); out.println(" String className=readElementLabel(st);"); ! out.println(" SandAttrVal av=readField(st,\"top level readArray\");"); out.println(" return readArray(className,st);"); out.println(" }"); *************** *** 938,942 **** out.println(" ((label!=null)&&(!label.equals(\"</" + className + ">\")));"); out.println(" label=readElementLabel(st)) {"); ! out.println(" SandAttrVal sav=readField(st);"); out.println(" String fieldName=sav.getVal();"); out.println(" if(fieldName==null) {"); --- 939,943 ---- out.println(" ((label!=null)&&(!label.equals(\"</" + className + ">\")));"); out.println(" label=readElementLabel(st)) {"); ! out.println(" SandAttrVal sav=readField(st,\"read" + className + "\");"); out.println(" String fieldName=sav.getVal();"); out.println(" if(fieldName==null) {"); *************** *** 1109,1113 **** out.println(" if(label.equals(endToken)) {"); out.println(" throw new IOException(\"XMLSerializer.read" + className + "Array encountered \" + endToken + \" prematurely\"); }"); ! out.println(" sav=readField(st); //read the field and ignore it"); out.println(" retval[i]=(" + className + ")read(label,st); }"); out.println(" String label=readElementLabel(st);"); --- 1110,1114 ---- out.println(" if(label.equals(endToken)) {"); out.println(" throw new IOException(\"XMLSerializer.read" + className + "Array encountered \" + endToken + \" prematurely\"); }"); ! out.println(" sav=readField(st,\"read" + className + "[]\"); //read the field and ignore it"); out.println(" retval[i]=(" + className + ")read(label,st); }"); out.println(" String label=readElementLabel(st);"); *************** *** 1153,1157 **** out.println(" ((label!=null)&&(!label.equals(\"</" + className + "Update>\")));"); out.println(" label=readElementLabel(st)) {"); ! out.println(" SandAttrVal sav=readField(st);"); out.println(" String fieldName=sav.getVal();"); out.println(" if(fieldName==null) {"); --- 1154,1158 ---- out.println(" ((label!=null)&&(!label.equals(\"</" + className + "Update>\")));"); out.println(" label=readElementLabel(st)) {"); ! out.println(" SandAttrVal sav=readField(st,\"read" + className + "Update\");"); out.println(" String fieldName=sav.getVal();"); out.println(" if(fieldName==null) {"); *************** *** 1208,1212 **** out.println(" ((label!=null)&&(!label.equals(\"</" + className + "Query>\")));"); out.println(" label=readElementLabel(st)) {"); ! out.println(" SandAttrVal sav=readField(st);"); out.println(" String fieldName=sav.getVal();"); out.println(" if(fieldName==null) {"); --- 1209,1213 ---- out.println(" ((label!=null)&&(!label.equals(\"</" + className + "Query>\")));"); out.println(" label=readElementLabel(st)) {"); ! out.println(" SandAttrVal sav=readField(st,\"read" + className + "Query\");"); out.println(" String fieldName=sav.getVal();"); out.println(" if(fieldName==null) {"); *************** *** 1261,1265 **** out.println(" ((label!=null)&&(!label.equals(\"</" + className + "Collection>\")));"); out.println(" label=readElementLabel(st)) {"); ! out.println(" SandAttrVal sav=readField(st);"); out.println(" String fieldName=sav.getVal();"); out.println(" if(fieldName==null) {"); --- 1262,1266 ---- out.println(" ((label!=null)&&(!label.equals(\"</" + className + "Collection>\")));"); out.println(" label=readElementLabel(st)) {"); ! out.println(" SandAttrVal sav=readField(st,\"read" + className + "Collection\");"); out.println(" String fieldName=sav.getVal();"); out.println(" if(fieldName==null) {"); *************** *** 1365,1378 **** out.println(" * other than FIELDNAME"); out.println(" */"); ! out.println(" protected static SandAttrVal readField(StreamTokenizer st)"); out.println(" throws IOException"); out.println(" {"); out.println(" SandAttrVal retval=readAttrVal(st);"); out.println(" if(retval==null) {"); ! out.println(" throw new IOException(\"XMLSerializer.readField got a null SandAttrVal.\"); }"); out.println(" if(retval.getAttr()==null) {"); ! out.println(" throw new IOException(\"XMLSerializer.readField got a null attribute\"); }"); out.println(" if(!(retval.getAttr()).equals(FIELDNAME)) {"); ! out.println(" throw new IOException(\"XMLSerializer.readField got a \" + retval.getAttr() + \" instead.\"); }"); out.println(" return retval;"); out.println(" }"); --- 1366,1379 ---- out.println(" * other than FIELDNAME"); out.println(" */"); ! out.println(" protected static SandAttrVal readField(StreamTokenizer st,String context)"); out.println(" throws IOException"); out.println(" {"); out.println(" SandAttrVal retval=readAttrVal(st);"); out.println(" if(retval==null) {"); ! out.println(" throw new IOException(\"XMLSerializer.readField got a null SandAttrVal. \" + context); }"); out.println(" if(retval.getAttr()==null) {"); ! out.println(" throw new IOException(\"XMLSerializer.readField got a null attribute. \" + context); }"); out.println(" if(!(retval.getAttr()).equals(FIELDNAME)) {"); ! out.println(" throw new IOException(\"XMLSerializer.readField got \\\"\" + retval.getAttr() + \"\\\" instead. \" + context); }"); out.println(" return retval;"); out.println(" }"); |
From: Eric P. <th...@us...> - 2010-12-15 01:01:24
|
Update of /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv13840 Modified Files: StringUtil.java Log Message: getDateValue now checks default USA time for additional robustness. Index: StringUtil.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util/StringUtil.java,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** StringUtil.java 17 Oct 2010 17:14:17 -0000 1.42 --- StringUtil.java 15 Dec 2010 00:57:09 -0000 1.43 *************** *** 461,464 **** --- 461,467 ---- else if(DateUtil.isQueryValue(val)) { return DateUtil.readQueryValue(val); } + //if default USA fully specified time, then convert it + else if(DateUtil.isDefaultUSAFullValue(val)) { + return DateUtil.readDefaultUSAFullValue(val); } //otherwise try and parse it return df.parse(val.trim()); |
From: Eric P. <th...@us...> - 2010-12-15 00:55:30
|
Update of /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv13229 Modified Files: DateUtil.java Log Message: Added a utility method that knows how to read our standard USA datetime format. Just in case it sneaks into some bootstrap data that you want loaded in a different Locale. Index: DateUtil.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/src/org/sandev/basics/util/DateUtil.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** DateUtil.java 17 Oct 2010 17:16:05 -0000 1.22 --- DateUtil.java 15 Dec 2010 00:55:22 -0000 1.23 *************** *** 474,477 **** --- 474,620 ---- /** + * Return true if the given string is understood as a standard + * full USA time specification, false otherwise. Occasionally you + * need to ship initial data created using one date format to + * other date format environments. The standard date query value + * format is probably the best general standard, but USA full + * shows up enough that it seems worth being able to just + * recognize and convert it if needed. This method tries to + * convert and if the conversion fails then it returns false. + */ + public static boolean isDefaultUSAFullValue(String val) + { + if(readDefaultUSAFullValue(val)!=null) { + return true; } + return false; + } + + + /** + * Some test dates that readDefaultUSAFullValue can handle + */ + public final static String[] USAFULLTESTDATES = { + "May 8, 2008 3:37:57 PM", + "Jan 1, 2010 12:00:00 AM", + "Jan 1, 2010 12:00:00 PM", + "Jan 1, 2010 3:00:00 PM", + "Jan 1, 2010 3:00 PM", + "Jan 1, 2010", + "Jan 1, 2010 15:00:00", + "Jan 1, 2010 15:00", + "Nov 25, 2008 10:15:53 AM" }; + + + /** + * Read the standard USA full date, regardless of what our current + * locale and date preferences are. Returns null if the date cannot + * be read. Example date: "Nov 25, 2008 10:15:53 AM" + */ + public static Date readDefaultUSAFullValue(String val) + { + if(!StringUtil.haveValue(val)) { + return null; } + val=val.toLowerCase().trim(); //just to be consistent + if(val.length()<11) { //nov 2, 2010 + return null; } + String monthstr=val.substring(0,3); //nov + //System.out.println("monthstr: " + monthstr); + int month=convertUSAMMM(monthstr); + //System.out.println("month: " + month); + if(month<0) { //Calendar.JANUARY==0 + return null; } + String rest=val.substring(4); //25, 2008 10:15:53 am + //System.out.println("rest: " + rest); + int commaindex=rest.indexOf(","); + if(commaindex<=0) { + return null; } + String daystr=rest.substring(0,commaindex); //25 + //System.out.println("daystr: " + daystr); + int day=StringUtil.safeGetIntValue(daystr); + //System.out.println("day: " + day); + if((day<=0)||(day>31)) { + return null; } + rest=rest.substring(commaindex+2); //2008 10:15:53 am + //System.out.println("rest: " + rest); + String yearstr=rest.substring(0,4); //2008 + //System.out.println("yearstr: " + yearstr); + int year=StringUtil.safeGetIntValue(yearstr); + //System.out.println("year: " + year); + if(year<=0) { + return null; } + rest=rest.substring(4); + rest=rest.trim(); //10:15:53 am + //System.out.println("rest: " + rest); + int hour=0; + int minutes=0; + int seconds=0; + if((rest.length()>=2)&&(Character.isDigit(rest.charAt(0)))) { + int hourstrlen=1; + if(Character.isDigit(rest.charAt(1))) { + hourstrlen=2; } + String hourstr=rest.substring(0,hourstrlen); + //System.out.println("hourstr: " + hourstr); + hour=StringUtil.safeGetIntValue(hourstr); + //System.out.println("hour: " + hour); + rest=rest.substring(hourstrlen); + if(rest.startsWith(":")) { + rest=rest.substring(1); } //15:53 am + //System.out.println("rest: " + rest); + if((rest.length()>=2)&&(Character.isDigit(rest.charAt(0)))&& + (Character.isDigit(rest.charAt(1)))) { + String minstr=rest.substring(0,2); + //System.out.println("minstr: " + minstr); + minutes=StringUtil.safeGetIntValue(minstr); + //System.out.println("minutes: " + minutes); + rest=rest.substring(2); + if(rest.startsWith(":")) { + rest=rest.substring(1); } } //53 am + //System.out.println("rest: " + rest); + if((rest.length()>=2)&&(Character.isDigit(rest.charAt(0)))&& + (Character.isDigit(rest.charAt(1)))) { + String secstr=rest.substring(0,2); + //System.out.println("secstr: " + secstr); + seconds=StringUtil.safeGetIntValue(secstr); + //System.out.println("seconds: " + seconds); + rest=rest.substring(2); + rest.trim(); } //am + //System.out.println("rest: " + rest); + if((rest.endsWith("am"))&&(hour==12)) { + hour=0; } + else if((rest.endsWith("pm"))&&(hour<12)) { + hour+=12; } } + //System.out.println("hour: " + hour); + Calendar cal=Calendar.getInstance(); + cal.set(year,month,day,hour,minutes,seconds); + return cal.getTime(); + } + + + /** + * Return the month as a calendar constant value, or -1 if the + * value is not understood. + */ + public static int convertUSAMMM(String month) + { + if(!StringUtil.haveValue(month)) { + return -1; } + month=month.toLowerCase().trim(); //may as well be nice about it. + if("jan".equals(month)) return Calendar.JANUARY; + if("feb".equals(month)) return Calendar.FEBRUARY; + if("mar".equals(month)) return Calendar.MARCH; + if("apr".equals(month)) return Calendar.APRIL; + if("may".equals(month)) return Calendar.MAY; + if("jun".equals(month)) return Calendar.JUNE; + if("jul".equals(month)) return Calendar.JULY; + if("aug".equals(month)) return Calendar.AUGUST; + if("sep".equals(month)) return Calendar.SEPTEMBER; + if("oct".equals(month)) return Calendar.OCTOBER; + if("nov".equals(month)) return Calendar.NOVEMBER; + if("dec".equals(month)) return Calendar.DECEMBER; + return -1; + } + + + /** * Return true if the given date is within the given number of * seconds from our current time, false otherwise. |