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. |