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: Marc P. <ma...@an...> - 2003-04-04 20:23:32
|
On Fri, 4 Apr 2003 15:06:08 -0500, <kea...@na...> wrote: > It seems like we discuss this issue every 6 months or so. > > My reply is that WMScript is *not* Java. While it uses the JavaBeans > naming > convention for property introspection, it does *not* use this convention > itself. > > WMScript is designed to be usuable by people who have no knowlege of > Java. > As far as possible it strives to hide the implementation details. So the > template author has no need to know that $Contact.LastName is actually > calling getLastName() on a com.foo.BusContact instance, or maybe just > get("LastName") on a Hashtable instance. Yes, I think this is great. It's just a bit problematic and in places contradictory... > If we did it the other way around, then references like $user.name would > be > resolved to user.getName(), user.get("name"), or user.name. This seems > OK, > but then what about $user.Name? What would be the accessor for this > property? I suppose we could reverse the case and look for > user.getname(). ...or getName(). Who needs two methods getname() and getName() to return different things? Nobody with their brain engaged... so resolving both to getName() as per Lane's suggestion would be a good idea I think... although there is the problem of it being strange behaviour. I mean, we could argue that all property lookups should be completely case insensitive on the basis that web designers should not have to understand the intricacies of Java. > Ultimately how WMScript properties are translated into Java properties is > a > question of style. The choice was made years ago, and it seems senseless > to > revisit it now. Yes, agreed. I was just searching for the logic behind it - in case there was any <g>. FWIW, using #bean somewhat muddies the separation from Java, especially as we call it a "bean" and then don't use the bean conventions ;-) -- Marc Palmer |
From: Eric B. R. <eb...@tc...> - 2003-04-04 20:15:54
|
On Friday, April 4, 2003, at 03:06 PM, kea...@na...=20 wrote: > Ultimately how WMScript properties are translated into Java properties=20= > is a question of style.=A0 The choice was made years ago, and it seems=20= > senseless to revisit it now. I couldn't agree more! :) eric > > Keats > > > -----Original Message----- > > From: Marc Palmer [mailto:ma...@an...] > > Sent: Friday, April 04, 2003 1:38 PM > > To: la...@op... > > Cc: web...@li... > > Subject: Re: [Webmacro-devel] Capitalised properties in WM, why?! > > > > > > On Fri, 04 Apr 2003 07:53:49 -0800, Lane Sharman = <la...@op...> > > wrote: > > > > > I think we had a discussion about this some time ago and I voiced = a > > > similar concern. You can today say $instance.value to > > obtain a bean value > > > but the member will have to be public. I would imagine it would be > > > possible to add a heuristic: > > > > > > search object.property --> object.getProperty(). > > > > Yes maybe we should. I can appreciate that most people using > > WM would be > > completely unaware of the javabean mnituae in this respect. > > > > There might be complications where get(Object key)/set(Object > > key, Object > > value) is used. > > > > Anyone else got thoughts on this? -- Marc Palmer > > > |
From: <kea...@na...> - 2003-04-04 20:06:23
|
It seems like we discuss this issue every 6 months or so. My reply is that WMScript is *not* Java. While it uses the JavaBeans naming convention for property introspection, it does *not* use this convention itself. WMScript is designed to be usuable by people who have no knowlege of Java. As far as possible it strives to hide the implementation details. So the template author has no need to know that $Contact.LastName is actually calling getLastName() on a com.foo.BusContact instance, or maybe just get("LastName") on a Hashtable instance. If we did it the other way around, then references like $user.name would be resolved to user.getName(), user.get("name"), or user.name. This seems OK, but then what about $user.Name? What would be the accessor for this property? I suppose we could reverse the case and look for user.getname(). Ultimately how WMScript properties are translated into Java properties is a question of style. The choice was made years ago, and it seems senseless to revisit it now. Keats > -----Original Message----- > From: Marc Palmer [mailto:ma...@an...] > Sent: Friday, April 04, 2003 1:38 PM > To: la...@op... > Cc: web...@li... > Subject: Re: [Webmacro-devel] Capitalised properties in WM, why?! > > > On Fri, 04 Apr 2003 07:53:49 -0800, Lane Sharman <la...@op...> > wrote: > > > I think we had a discussion about this some time ago and I voiced a > > similar concern. You can today say $instance.value to > obtain a bean value > > but the member will have to be public. I would imagine it would be > > possible to add a heuristic: > > > > search object.property --> object.getProperty(). > > Yes maybe we should. I can appreciate that most people using > WM would be > completely unaware of the javabean mnituae in this respect. > > There might be complications where get(Object key)/set(Object > key, Object > value) is used. > > Anyone else got thoughts on this? -- Marc Palmer > |
From: <kea...@na...> - 2003-04-04 18:41:39
|
I've just created a #log directive that let's you easily log messages from a template. It supports optional parameters for the log level and log target, which default to "notice" and "context". Examples: #log { This is a test of the new log directive! } #set $errmsg='BIG TROUBLE!' #log as error { Logging a dummy error: $errmsg } #set $errmsg='MAYBE TROUBLE!' #log as warning target='test' { Logging a dummy warning to the 'test' target: $errmsg } Does this seem useful enough to put in the core? Any comments on the syntax? PS, the formal syntax is something like: #log [as (debug|info|notice|warning|error)] [target = <QUOTED-STRING>] <BLOCK> _______________________________________ Keats Kirsch Senior Technology Advisor NatureServe (http://www.natureserve.org) email: kea...@na... phone: (703)908-1895 |
From: Marc P. <ma...@an...> - 2003-04-04 18:37:11
|
On Fri, 04 Apr 2003 07:53:49 -0800, Lane Sharman <la...@op...> wrote: > I think we had a discussion about this some time ago and I voiced a > similar concern. You can today say $instance.value to obtain a bean value > but the member will have to be public. I would imagine it would be > possible to add a heuristic: > > search object.property --> object.getProperty(). Yes maybe we should. I can appreciate that most people using WM would be completely unaware of the javabean mnituae in this respect. There might be complications where get(Object key)/set(Object key, Object value) is used. Anyone else got thoughts on this? -- Marc Palmer |
From: Lane S. <la...@op...> - 2003-04-04 15:40:18
|
I think we had a discussion about this some time ago and I voiced a similar concern. You can today say $instance.value to obtain a bean value but the member will have to be public. I would imagine it would be possible to add a heuristic: search object.property --> object.getProperty(). -Lane Marc Palmer wrote: > On Thu, 03 Apr 2003 21:10:28 -0800, Lane Sharman <la...@op...> > wrote: > >> A bean implements accessors and mutators as get|set{PropertyName} >> and that WebMacro follows this pattern to resolve the public method >> with a caps on the property name. >> >> Alternatively, you can access the member as $instance.name and >> $instance.description if the instance is declared publically. >> >> Finally, you can access an object in a map as $map.marc or $map.Marc >> and it will resolve properly both if either exists so there has to be >> some flexibilty in allowing both cap types to co-exist. Right? > > > Yeah, I realise all this... but my point is that this is NOT compliant > with the bean specification. > > If you use an IDE that allows setting of properties of a bean via a > GUI you see properties as "name" not "Name". This is because the Java > introspection and bean spec mandates that the first letter of property > names is lower case - it does not just chop off the get/set. > > I just wonder if there is a specific reason for this or if it is just > on a whim i.e. "I don't like lowever case first chars". > > I'm ust whingeing because it's annoying when you need to expose info > about a bean and have to convert every property name. > -- Lane Sharman Learn About Conga, All Java GUI Builder: http://opendoors.com/conga Java Software Portal: http://opendoors.com |
From: Lane S. <la...@op...> - 2003-04-04 15:18:19
|
endre: Your point is not relevant or correct. Obviously, you have not bothered=20 to notice that the open doors cache mechanism searches all generations=20 not just the current generation to retrieve an object. The caching=20 system provided is not something I pulled out of my wazoo. Having=20 designed and implemented main frame code for Virtual Memory system=20 kernels in both tightly and loosely coupled bus architectures and over=20 the wire, I would not implement a memory model that did not provide a=20 consistent image of the "truth". Look, endre, if you think you can "prove" that the generational caching=20 system does not publish a consistent image over time, please do so=20 offline so I can look at your proof. Make sure you examine the code. The=20 WM discussion list is not the place for that kind of a discussion. -Lane Endre St=F8lsvik wrote: >On Thu, 3 Apr 2003, Lane Sharman wrote: > >| You should definitely take a look at org.opendoors.cache.* and >| org.opendoors.cache.immutable.* which is a generational cache system. >| Lots of good features. > >.. and only works on thightly coupled multiprocessor systems (which >excludes a lot of the "big iron" machines out there). This because you >need cache-coherency for the "generational" thing to work (it doesn't >synchronize properly). > >I'd vote for using subsystems that actually _work as intended_ on every >system, and then you might configure your particular setup to use >architecture-dependent code. > >Isn't there some cache-wrapping code in WebMacro that enables you to >select caching via config? > > =20 > --=20 Lane Sharman Learn About Conga, All Java GUI Builder: http://opendoors.com/conga Java Software Portal: http://opendoors.com |
From: Marc P. <ma...@an...> - 2003-04-04 15:12:37
|
On Thu, 03 Apr 2003 21:10:28 -0800, Lane Sharman <la...@op...> wrote: > A bean implements accessors and mutators as get|set{PropertyName} and > that WebMacro follows this pattern to resolve the public method with a > caps on the property name. > > Alternatively, you can access the member as $instance.name and > $instance.description if the instance is declared publically. > > Finally, you can access an object in a map as $map.marc or $map.Marc and > it will resolve properly both if either exists so there has to be some > flexibilty in allowing both cap types to co-exist. Right? Yeah, I realise all this... but my point is that this is NOT compliant with the bean specification. If you use an IDE that allows setting of properties of a bean via a GUI you see properties as "name" not "Name". This is because the Java introspection and bean spec mandates that the first letter of property names is lower case - it does not just chop off the get/set. I just wonder if there is a specific reason for this or if it is just on a whim i.e. "I don't like lowever case first chars". I'm ust whingeing because it's annoying when you need to expose info about a bean and have to convert every property name. -- Marc Palmer |
From: <web...@st...> - 2003-04-04 13:11:01
|
On Thu, 3 Apr 2003, Lane Sharman wrote: | You should definitely take a look at org.opendoors.cache.* and | org.opendoors.cache.immutable.* which is a generational cache system. | Lots of good features. .. and only works on thightly coupled multiprocessor systems (which excludes a lot of the "big iron" machines out there). This because you need cache-coherency for the "generational" thing to work (it doesn't synchronize properly). I'd vote for using subsystems that actually _work as intended_ on every system, and then you might configure your particular setup to use architecture-dependent code. Isn't there some cache-wrapping code in WebMacro that enables you to select caching via config? -- Mvh, Endre Stølsvik M[+47 93054050] F[+47 51625182] Developer @ CoreTrek AS - http://www.coretrek.com/ CoreTrek corporate portal / EIP - http://www.corelets.com/ |
From: Lane S. <la...@op...> - 2003-04-04 04:57:18
|
A bean implements accessors and mutators as get|set{PropertyName} and that WebMacro follows this pattern to resolve the public method with a caps on the property name. Alternatively, you can access the member as $instance.name and $instance.description if the instance is declared publically. Finally, you can access an object in a map as $map.marc or $map.Marc and it will resolve properly both if either exists so there has to be some flexibilty in allowing both cap types to co-exist. Right? -Lane Marc Palmer wrote: > > Hi, > > Can anyone remind me exactly why WM breaks the Java Beans spec. with > respect to capitalisation of properties? > > i.e. if you introspect a bean and get the following properties: > > name > description > > ...to access these in a template you must write: > > $bean.Name > $bean.Description > > This looks "nicer" to e of course, but the break from the beanspec is > a pain in the ass, and is no doubt responsibly for quite a lot of > messaing around in the introspection code in WM where everthing will > have lower case first letters. > > I've written a BeanInfoWrapper that dumps into a template all the > useful info about an object. This is being used in the webapp's help > syste so any java object put into the context can potentially be > introspected and help shown. However what you get back is not very > useful unless a xxxxBeanInfo class has also been written, in which > case you get plain english descriptions of the object, each property, > what every method does and what the parameters are called and what > they do. > > ...but I'm going to have to make it capitalise all the property names > for it to make sense ;-( > > Oh, and my colleague has nearly finished the simplified XML access > helper - already I have most of an RSS news feed included into a demo > template without too much trouble. We have some caching fun to do > though... but I will mail about that separately. > > Cheers -- Lane Sharman Learn About Conga, All Java GUI Builder: http://opendoors.com/conga Java Software Portal: http://opendoors.com |
From: Lane S. <la...@op...> - 2003-04-04 04:48:48
|
You should definitely take a look at org.opendoors.cache.* and org.opendoors.cache.immutable.* which is a generational cache system. Lots of good features. -Lane Marc Palmer wrote: > > Hi, > > With our XML helper that downloads content from a URL and parses it, > we need to be able to cache the URL contents and/or the XML DOM. > > We also need to be able to control the expiry time on the XML > documents independently (i.e. Amazon say you must refresh your XML > from them every hour - other sites only daily). > > Are there mechanisms in WM already that we can use to achieve this or > not? It seems stupid to write yet another cache, and if there's > already a resource cache in WM that can handle this then we should be > using it - on the offchance other directives/context tools also access > the same XML document. > > Thanks in advance... -- Lane Sharman Learn About Conga, All Java GUI Builder: http://opendoors.com/conga Java Software Portal: http://opendoors.com |
From: Marc P. <ma...@an...> - 2003-04-04 00:54:58
|
Hi, With our XML helper that downloads content from a URL and parses it, we need to be able to cache the URL contents and/or the XML DOM. We also need to be able to control the expiry time on the XML documents independently (i.e. Amazon say you must refresh your XML from them every hour - other sites only daily). Are there mechanisms in WM already that we can use to achieve this or not? It seems stupid to write yet another cache, and if there's already a resource cache in WM that can handle this then we should be using it - on the offchance other directives/context tools also access the same XML document. Thanks in advance... -- Marc Palmer |
From: Marc P. <ma...@an...> - 2003-04-04 00:52:58
|
On Thu, 3 Apr 2003 19:31:03 -0500, Eric B. Ridge <eb...@tc...> wrote: > Yep. You're right about that. Not sure if this is easily fixed. The > LogTargets are not cached, they're created new for every new Broker > instance. Only thing I can see is to have some kind of LogTargetFactory > that holds onto them (w/ WeakReferences of course) and returns an > existing target if it "looks" the same as the one being created. > > I can work on this if it sounds logical. Hmm this is a nasty problem and that sounds like a filthy hack! Doesn't it stem from some other log architectural problem? Why should calling log.xxxx on a log obtained from a broker from WM instance A also cause the data to be logged to the target introduced by WM instance B? Surely each WM/Broker should have separate logs, each with their separate sets of log targets. There should be no crosstalk. In fact I never get the log from WM instance B (I only use the one from the Servlet's WM instance) so this duplication is doubly crazy if you ask me. This isn't a case of singletons (or rather static stuff) biting us on the ass is it... ? -- Marc Palmer |
From: Eric B. R. <eb...@tc...> - 2003-04-04 00:31:12
|
On Thursday, April 3, 2003, at 07:07 PM, Marc Palmer wrote: > On Thu, 3 Apr 2003 14:43:49 -0500, <kea...@na...> > wrote: > >> Awesome, dude! You rock. >> >> I'm curious to see if this fixes Marc's issue as well. > > Nope it doesn't AFAICS. Been using the latest source and still getting > double logging. > > Remember though - I *do* have more than one simulateneous WM instance, > each with different settings. It sounds to me like log targets are > being added to some static list when this happens and hence doubling > the output. Yep. You're right about that. Not sure if this is easily fixed. The LogTargets are not cached, they're created new for every new Broker instance. Only thing I can see is to have some kind of LogTargetFactory that holds onto them (w/ WeakReferences of course) and returns an existing target if it "looks" the same as the one being created. I can work on this if it sounds logical. eric > BTW in case anyone didn't get it from the CVS list, I've committed a > minor mod to WMServlet which makes some methods protected instead of > private and adds helpers for getting the Error variable name and the > Error template. These are required by my webapp which extends > WMServlet. > > Marc > -- > Marc Palmer > |
From: Marc P. <ma...@an...> - 2003-04-04 00:17:27
|
Hi, Can anyone remind me exactly why WM breaks the Java Beans spec. with respect to capitalisation of properties? i.e. if you introspect a bean and get the following properties: name description ...to access these in a template you must write: $bean.Name $bean.Description This looks "nicer" to e of course, but the break from the beanspec is a pain in the ass, and is no doubt responsibly for quite a lot of messaing around in the introspection code in WM where everthing will have lower case first letters. I've written a BeanInfoWrapper that dumps into a template all the useful info about an object. This is being used in the webapp's help syste so any java object put into the context can potentially be introspected and help shown. However what you get back is not very useful unless a xxxxBeanInfo class has also been written, in which case you get plain english descriptions of the object, each property, what every method does and what the parameters are called and what they do. ...but I'm going to have to make it capitalise all the property names for it to make sense ;-( Oh, and my colleague has nearly finished the simplified XML access helper - already I have most of an RSS news feed included into a demo template without too much trouble. We have some caching fun to do though... but I will mail about that separately. Cheers -- Marc Palmer |
From: Marc P. <ma...@an...> - 2003-04-04 00:05:31
|
On Thu, 3 Apr 2003 14:43:49 -0500, <kea...@na...> wrote: > Awesome, dude! You rock. > > I'm curious to see if this fixes Marc's issue as well. Nope it doesn't AFAICS. Been using the latest source and still getting double logging. Remember though - I *do* have more than one simulateneous WM instance, each with different settings. It sounds to me like log targets are being added to some static list when this happens and hence doubling the output. BTW in case anyone didn't get it from the CVS list, I've committed a minor mod to WMServlet which makes some methods protected instead of private and adds helpers for getting the Error variable name and the Error template. These are required by my webapp which extends WMServlet. Marc -- Marc Palmer |
From: Eric B. R. <eb...@tc...> - 2003-04-03 19:59:15
|
On Thursday, April 3, 2003, at 02:46 PM, kea...@na... =20= wrote: > > I can't figure out how to > > make a JUnit test for this.=A0 I've spent about 30 minutes on it, = and > > can't just see how to JUnit it.=A0 Any ideas? > > It looks like we could add this test to the TestMultipleInstances = test: > > http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/webmacro/webmacro/test/=20= > unit/org/webmacro/TestMultipleInstances.java?rev=3D1.5&content-=20 > type=3Dtext/vnd.viewcvs-markup that's basically what I did, but problem is, the junit stuff eats =20 stderr/stdout. I also experimented with a custom LogTarget (MemoryLogCollector), but =20= that didn't work out for a whole slew of other reasons. eric= |
From: <kea...@na...> - 2003-04-03 19:46:37
|
> I can't figure out how to > make a JUnit test for this. I've spent about 30 minutes on it, and > can't just see how to JUnit it. Any ideas? It looks like we could add this test to the TestMultipleInstances test: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/webmacro/webmacro/test/unit/o rg/webmacro/TestMultipleInstances.java?rev=1.5&content-type=text/vnd.viewcvs -markup Keats |
From: <kea...@na...> - 2003-04-03 19:44:11
|
Awesome, dude! You rock. I'm curious to see if this fixes Marc's issue as well. Keats |
From: Eric B. R. <eb...@tc...> - 2003-04-03 18:12:34
|
On Thursday, April 3, 2003, at 12:15 PM, Eric B. Ridge wrote: > I've just done this, but haven't committed it yet. It fixes your little main() method test, but I can't figure out how to=20= make a JUnit test for this. I've spent about 30 minutes on it, and=20 can't just see how to JUnit it. Any ideas? But, my fix (which I just committed, btw) does fixup the little main()=20= method test you sent, so it's good 'nuff fer me. eric > > eric > > >> >> Keats >> >> 11:44:12 AM=A0=A0=A0=A0 LogFile NOTICE=A0 --- Log Started --- >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 >> wm.properties >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 >> WebMacro.defaults, wm.properties, (System Properties) >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 1 >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down >> 11:44:12 AM=A0=A0=A0=A0 LogFile NOTICE=A0 --- Log Started --- >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 >> wm.properties >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 >> wm.properties >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 >> WebMacro.defaults, wm.properties, (System Properties) >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 >> WebMacro.defaults, wm.properties, (System Properties) >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 2 >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 2 >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down >> 11:44:12 AM=A0=A0=A0=A0 LogFile NOTICE=A0 --- Log Started --- >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 >> wm.properties >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 >> wm.properties >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 >> wm.properties >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 >> WebMacro.defaults, wm.properties, (System Properties) >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 >> WebMacro.defaults, wm.properties, (System Properties) >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 >> WebMacro.defaults, wm.properties, (System Properties) >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 3 >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 3 >> 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 3 >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down >> 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down >> > > > > ------------------------------------------------------- > This SF.net email is sponsored by: ValueWeb: > Dedicated Hosting for just $79/mo with 500 GB of bandwidth! > No other company gives more support or power for your dedicated server > http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/ > _______________________________________________ > Webmacro-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-devel |
From: Eric B. R. <eb...@tc...> - 2003-04-03 17:15:42
|
On Thursday, April 3, 2003, at 11:50 AM, kea...@na...=20= wrote: > I haven't made JUnit test case yet, but here's the simplest example I=20= > can cook up: <snip> > You can see from the output below that "Test message 1" gets logged=20 > once, "Test message 2" get logged twice, etc. I think the problem is that when a Broker is destroyed, it's not=20 clearing out the log targets it registered. I think the solution here is to add a static=20 ".removeInstace(LogSystem)" to LogSystem.java, and have=20 Broker.stopClient() call LogSystem.removeInstance() when the Broker is=20= really dead. I've just done this, but haven't committed it yet. eric > > Keats > > 11:44:12 AM=A0=A0=A0=A0 LogFile NOTICE=A0 --- Log Started --- > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 > wm.properties > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 > WebMacro.defaults, wm.properties, (System Properties) > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 1 > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down > 11:44:12 AM=A0=A0=A0=A0 LogFile NOTICE=A0 --- Log Started --- > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 > wm.properties > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 > wm.properties > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 > WebMacro.defaults, wm.properties, (System Properties) > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 > WebMacro.defaults, wm.properties, (System Properties) > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 2 > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 2 > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down > 11:44:12 AM=A0=A0=A0=A0 LogFile NOTICE=A0 --- Log Started --- > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 > wm.properties > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 > wm.properties > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 starting = org.webmacro.Broker:=20 > wm.properties > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 > WebMacro.defaults, wm.properties, (System Properties) > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 > WebMacro.defaults, wm.properties, (System Properties) > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 Loaded settings from=20 > WebMacro.defaults, wm.properties, (System Properties) > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 new = WebMacro(wm.properties) v@VERSION@ > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 3 > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 3 > 11:44:12 AM=A0=A0=A0=A0 wm=A0=A0=A0=A0=A0 NOTICE=A0 Test message 3 > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down > 11:44:12 AM=A0=A0=A0=A0 broker=A0 NOTICE=A0 shutting down > |
From: Eric B. R. <eb...@tc...> - 2003-04-03 17:01:11
|
On Thursday, April 3, 2003, at 11:51 AM, Marc Palmer wrote: > On Thu, 3 Apr 2003 10:36:43 -0500, Eric B. Ridge <eb...@tc...> wrote: > >>> I am only now starting to use #macro (good work by the way)... but I >>> think that if your template experiences an error and you get the >>> exception showing line number and column in the template, this value >>> can be incorrect if you define/use macros in the template. I'm >>> certainly seeing this... >> >> Can you be more specific? Got an example? > > OK. The template it's happening on is shown below. WM is reporting: > > 2003-04-03 02:42:48 WebMacro:servlet WARNING Ignition encountered an > error while executing a template: > StreamTemplate:jndi:/localhost/ignition/WEB- > INF/templates/system/moduleHelp.wmt: org.webmacro.PropertyException: > Attempt to invoke method public static int > org.webmacro.servlet.ListUtil.size(java.util.List) on object > org.webmacro.servlet.ListUtil raised an exception: > java.lang.NullPointerException > java.lang.NullPointerException at jndi:/localhost/ignition/WEB- > INF/templates/system/moduleHelp.wmt:29.7 > > Here's the (work in progress) template... there is no call to > $List.size() anywhere near line 29. BUT there -is-a call to it on line > 29 of system/helpMacros.wmt - so it looks like it is the incorrect > filename being reported. eww, yuck. That sucks. I'll fix it as I'm the one that likely brought the bug to life in the first place. :( eric > > #include as macro "system/helpMacros.wmt" > #include "includes/header.wmt" > > #if (!$ignitionHelp.Module) > #set $mod = "default module" > #else > #set $mod = "module $ignitionHelp.Module" > #end > <h1>Ignition Help for $mod</h1> > > <p> > You can view help from the other modules: > #foreach $moduleName in $ignitionHelp.ModuleNames > #if ($moduleName != $ignitionHelp.Module) > #set $action = $Ignition.newAction("ignitionHelp") > #set $action.Module = $moduleName > #set $modMenuName = $moduleName > #if ($moduleName == "") > #set $modMenuName = "DEFAULT" > #end > <a href="$Ignition.execute([$action])">$modMenuName</a> > #end > #end > </p> > > <h2>Help Sections</h2> > <a href="_actions">Actions</a><br> > <a href="_helpers">Helpers</a><br> > ***** LINE 29 ****** <a href="_plugins">Plugins</a><br> > > <a name="_actions"> > #macro dumpActionInfo($title, $infoVar) > > <h2>$title</h2> > > <ul> > #foreach $action in $infoVar.Actions > <li><a href="#action_$action.Name">$action.Name</a> > #end > </ul> > > #if ($List.size($infoVar.Actions) > 0) > > <p> > Below is a list of the actions available from templates in > the $mod. To call these actions > you can insert the following into your templates: > #text > <pre> > #set $action = $Ignition.newAction( "actionNameHere") > #set $action.ParamNameHere = "ParamValueHere" > <a href="$Ignition.execute([$action])">Link to > action</a> > </pre> > #end > </p> > > #foreach $action in $infoVar.Actions > > <a name="action_$action.Name"> > > #dumpPluginInfo($action, true) > > <div class="helpActionVarsDiv"> > > <h3>Variables placed into templates:</h3> > > #dumpHelpVariables($action.Variables) > </div> > > #end ## Action loop > > #else > There are no actions available in this module. > #end ## count > 0 > #end ## Macro > > #dumpActionInfo( "Module Actions", $ignitionHelp.helpInfo) > > #if ($ignitionHelp.defaultHelpInfo != null) > #dumpActionInfo( "Default Actions", $ignitionHelp.defaultHelpInfo) > #end > > <a name="_helpers"> > <h2>Helpers</h2> > > #set $count = 0 > #foreach $helper in $ignitionHelp.helpInfo.Helpers > #set $count = $count + 1 > #end > > #if ($count > 0) > > <p> > The following helpers are available in your templates, for this > module. They can be accessed > like this: > #text > <pre> > <b>The value is:<b> $HelperNameHere.PropertyNameHere > $HelperNameHere.methodName("someParam") > </pre> > #end > </p> > > #foreach $action in $ignitionHelp.helpInfo.Helpers > <p> > $action.Name - > </p> > #end > > #else > There are no helpers in this module. > #end > > <a name="_plugins"> > <h2>Plugins</h2> > > <h3>Pre-request plugins</h3> > #dumpHelpPlugins( $ignitionHelper.helpInfo.PreRequestPlugins) > > <h3>Post-request plugins</h3> > #dumpHelpPlugins( $ignitionHelper.helpInfo.PostRequestPlugins) > > <h3>Pre-Action plugins</h3> > #dumpHelpPlugins( $ignitionHelper.helpInfo.PreActionPlugins) > > <h3>Post-Action plugins</h3> > #dumpHelpPlugins( $ignitionHelper.helpInfo.PostActionPlugins) > > #include "includes/footer.wmt" > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: ValueWeb: Dedicated Hosting for > just $79/mo with 500 GB of bandwidth! No other company gives more > support or power for your dedicated server > http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/ > _______________________________________________ > Webmacro-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-devel |
From: Marc P. <ma...@an...> - 2003-04-03 16:51:00
|
On Thu, 3 Apr 2003 10:36:43 -0500, Eric B. Ridge <eb...@tc...> wrote: >> I am only now starting to use #macro (good work by the way)... but I >> think that if your template experiences an error and you get the >> exception showing line number and column in the template, this value can >> be incorrect if you define/use macros in the template. I'm certainly >> seeing this... > > Can you be more specific? Got an example? OK. The template it's happening on is shown below. WM is reporting: 2003-04-03 02:42:48 WebMacro:servlet WARNING Ignition encountered an error while executing a template: StreamTemplate:jndi:/localhost/ignition/WEB- INF/templates/system/moduleHelp.wmt: org.webmacro.PropertyException: Attempt to invoke method public static int org.webmacro.servlet.ListUtil.size(java.util.List) on object org.webmacro.servlet.ListUtil raised an exception: java.lang.NullPointerException java.lang.NullPointerException at jndi:/localhost/ignition/WEB- INF/templates/system/moduleHelp.wmt:29.7 Here's the (work in progress) template... there is no call to $List.size() anywhere near line 29. BUT there -is-a call to it on line 29 of system/helpMacros.wmt - so it looks like it is the incorrect filename being reported. #include as macro "system/helpMacros.wmt" #include "includes/header.wmt" #if (!$ignitionHelp.Module) #set $mod = "default module" #else #set $mod = "module $ignitionHelp.Module" #end <h1>Ignition Help for $mod</h1> <p> You can view help from the other modules: #foreach $moduleName in $ignitionHelp.ModuleNames #if ($moduleName != $ignitionHelp.Module) #set $action = $Ignition.newAction("ignitionHelp") #set $action.Module = $moduleName #set $modMenuName = $moduleName #if ($moduleName == "") #set $modMenuName = "DEFAULT" #end <a href="$Ignition.execute([$action])">$modMenuName</a> #end #end </p> <h2>Help Sections</h2> <a href="_actions">Actions</a><br> <a href="_helpers">Helpers</a><br> ***** LINE 29 ****** <a href="_plugins">Plugins</a><br> <a name="_actions"> #macro dumpActionInfo($title, $infoVar) <h2>$title</h2> <ul> #foreach $action in $infoVar.Actions <li><a href="#action_$action.Name">$action.Name</a> #end </ul> #if ($List.size($infoVar.Actions) > 0) <p> Below is a list of the actions available from templates in the $mod. To call these actions you can insert the following into your templates: #text <pre> #set $action = $Ignition.newAction( "actionNameHere") #set $action.ParamNameHere = "ParamValueHere" <a href="$Ignition.execute([$action])">Link to action</a> </pre> #end </p> #foreach $action in $infoVar.Actions <a name="action_$action.Name"> #dumpPluginInfo($action, true) <div class="helpActionVarsDiv"> <h3>Variables placed into templates:</h3> #dumpHelpVariables($action.Variables) </div> #end ## Action loop #else There are no actions available in this module. #end ## count > 0 #end ## Macro #dumpActionInfo( "Module Actions", $ignitionHelp.helpInfo) #if ($ignitionHelp.defaultHelpInfo != null) #dumpActionInfo( "Default Actions", $ignitionHelp.defaultHelpInfo) #end <a name="_helpers"> <h2>Helpers</h2> #set $count = 0 #foreach $helper in $ignitionHelp.helpInfo.Helpers #set $count = $count + 1 #end #if ($count > 0) <p> The following helpers are available in your templates, for this module. They can be accessed like this: #text <pre> <b>The value is:<b> $HelperNameHere.PropertyNameHere $HelperNameHere.methodName("someParam") </pre> #end </p> #foreach $action in $ignitionHelp.helpInfo.Helpers <p> $action.Name - </p> #end #else There are no helpers in this module. #end <a name="_plugins"> <h2>Plugins</h2> <h3>Pre-request plugins</h3> #dumpHelpPlugins( $ignitionHelper.helpInfo.PreRequestPlugins) <h3>Post-request plugins</h3> #dumpHelpPlugins( $ignitionHelper.helpInfo.PostRequestPlugins) <h3>Pre-Action plugins</h3> #dumpHelpPlugins( $ignitionHelper.helpInfo.PreActionPlugins) <h3>Post-Action plugins</h3> #dumpHelpPlugins( $ignitionHelper.helpInfo.PostActionPlugins) #include "includes/footer.wmt" |
From: <kea...@na...> - 2003-04-03 16:50:47
|
I haven't made JUnit test case yet, but here's the simplest example I can cook up: import org.webmacro.*; public class WMLogTest { static public void main(String[] args) throws Exception { org.webmacro.Log log = null; WM wm = null; for (int i=1; i<4; i++){ wm = new WM("wm.properties"); log = wm.getLog("wm"); log.notice("Test message " + i); wm.destroy(); } } } You can see from the output below that "Test message 1" gets logged once, "Test message 2" get logged twice, etc. Keats 11:44:12 AM LogFile NOTICE --- Log Started --- 11:44:12 AM broker NOTICE starting org.webmacro.Broker: wm.properties 11:44:12 AM broker NOTICE Loaded settings from WebMacro.defaults, wm.properties, (System Properties) 11:44:12 AM wm NOTICE new WebMacro(wm.properties) v@VERSION@ 11:44:12 AM wm NOTICE Test message 1 11:44:12 AM broker NOTICE shutting down 11:44:12 AM LogFile NOTICE --- Log Started --- 11:44:12 AM broker NOTICE starting org.webmacro.Broker: wm.properties 11:44:12 AM broker NOTICE starting org.webmacro.Broker: wm.properties 11:44:12 AM broker NOTICE Loaded settings from WebMacro.defaults, wm.properties, (System Properties) 11:44:12 AM broker NOTICE Loaded settings from WebMacro.defaults, wm.properties, (System Properties) 11:44:12 AM wm NOTICE new WebMacro(wm.properties) v@VERSION@ 11:44:12 AM wm NOTICE new WebMacro(wm.properties) v@VERSION@ 11:44:12 AM wm NOTICE Test message 2 11:44:12 AM wm NOTICE Test message 2 11:44:12 AM broker NOTICE shutting down 11:44:12 AM broker NOTICE shutting down 11:44:12 AM LogFile NOTICE --- Log Started --- 11:44:12 AM broker NOTICE starting org.webmacro.Broker: wm.properties 11:44:12 AM broker NOTICE starting org.webmacro.Broker: wm.properties 11:44:12 AM broker NOTICE starting org.webmacro.Broker: wm.properties 11:44:12 AM broker NOTICE Loaded settings from WebMacro.defaults, wm.properties, (System Properties) 11:44:12 AM broker NOTICE Loaded settings from WebMacro.defaults, wm.properties, (System Properties) 11:44:12 AM broker NOTICE Loaded settings from WebMacro.defaults, wm.properties, (System Properties) 11:44:12 AM wm NOTICE new WebMacro(wm.properties) v@VERSION@ 11:44:12 AM wm NOTICE new WebMacro(wm.properties) v@VERSION@ 11:44:12 AM wm NOTICE new WebMacro(wm.properties) v@VERSION@ 11:44:12 AM wm NOTICE Test message 3 11:44:12 AM wm NOTICE Test message 3 11:44:12 AM wm NOTICE Test message 3 11:44:12 AM broker NOTICE shutting down 11:44:12 AM broker NOTICE shutting down 11:44:12 AM broker NOTICE shutting down |
From: Eric B. R. <eb...@tc...> - 2003-04-03 15:36:52
|
On Thursday, April 3, 2003, at 09:47 AM, Marc Palmer wrote: > Hi, > > I am only now starting to use #macro (good work by the way)... but I > think that if your template experiences an error and you get the > exception showing line number and column in the template, this value > can be incorrect if you define/use macros in the template. I'm > certainly seeing this... Can you be more specific? Got an example? eric > > Will it be possible to fix this or is it going to be really > complicated? > > Best wishes, > Marc > > -- > Marc Palmer > > > > ------------------------------------------------------- > This SF.net email is sponsored by: ValueWeb: Dedicated Hosting for > just $79/mo with 500 GB of bandwidth! No other company gives more > support or power for your dedicated server > http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/ > _______________________________________________ > Webmacro-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-devel |