You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(28) |
Dec
(47) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(103) |
Feb
(44) |
Mar
(65) |
Apr
(140) |
May
(72) |
Jun
(233) |
Jul
(466) |
Aug
(51) |
Sep
(2) |
Oct
(17) |
Nov
(1) |
Dec
(7) |
2004 |
Jan
(8) |
Feb
(5) |
Mar
(28) |
Apr
(9) |
May
(7) |
Jun
|
Jul
(7) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2005 |
Jan
(1) |
Feb
|
Mar
|
Apr
(3) |
May
(24) |
Jun
(7) |
Jul
(2) |
Aug
|
Sep
|
Oct
(4) |
Nov
(3) |
Dec
(12) |
2006 |
Jan
|
Feb
(3) |
Mar
(8) |
Apr
(59) |
May
|
Jun
|
Jul
|
Aug
(24) |
Sep
|
Oct
|
Nov
|
Dec
(3) |
2007 |
Jan
|
Feb
|
Mar
|
Apr
(8) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
(3) |
2008 |
Jan
|
Feb
(1) |
Mar
(16) |
Apr
(2) |
May
(2) |
Jun
|
Jul
(11) |
Aug
(3) |
Sep
(9) |
Oct
(9) |
Nov
(44) |
Dec
(34) |
2009 |
Jan
(12) |
Feb
(14) |
Mar
(11) |
Apr
(16) |
May
(41) |
Jun
(19) |
Jul
(33) |
Aug
(8) |
Sep
(3) |
Oct
|
Nov
|
Dec
(7) |
2010 |
Jan
(8) |
Feb
(50) |
Mar
(3) |
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(16) |
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Eric B. R. <eb...@tc...> - 2006-03-17 23:47:15
|
Looks like I committed a change the re-organized the imports in FastWriter. Sorry about that. We've switched to SVN here at the office, and apparently I've totally forgotten how to use CVS! eric Begin forwarded message: > From: "Eric B. Ridge" <dr...@us...> > Date: March 17, 2006 6:44:11 PM EST > To: web...@li... > Subject: [WebMacro-cvs] webmacro/src/org/webmacro FastWriter.java, > 1.31,1.32 > > Update of /cvsroot/webmacro/webmacro/src/org/webmacro > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12188/src/org/ > webmacro > > Modified Files: > FastWriter.java > Log Message: > removing test file > > > Index: FastWriter.java > =================================================================== > RCS file: /cvsroot/webmacro/webmacro/src/org/webmacro/ > FastWriter.java,v > retrieving revision 1.31 > retrieving revision 1.32 > diff -C2 -d -r1.31 -r1.32 > *** FastWriter.java 16 Jul 2003 06:44:59 -0000 1.31 > --- FastWriter.java 17 Mar 2006 23:44:09 -0000 1.32 > *************** > *** 24,33 **** > package org.webmacro; > > - import java.io.*; > - > import org.webmacro.util.ByteBufferOutputStream; > import org.webmacro.util.Encoder; > import org.webmacro.util.EncoderProvider; > > > /** > --- 24,33 ---- > package org.webmacro; > > import org.webmacro.util.ByteBufferOutputStream; > import org.webmacro.util.Encoder; > import org.webmacro.util.EncoderProvider; > > + import java.io.*; > + > > /** > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting > language > that extends applications into web and mobile media. Attend the > live webcast > and join the prime developer group breaking into this new coding > territory! > http://sel.as-us.falkag.net/sel? > cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Webmacro-cvs mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-cvs |
From: Eric B. R. <eb...@tc...> - 2006-03-17 23:44:31
|
Okay, I think the commit mailer is fixed now. Apparently the script we had is outdated and we're supposed to use a different one. The docs are kinda vague (http://sourceforge.net/docman/display_doc.php? docid=29894&group_id=1#syncmail), and I assume are meant to be taken literally. <long pause> yeah, it's working. eric On Mar 17, 2006, at 4:23 PM, Eric B. Ridge wrote: > Is that broken? I set that up, based on SourceForge instructions, > back when we first moved to SF. I guess their mail notification > jazz has changed since then. I'll look into it over the weekend. > It requires mucking around inside the CVSROOT stuff. > > eric > > On Mar 17, 2006, at 3:24 PM, Keats Kirsch wrote: > >> I believe this is a longstanding problem with the script that is >> supposed to notify people of CVS changes. I've never worried >> about it, but I suppose we should try to get it fixed someday. >> >> Keats >> >> Alex Twisleton-Wykeham-Fiennes wrote: >> >>> All, >>> >>> I've added all of the publically shown code that I've been >>> working on to CVS, and checked it out into a different directory >>> and it all still seems to pass OK. >>> >>> However, I have been getting some rather odd messages in my CVS >>> client:- >>> >>> /cvsroot/webmacro/webmacro/src/org/webmacro/util/ >>> ByteBufferOutputStream.java,v <-- ByteBufferOutputStream.java >>> new revision: 1.9; previous revision: 1.8 >>> done >>> Mailing web...@li...... >>> Generating notification message... >>> Generating notification message... done. >>> Mailing web...@li...... >>> Generating notification message... >>> Traceback (most recent call last): >>> File "/cvsroot/webmacro/CVSROOT/syncmail", line 322, in ? >>> main() >>> File "/cvsroot/webmacro/CVSROOT/syncmail", line 315, in main >>> blast_mail(subject, people, specs[1:], contextlines, fromhost) >>> File "/cvsroot/webmacro/CVSROOT/syncmail", line 221, in blast_mail >>> conn.connect(MAILHOST, MAILPORT) >>> File "/usr/lib/python2.3/smtplib.py", line 288, in connect >>> for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM): >>> socket.gaierror: (-2, 'Name or service not known') >>> >>> This doesn't look quite right to me, and although subscribed to >>> webmacro-cvs, I don't appear to be getting copies of my own >>> commits which also doesn't feel correct. >>> >>> Is this a known problem or do you want me to have a further look >>> into it? >>> >>> Alex >>> >>> >>> ------------------------------------------------------- >>> This SF.Net email is sponsored by xPML, a groundbreaking >>> scripting language >>> that extends applications into web and mobile media. Attend the >>> live webcast >>> and join the prime developer group breaking into this new coding >>> territory! >>> http://sel.as-us.falkag.net/sel? >>> cmd=lnk&kid=110944&bid=241720&dat=121642 >>> _______________________________________________ >>> Webmacro-devel mailing list >>> Web...@li... >>> https://lists.sourceforge.net/lists/listinfo/webmacro-devel >>> >>> >> >> >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by xPML, a groundbreaking scripting >> language >> that extends applications into web and mobile media. Attend the >> live webcast >> and join the prime developer group breaking into this new coding >> territory! >> http://sel.as-us.falkag.net/sel? >> cmd=lnk&kid=110944&bid=241720&dat=121642 >> _______________________________________________ >> Webmacro-devel mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/webmacro-devel > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting > language > that extends applications into web and mobile media. Attend the > live webcast > and join the prime developer group breaking into this new coding > territory! > http://sel.as-us.falkag.net/sel? > cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Webmacro-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-devel |
From: Eric B. R. <eb...@tc...> - 2006-03-17 21:24:02
|
Is that broken? I set that up, based on SourceForge instructions, back when we first moved to SF. I guess their mail notification jazz has changed since then. I'll look into it over the weekend. It requires mucking around inside the CVSROOT stuff. eric On Mar 17, 2006, at 3:24 PM, Keats Kirsch wrote: > I believe this is a longstanding problem with the script that is > supposed to notify people of CVS changes. I've never worried about > it, but I suppose we should try to get it fixed someday. > > Keats > > Alex Twisleton-Wykeham-Fiennes wrote: > >> All, >> >> I've added all of the publically shown code that I've been working >> on to CVS, and checked it out into a different directory and it >> all still seems to pass OK. >> >> However, I have been getting some rather odd messages in my CVS >> client:- >> >> /cvsroot/webmacro/webmacro/src/org/webmacro/util/ >> ByteBufferOutputStream.java,v <-- ByteBufferOutputStream.java >> new revision: 1.9; previous revision: 1.8 >> done >> Mailing web...@li...... >> Generating notification message... >> Generating notification message... done. >> Mailing web...@li...... >> Generating notification message... >> Traceback (most recent call last): >> File "/cvsroot/webmacro/CVSROOT/syncmail", line 322, in ? >> main() >> File "/cvsroot/webmacro/CVSROOT/syncmail", line 315, in main >> blast_mail(subject, people, specs[1:], contextlines, fromhost) >> File "/cvsroot/webmacro/CVSROOT/syncmail", line 221, in blast_mail >> conn.connect(MAILHOST, MAILPORT) >> File "/usr/lib/python2.3/smtplib.py", line 288, in connect >> for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM): >> socket.gaierror: (-2, 'Name or service not known') >> >> This doesn't look quite right to me, and although subscribed to >> webmacro-cvs, I don't appear to be getting copies of my own >> commits which also doesn't feel correct. >> >> Is this a known problem or do you want me to have a further look >> into it? >> >> Alex >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by xPML, a groundbreaking scripting >> language >> that extends applications into web and mobile media. Attend the >> live webcast >> and join the prime developer group breaking into this new coding >> territory! >> http://sel.as-us.falkag.net/sel? >> cmd=lnk&kid=110944&bid=241720&dat=121642 >> _______________________________________________ >> Webmacro-devel mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/webmacro-devel >> >> > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting > language > that extends applications into web and mobile media. Attend the > live webcast > and join the prime developer group breaking into this new coding > territory! > http://sel.as-us.falkag.net/sel? > cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Webmacro-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-devel |
From: Keats K. <ke...@xa...> - 2006-03-17 21:07:52
|
I believe this is a longstanding problem with the script that is supposed to notify people of CVS changes. I've never worried about it, but I suppose we should try to get it fixed someday. Keats Alex Twisleton-Wykeham-Fiennes wrote: >All, > >I've added all of the publically shown code that I've been working on to CVS, >and checked it out into a different directory and it all still seems to pass >OK. > >However, I have been getting some rather odd messages in my CVS client:- > >/cvsroot/webmacro/webmacro/src/org/webmacro/util/ByteBufferOutputStream.java,v ><-- ByteBufferOutputStream.java >new revision: 1.9; previous revision: 1.8 >done >Mailing web...@li...... >Generating notification message... >Generating notification message... done. >Mailing web...@li...... >Generating notification message... >Traceback (most recent call last): > File "/cvsroot/webmacro/CVSROOT/syncmail", line 322, in ? > main() > File "/cvsroot/webmacro/CVSROOT/syncmail", line 315, in main > blast_mail(subject, people, specs[1:], contextlines, fromhost) > File "/cvsroot/webmacro/CVSROOT/syncmail", line 221, in blast_mail > conn.connect(MAILHOST, MAILPORT) > File "/usr/lib/python2.3/smtplib.py", line 288, in connect > for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM): >socket.gaierror: (-2, 'Name or service not known') > >This doesn't look quite right to me, and although subscribed to webmacro-cvs, >I don't appear to be getting copies of my own commits which also doesn't feel >correct. > >Is this a known problem or do you want me to have a further look into it? > >Alex > > >------------------------------------------------------- >This SF.Net email is sponsored by xPML, a groundbreaking scripting language >that extends applications into web and mobile media. Attend the live webcast >and join the prime developer group breaking into this new coding territory! >http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >_______________________________________________ >Webmacro-devel mailing list >Web...@li... >https://lists.sourceforge.net/lists/listinfo/webmacro-devel > > > |
From: Alex Twisleton-Wykeham-F. <al...@fi...> - 2006-03-17 19:17:15
|
All, I've added all of the publically shown code that I've been working on to CVS, and checked it out into a different directory and it all still seems to pass OK. However, I have been getting some rather odd messages in my CVS client:- /cvsroot/webmacro/webmacro/src/org/webmacro/util/ByteBufferOutputStream.java,v <-- ByteBufferOutputStream.java new revision: 1.9; previous revision: 1.8 done Mailing web...@li...... Generating notification message... Generating notification message... done. Mailing web...@li...... Generating notification message... Traceback (most recent call last): File "/cvsroot/webmacro/CVSROOT/syncmail", line 322, in ? main() File "/cvsroot/webmacro/CVSROOT/syncmail", line 315, in main blast_mail(subject, people, specs[1:], contextlines, fromhost) File "/cvsroot/webmacro/CVSROOT/syncmail", line 221, in blast_mail conn.connect(MAILHOST, MAILPORT) File "/usr/lib/python2.3/smtplib.py", line 288, in connect for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM): socket.gaierror: (-2, 'Name or service not known') This doesn't look quite right to me, and although subscribed to webmacro-cvs, I don't appear to be getting copies of my own commits which also doesn't feel correct. Is this a known problem or do you want me to have a further look into it? Alex |
From: Keats K. <ke...@xa...> - 2006-02-21 03:33:47
|
I've never spoken to Justin other than via email a couple of times years ago. However I think Brian Goetz knows him, so maybe we could ask him to put out feelers. Keats Marc Palmer wrote: > > On 20 Feb 2006, at 12:00, Endre Stølsvik wrote: > >> Hi! >> >> I don't want to let go on this one quite yet, and was wondering >> whether any of you folks have any contact with Justin Wells, and >> would be able to ask him whether he was willing to "give up the >> grip" on WebMacro. I think that it would do WebMacro good, and on >> the opposite side, I don't think that there is that much to be had >> on the advertising side for the company Semiotek. >> (.. who's site "http://www.semiotek.com/" surprisingly currently >> contains only the words "Move along - nothing to see here".) > > > I've mailed Justin in the past but I don't have any particular > relationship with him. Anybody here got anything better? > > If not I'm happening to fire him an email - but the last one I sent > him didn't solicit a reply. > > Cheers |
From: Marc P. <ma...@an...> - 2006-02-20 20:55:06
|
On 20 Feb 2006, at 12:00, Endre St=F8lsvik wrote: > Hi! > > I don't want to let go on this one quite yet, and was wondering =20 > whether any of you folks have any contact with Justin Wells, and =20 > would be able to ask him whether he was willing to "give up the =20 > grip" on WebMacro. I think that it would do WebMacro good, and on =20 > the opposite side, I don't think that there is that much to be had =20 > on the advertising side for the company Semiotek. > (.. who's site "http://www.semiotek.com/" surprisingly currently =20 > contains only the words "Move along - nothing to see here".) I've mailed Justin in the past but I don't have any particular =20 relationship with him. Anybody here got anything better? If not I'm happening to fire him an email - but the last one I sent =20 him didn't solicit a reply. Cheers |
From: <Web...@St...> - 2006-02-20 12:01:01
|
Hi! I don't want to let go on this one quite yet, and was wondering whether any of you folks have any contact with Justin Wells, and would be able to ask him whether he was willing to "give up the grip" on WebMacro. I think that it would do WebMacro good, and on the opposite side, I don't think that there is that much to be had on the advertising side for the company Semiotek. (.. who's site "http://www.semiotek.com/" surprisingly currently contains only the words "Move along - nothing to see here".) Regards, Endre. |
From: Marc P. <ma...@an...> - 2005-12-11 16:17:56
|
On 10 Dec 2005, at 01:18, Lane Sharman wrote: > public class GlobalWM { > private static WebMacro _wm = new WM(); > > public static WM getInstance() { > return _wm; > } > > this is really all you need and the method need not be synchronized > because a class load is synchronized. Good point - but we can't do that really, I think we do need to use ServletBroker and that WM ctor is not going to work for us is it. If you remember, I had to add new methods to the servlet brokers in WM 2.0 to pave the way for the JSP taglib, because the ServletContext is not known until the taglib is invoked, which is an arbitrary time after the taglib object is intantiated. So we need some syncing I believe. Cheers + |
From: Lane S. <la...@op...> - 2005-12-10 01:16:18
|
public class GlobalWM { private static WebMacro _wm = new WM(); public static WM getInstance() { return _wm; } this is really all you need and the method need not be synchronized because a class load is synchronized. Also, you would be better off if you considered this: public class GlobalWM { private static WMEval _wm = new WMEval(); public static WMEval getInstance() { return _wm; } As a decorator, it gives you a lot more flexibility at evaluation time. And, congrats again on the new babe! Lane Marc Palmer wrote: > > > On 9 Dec 2005, at 03:58, Eric B. Ridge wrote: > > >> I'm pretty pissed. I spent about 30 minutes working on a response >> this morning and somehow it has mysteriously disappeared. I thought >> I sent it, but I can find no trace of it in my Sent Items nor on >> this list. Maybe OS X isn't so easy to use afterall! >> >> > > Hey I recently converted - got a Mac Mini and it rocks. I'm never > going back! > > >> Anyways, here's the abridged version... >> >> >>> Once every time a not previously visited JSP page is compiled. >>> >> >> That's what I was expecting you to say. >> >> >>> So you see it's using the ServletContext which if memory serves >>> correctly should be the same for every servlet... and yet we still >>> get N "WebMacro initializing" log outputs. >>> >> >> Apparently this isn't true. The "Servlet22Broker" class caches >> instances in a central map key'd on ServletContext. If you trace >> through the code you'll eventually find that it stores >> WeakReferences to the XXXBroker instances. >> >> So either each JSP is getting its own, unique ServletContext or the >> WeakReferences are causing your previously-instantiated Broker >> instances to be gc'd too quickly. I'm betting on the former. I >> think ServletContext is per Servlet, not per "web-app". >> >> We've written our own servlet engine/webserver here at TCDI and >> that's how we interpreted the jsdk spec. Granted, our engine >> doesn't do JSP's, but still, a JSP is just a Servlet. >> >> > > Ah ok so it looks like there are different ServletContext instances, > although they all provide the same data/services. Odd. > > >>> The problem is that we cannot instantiate WM until we have a JSP >>> pageContext that is valid, as that is the only way we can get a >>> ServletContext so that WM uses a ServletBroker. >>> >> >> Right, and that is what sucks about the various ServletBrokers. >> Personally, I'd spend the extra time to construct a >> WebMacro.properties file that knows how to load templates from the >> same places as the ServletBrokers do. The whole idea of storing >> templates inside WEB-INF/ is, imho, just plain silly. Put 'em in >> your classpath (ie, in a .jar) or directly on the filesystem. >> >> If you do this, you'll be able to create ONE WM instance that all >> your servlets and taglib instances can share. >> >> > > I disagree, I think WEB-INF is a good place for templates, a JAR is > yet another deployment hassle, putting them in WEB-INF/classes is > just plain ugly. > > >>> I'm pretty sure we can work around this with a simple concurrent >>> class - I just need to know which. >>> >> >> I think that's overkill and that you'd be happier with a non- >> servlet-based WM instance. >> > > Easier perhaps, but not happier :) > > I'll work out a simple sync scheme somehow. Although if the Brokers > are shared they are discrete instances anyway and it's not a huge > overhead. It is annoying getting duplicate logging though. > > ~ ~ ~ > Marc Palmer (ma...@an...) > Consultant/Analyst > AnyWare Ltd. > http://www.anyware.co.uk/ > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > Webmacro-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-devel > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Marc P. <ma...@an...> - 2005-12-09 10:29:09
|
On 9 Dec 2005, at 03:58, Eric B. Ridge wrote: > I'm pretty pissed. I spent about 30 minutes working on a response > this morning and somehow it has mysteriously disappeared. I > thought I sent it, but I can find no trace of it in my Sent Items > nor on this list. Maybe OS X isn't so easy to use afterall! > > Hey I recently converted - got a Mac Mini and it rocks. I'm never going back! > Anyways, here's the abridged version... > > >> Once every time a not previously visited JSP page is compiled. >> > > That's what I was expecting you to say. > > >> So you see it's using the ServletContext which if memory serves >> correctly should be the same for every servlet... and yet we still >> get N "WebMacro initializing" log outputs. >> > > Apparently this isn't true. The "Servlet22Broker" class caches > instances in a central map key'd on ServletContext. If you trace > through the code you'll eventually find that it stores > WeakReferences to the XXXBroker instances. > > So either each JSP is getting its own, unique ServletContext or the > WeakReferences are causing your previously-instantiated Broker > instances to be gc'd too quickly. I'm betting on the former. I > think ServletContext is per Servlet, not per "web-app". > > We've written our own servlet engine/webserver here at TCDI and > that's how we interpreted the jsdk spec. Granted, our engine > doesn't do JSP's, but still, a JSP is just a Servlet. > > Ah ok so it looks like there are different ServletContext instances, although they all provide the same data/services. Odd. >> The problem is that we cannot instantiate WM until we have a JSP >> pageContext that is valid, as that is the only way we can get a >> ServletContext so that WM uses a ServletBroker. >> > > Right, and that is what sucks about the various ServletBrokers. > Personally, I'd spend the extra time to construct a > WebMacro.properties file that knows how to load templates from the > same places as the ServletBrokers do. The whole idea of storing > templates inside WEB-INF/ is, imho, just plain silly. Put 'em in > your classpath (ie, in a .jar) or directly on the filesystem. > > If you do this, you'll be able to create ONE WM instance that all > your servlets and taglib instances can share. > > I disagree, I think WEB-INF is a good place for templates, a JAR is yet another deployment hassle, putting them in WEB-INF/classes is just plain ugly. >> I'm pretty sure we can work around this with a simple concurrent >> class - I just need to know which. >> > > I think that's overkill and that you'd be happier with a non- > servlet-based WM instance. > Easier perhaps, but not happier :) I'll work out a simple sync scheme somehow. Although if the Brokers are shared they are discrete instances anyway and it's not a huge overhead. It is annoying getting duplicate logging though. ~ ~ ~ Marc Palmer (ma...@an...) Consultant/Analyst AnyWare Ltd. http://www.anyware.co.uk/ |
From: Eric B. R. <eb...@tc...> - 2005-12-09 03:58:24
|
I'm pretty pissed. I spent about 30 minutes working on a response this morning and somehow it has mysteriously disappeared. I thought I sent it, but I can find no trace of it in my Sent Items nor on this list. Maybe OS X isn't so easy to use afterall! Anyways, here's the abridged version... > Once every time a not previously visited JSP page is compiled. That's what I was expecting you to say. > So you see it's using the ServletContext which if memory serves > correctly should be the same for every servlet... and yet we still > get N "WebMacro initializing" log outputs. Apparently this isn't true. The "Servlet22Broker" class caches instances in a central map key'd on ServletContext. If you trace through the code you'll eventually find that it stores WeakReferences to the XXXBroker instances. So either each JSP is getting its own, unique ServletContext or the WeakReferences are causing your previously-instantiated Broker instances to be gc'd too quickly. I'm betting on the former. I think ServletContext is per Servlet, not per "web-app". We've written our own servlet engine/webserver here at TCDI and that's how we interpreted the jsdk spec. Granted, our engine doesn't do JSP's, but still, a JSP is just a Servlet. > The problem is that we cannot instantiate WM until we have a JSP > pageContext that is valid, as that is the only way we can get a > ServletContext so that WM uses a ServletBroker. Right, and that is what sucks about the various ServletBrokers. Personally, I'd spend the extra time to construct a WebMacro.properties file that knows how to load templates from the same places as the ServletBrokers do. The whole idea of storing templates inside WEB-INF/ is, imho, just plain silly. Put 'em in your classpath (ie, in a .jar) or directly on the filesystem. If you do this, you'll be able to create ONE WM instance that all your servlets and taglib instances can share. > I'm pretty sure we can work around this with a simple concurrent > class - I just need to know which. I think that's overkill and that you'd be happier with a non-servlet- based WM instance. eric |
From: Marc P. <ma...@an...> - 2005-12-08 22:18:47
|
Hi all, In case we don't all get the CVS commit messages, I just committed the early JSP/Spring support including a unit test for the Spring view, but can't do one for the JSP taglib unless you guys are happy for us to drag in EasyMock to allow us to create mock objects for the JSP collaborators like PageContext You'll see my Spring view test uses Spring's mock objects for Http request and response. They're very nice :) I haven't sorted out the singleton/race issue on the JSP taglib yet, and I also haven't folded in changes Keats proposed to the JSP taglib in the past. The thing is that for most of us the JSP support is just a migratory thing, so if anybody really wants to spend time maxing out support there, they are welcome. Cheers ~ ~ ~ Marc Palmer (ma...@an...) Consultant/Analyst AnyWare Ltd. http://www.anyware.co.uk/ |
From: Keats K. <ke...@xa...> - 2005-12-08 15:34:28
|
[Resending ... looks like I accidentally replied to Eric only.] -------- Original Message -------- I agree with Eric. WM has always been designed to keep all of the "state" information in the Context so that it can be shared by multiple threads of execution without locking. Personally I'd suggest a singleton rather than a static instance, but that's a religious preference. Glad to see you're back on the scene. Keats PS, Congratulations on the 2nd daughter. I have two little girls myself and it rocks! Eric B. Ridge wrote: > On Dec 7, 2005, at 1:01 PM, Marc Palmer wrote: > >> However the JSP suffers a problem. Every JSP page you have that uses >> the Webmacro tag will currently have its own WM instance. This is of >> course rather heavyweight. > > > I don't think that's entirely true. I think all WM instances created > with the same arguments (ie, same .properties file configuration) > all share a single Broker instance. Broker is the real heavy-weight > guy anyways. WM is a pretty light-weight wrapper. I know that WM > used to work this way. Maybe it's changed and I forgot? > >> The obvious workaround is to synchronize on a static lock object and >> allocate a shared static WM instance. >> >> However this will throttle performance badly as every page that uses >> WM will effectively be serialized in access - rendering only one >> client's instance of the page at a time. > > > That's not true either. Requests would only be serialized around the > accessor method that returns the "shared" WM instance. And if you > instantiate that WM instance statically, there'd be no need to > serialize at all. > > eric > > > > > >> The solution must be buried in the concurrent stuff but I haven't >> got time to look it up. >> >> Anybody got any clues for me? Basically we just need the common >> pattern of allocating a shared static object only once, in a thread- >> safe manner. >> >> Thanks in advance. I'm ready to commit this stuff as experimental... >> >> >> ~ ~ ~ >> Marc Palmer (ma...@an...) >> Consultant/Analyst >> AnyWare Ltd. >> http://www.anyware.co.uk/ >> |
From: Eric B. R. <eb...@tc...> - 2005-12-08 14:11:01
|
On Dec 8, 2005, at 6:00 AM, Marc Palmer wrote: > No, I think you're right. However I have consistently seen in my > previous client's app where we used the JSP taglib, that every page > using the JSP taglib cause ned WebMacro "init" logging to come out. You see this on every page request, or only when you've changed a JSP? If the classloader dumps, WM will re-init(). Also note that (I think!) the broker instances are shared based on the constructor used for the new WM() instance. So if you're using the ctor that takes a Servlet (and every JSP *is* a Servlet), then you probably are getting a new WM instance per JSP page. > Well there is, because of race conditions initializing the shared > static instance, surely. public class GlobalWM { private static WebMacro _wm; public static synchronized WM getInstance() { if (_wm == null) _wm = new WM(); return _wm; } } that's about all you need to do. Just call that method once per JSP. Yeah, all requests will serialize around the "getInstance()" method, but the impact of that should be dwarfed by your actual page processing. > My concern was basically that we'd need to sync on every access to > the shared WM instance field. I know there are ways around this - > I'm canvassing for favourite solutions, be they in concurrent or > using "volatile" etc. Well, you do. But you only need to access it once per JSP. Once you've got the WM instance in your JSP WebMacro will make sure its innards are sync'd properly. eric > > Cheers > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through > log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD > SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > Webmacro-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-devel |
From: Marc P. <ma...@an...> - 2005-12-08 11:04:12
|
On 7 Dec 2005, at 18:27, Eric B. Ridge wrote: > On Dec 7, 2005, at 1:01 PM, Marc Palmer wrote: > >> However the JSP suffers a problem. Every JSP page you have that >> uses the Webmacro tag will currently have its own WM instance. >> This is of course rather heavyweight. > > I don't think that's entirely true. I think all WM instances > created with the same arguments (ie, same .properties file > configuration) all share a single Broker instance. Broker is the > real heavy-weight guy anyways. WM is a pretty light-weight > wrapper. I know that WM used to work this way. Maybe it's changed > and I forgot? No, I think you're right. However I have consistently seen in my previous client's app where we used the JSP taglib, that every page using the JSP taglib cause ned WebMacro "init" logging to come out. This may not mean there is a new instance I suppose, but it is ugly. Therefore sharing a single WM instance would suppress this, and maybe some other overheads. >> The obvious workaround is to synchronize on a static lock object >> and allocate a shared static WM instance. >> >> However this will throttle performance badly as every page that >> uses WM will effectively be serialized in access - rendering only >> one client's instance of the page at a time. > > That's not true either. Requests would only be serialized around > the accessor method that returns the "shared" WM instance. And if > you instantiate that WM instance statically, there'd be no need to > serialize at all. Well there is, because of race conditions initializing the shared static instance, surely. i.e. 2 different JSP page requests that use the taglib, would both try to create a shared instance of webmacro. Only one would win out - and of course this problem could be worse under heavy load (at app startup). It's a niche scenario but I want to get this right. My concern was basically that we'd need to sync on every access to the shared WM instance field. I know there are ways around this - I'm canvassing for favourite solutions, be they in concurrent or using "volatile" etc. Cheers |
From: Eric B. R. <eb...@tc...> - 2005-12-07 18:27:22
|
On Dec 7, 2005, at 1:01 PM, Marc Palmer wrote: > However the JSP suffers a problem. Every JSP page you have that > uses the Webmacro tag will currently have its own WM instance. This > is of course rather heavyweight. I don't think that's entirely true. I think all WM instances created with the same arguments (ie, same .properties file configuration) all share a single Broker instance. Broker is the real heavy-weight guy anyways. WM is a pretty light-weight wrapper. I know that WM used to work this way. Maybe it's changed and I forgot? > The obvious workaround is to synchronize on a static lock object > and allocate a shared static WM instance. > > However this will throttle performance badly as every page that > uses WM will effectively be serialized in access - rendering only > one client's instance of the page at a time. That's not true either. Requests would only be serialized around the accessor method that returns the "shared" WM instance. And if you instantiate that WM instance statically, there'd be no need to serialize at all. eric > The solution must be buried in the concurrent stuff but I haven't > got time to look it up. > > Anybody got any clues for me? Basically we just need the common > pattern of allocating a shared static object only once, in a thread- > safe manner. > > Thanks in advance. I'm ready to commit this stuff as experimental... > > > ~ ~ ~ > Marc Palmer (ma...@an...) > Consultant/Analyst > AnyWare Ltd. > http://www.anyware.co.uk/ > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through > log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD > SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > Webmacro-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-devel |
From: Marc P. <ma...@an...> - 2005-12-07 18:05:36
|
Hi all, Yes I'm finally being able to work in a bit of WM dev into my normal work. I'm using the embryonic Spring MVC/WM support I've developed with WM 2 and its working fine as far as I can tell so far. There is also the JSP taglib. However the JSP suffers a problem. Every JSP page you have that uses the Webmacro tag will currently have its own WM instance. This is of course rather heavyweight. The obvious workaround is to synchronize on a static lock object and allocate a shared static WM instance. However this will throttle performance badly as every page that uses WM will effectively be serialized in access - rendering only one client's instance of the page at a time. The solution must be buried in the concurrent stuff but I haven't got time to look it up. Anybody got any clues for me? Basically we just need the common pattern of allocating a shared static object only once, in a thread- safe manner. Thanks in advance. I'm ready to commit this stuff as experimental... ~ ~ ~ Marc Palmer (ma...@an...) Consultant/Analyst AnyWare Ltd. http://www.anyware.co.uk/ |
From: Lane S. <la...@op...> - 2005-12-02 03:12:55
|
Hi Keats, Let's document the way that it is and work with it for a while. As long as I can escape evaluation, then i have a working solution. Solving it may induce other side effects we have not thought of. I like the fact that you can complete evaluation. -Lane Keats Kirsch wrote: > Lane, > > Thanks for finding this. It's not strictly a "bug", but it is > undocumented, and maybe undesirable, behavior. > > First of all, the workaround is to escape the $ char, i.e., > > #bean $Time = "java.util.Date" > #setprops $Duration class="com.opendoors.entity.fundamental.Duration" > { > Start = \$Variable.get("Time") > End = \$Variable.get("Time") > } > > or more simply: > > #bean $Time = "java.util.Date" > #setprops $Duration class="com.opendoors.entity.fundamental.Duration" > { > Start = \$Time > End = \$Time > } > > The reason for this is that the block argument of #setprops is > evaluated prior to assigning the properties. The idea of this is to > allow you to intermix directives and property assignments. E.g., > > #setprops $Obj { > Count1: $x > #set $x = $x + 1 > Count2: $x > } > > This works fine with Strings and ints, but for other types you will > see the problem that you experienced. In your case, the dates were > expanded into Strings, which then could not be assigned to a Date > property. > > I'm not sure which trade-off is preferable; unescaped variable syntax > or disallowing directives. I suppose we could add an option, like "as > macro" with #setblock, to give the user a choice. Something like, > "#setprops noeval ..." > > What do you think? > > Keats > > Lane Sharman wrote: > >> #bean $Time = "java.util.Date" >> #bean $Duration = "com.opendoors.entity.fundamental.Duration" onNew >> { >> #set $Duration.Start = $Variable.get("Time") >> #set $Duration.End = $Variable.get("Time") >> #set $Duration.End = $Time >> } >> >> >> works fine. >> >> so there is a bug in the #setprops unless this is a "feature", >> converting all RHS evaluations to string. >> >> -Lane >> >> Lane Sharman wrote: >> >>> is the RHS term always evaluated as a String before the assignment? >>> What can I do to make an assigment of an object? >>> >>> #bean $Time = "java.util.Date" >>> #setprops $Duration class="com.opendoors.entity.fundamental.Duration" >>> { >>> Start = $Variable.get("Time") >>> End = $Variable.get("Time") >>> } >>> >>> >>> generates this error: >>> >>> 4:40:52 PM template ERROR Error parsing template: >>> StringTemplate("unknown";"#set $Duration.Start=Fri Nov 25 16:40:53 >>> PST 2005") >>> org.webmacro.engine.ParseException: Parser Exception >>> org.webmacro.parser.ParseException: Encountered "Fri" at line 1, >>> column 22. >>> >>> >> > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > Webmacro-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-devel > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Keats K. <ke...@xa...> - 2005-12-02 02:46:39
|
I agree. The more I think about it, the more I think it makes sense the way it is. I like that you can do stuff like: #setprops $List { #set baseDir="/export/accounts/" #set $i=0 #foreach $Account in $AccountList { #set $i=$i+1 Account$i=\$Account.Number Holder$i=\$Account.Holder File$i=\$baseDir\$Account.File } Count=$i } I'll try to update the Wiki page this weekend. Keats Lane Sharman wrote: > Hi Keats, > > Let's document the way that it is and work with it for a while. As > long as I can escape evaluation, then i have a working solution. > Solving it may induce other side effects we have not thought of. I > like the fact that you can complete evaluation. > > -Lane > > Keats Kirsch wrote: > >> Lane, >> >> Thanks for finding this. It's not strictly a "bug", but it is >> undocumented, and maybe undesirable, behavior. >> >> First of all, the workaround is to escape the $ char, i.e., >> >> #bean $Time = "java.util.Date" >> #setprops $Duration class="com.opendoors.entity.fundamental.Duration" >> { >> Start = \$Variable.get("Time") >> End = \$Variable.get("Time") >> } >> >> or more simply: >> >> #bean $Time = "java.util.Date" >> #setprops $Duration class="com.opendoors.entity.fundamental.Duration" >> { >> Start = \$Time >> End = \$Time >> } >> >> The reason for this is that the block argument of #setprops is >> evaluated prior to assigning the properties. The idea of this is to >> allow you to intermix directives and property assignments. E.g., >> >> #setprops $Obj { >> Count1: $x >> #set $x = $x + 1 >> Count2: $x >> } >> >> This works fine with Strings and ints, but for other types you will >> see the problem that you experienced. In your case, the dates were >> expanded into Strings, which then could not be assigned to a Date >> property. >> >> I'm not sure which trade-off is preferable; unescaped variable syntax >> or disallowing directives. I suppose we could add an option, like >> "as macro" with #setblock, to give the user a choice. Something >> like, "#setprops noeval ..." >> >> What do you think? >> >> Keats >> >> Lane Sharman wrote: >> >>> #bean $Time = "java.util.Date" >>> #bean $Duration = "com.opendoors.entity.fundamental.Duration" onNew >>> { >>> #set $Duration.Start = $Variable.get("Time") >>> #set $Duration.End = $Variable.get("Time") >>> #set $Duration.End = $Time >>> } >>> >>> >>> works fine. >>> >>> so there is a bug in the #setprops unless this is a "feature", >>> converting all RHS evaluations to string. >>> >>> -Lane >>> >>> Lane Sharman wrote: >>> >>>> is the RHS term always evaluated as a String before the assignment? >>>> What can I do to make an assigment of an object? >>>> >>>> #bean $Time = "java.util.Date" >>>> #setprops $Duration class="com.opendoors.entity.fundamental.Duration" >>>> { >>>> Start = $Variable.get("Time") >>>> End = $Variable.get("Time") >>>> } >>>> >>>> >>>> generates this error: >>>> >>>> 4:40:52 PM template ERROR Error parsing template: >>>> StringTemplate("unknown";"#set $Duration.Start=Fri Nov 25 16:40:53 >>>> PST 2005") >>>> org.webmacro.engine.ParseException: Parser Exception >>>> org.webmacro.parser.ParseException: Encountered "Fri" at line 1, >>>> column 22. >>> |
From: Keats K. <ke...@xa...> - 2005-11-28 05:45:40
|
Lane, Thanks for finding this. It's not strictly a "bug", but it is undocumented, and maybe undesirable, behavior. First of all, the workaround is to escape the $ char, i.e., #bean $Time = "java.util.Date" #setprops $Duration class="com.opendoors.entity.fundamental.Duration" { Start = \$Variable.get("Time") End = \$Variable.get("Time") } or more simply: #bean $Time = "java.util.Date" #setprops $Duration class="com.opendoors.entity.fundamental.Duration" { Start = \$Time End = \$Time } The reason for this is that the block argument of #setprops is evaluated prior to assigning the properties. The idea of this is to allow you to intermix directives and property assignments. E.g., #setprops $Obj { Count1: $x #set $x = $x + 1 Count2: $x } This works fine with Strings and ints, but for other types you will see the problem that you experienced. In your case, the dates were expanded into Strings, which then could not be assigned to a Date property. I'm not sure which trade-off is preferable; unescaped variable syntax or disallowing directives. I suppose we could add an option, like "as macro" with #setblock, to give the user a choice. Something like, "#setprops noeval ..." What do you think? Keats Lane Sharman wrote: > #bean $Time = "java.util.Date" > #bean $Duration = "com.opendoors.entity.fundamental.Duration" onNew > { > #set $Duration.Start = $Variable.get("Time") > #set $Duration.End = $Variable.get("Time") > #set $Duration.End = $Time > } > > > works fine. > > so there is a bug in the #setprops unless this is a "feature", > converting all RHS evaluations to string. > > -Lane > > Lane Sharman wrote: > >> is the RHS term always evaluated as a String before the assignment? >> What can I do to make an assigment of an object? >> >> #bean $Time = "java.util.Date" >> #setprops $Duration class="com.opendoors.entity.fundamental.Duration" >> { >> Start = $Variable.get("Time") >> End = $Variable.get("Time") >> } >> >> >> generates this error: >> >> 4:40:52 PM template ERROR Error parsing template: >> StringTemplate("unknown";"#set $Duration.Start=Fri Nov 25 16:40:53 >> PST 2005") >> org.webmacro.engine.ParseException: Parser Exception >> org.webmacro.parser.ParseException: Encountered "Fri" at line 1, >> column 22. >> >> > |
From: Lane S. <la...@op...> - 2005-11-26 01:08:27
|
#bean $Time = "java.util.Date" #bean $Duration = "com.opendoors.entity.fundamental.Duration" onNew { #set $Duration.Start = $Variable.get("Time") #set $Duration.End = $Variable.get("Time") #set $Duration.End = $Time } works fine. so there is a bug in the #setprops unless this is a "feature", converting all RHS evaluations to string. -Lane Lane Sharman wrote: > is the RHS term always evaluated as a String before the assignment? > What can I do to make an assigment of an object? > > #bean $Time = "java.util.Date" > #setprops $Duration class="com.opendoors.entity.fundamental.Duration" > { > Start = $Variable.get("Time") > End = $Variable.get("Time") > } > > > generates this error: > > 4:40:52 PM template ERROR Error parsing template: > StringTemplate("unknown";"#set $Duration.Start=Fri Nov 25 16:40:53 PST > 2005") > org.webmacro.engine.ParseException: Parser Exception > org.webmacro.parser.ParseException: Encountered "Fri" at line 1, > column 22. > > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Lane S. <la...@op...> - 2005-11-26 00:49:57
|
is the RHS term always evaluated as a String before the assignment? What can I do to make an assigment of an object? #bean $Time = "java.util.Date" #setprops $Duration class="com.opendoors.entity.fundamental.Duration" { Start = $Variable.get("Time") End = $Variable.get("Time") } generates this error: 4:40:52 PM template ERROR Error parsing template: StringTemplate("unknown";"#set $Duration.Start=Fri Nov 25 16:40:53 PST 2005") org.webmacro.engine.ParseException: Parser Exception org.webmacro.parser.ParseException: Encountered "Fri" at line 1, column 22. -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Lane S. <la...@op...> - 2005-10-23 17:07:13
|
Solved. I added a property directive named "test" to the top-level build and this conficted with the unit build script. -Lane Lane Sharman wrote: > Hi, > > Does "ant test" run the unit tests as expected on your box after a cvs > update? > > It no longer does on mine and I cannot see why. > > thanks, > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Lane S. <la...@op...> - 2005-10-23 16:58:33
|
Hi, Does "ant test" run the unit tests as expected on your box after a cvs update? It no longer does on mine and I cannot see why. thanks, -- Lane Sharman 858-755-2868 |