You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
(68) |
Dec
(77) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(75) |
Feb
(84) |
Mar
(89) |
Apr
(96) |
May
(52) |
Jun
(73) |
Jul
(99) |
Aug
(46) |
Sep
(40) |
Oct
(46) |
Nov
(45) |
Dec
(25) |
2004 |
Jan
(13) |
Feb
(74) |
Mar
(40) |
Apr
(18) |
May
(31) |
Jun
(1) |
Jul
(16) |
Aug
(1) |
Sep
(21) |
Oct
(19) |
Nov
(10) |
Dec
(16) |
2005 |
Jan
(4) |
Feb
(12) |
Mar
(46) |
Apr
(33) |
May
(64) |
Jun
(1) |
Jul
(60) |
Aug
(31) |
Sep
(26) |
Oct
(24) |
Nov
(37) |
Dec
(10) |
2006 |
Jan
(3) |
Feb
(31) |
Mar
(122) |
Apr
(22) |
May
(4) |
Jun
|
Jul
|
Aug
(2) |
Sep
(4) |
Oct
(8) |
Nov
(3) |
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(8) |
From: Tim <ti...@pa...> - 2004-05-28 09:28:35
|
Hi, Been stuck for a little while on a disappearing session variable In one servlet (derived from a copy of WMServlet) I put my User object in the session something like this: void store(WebContext c, User myUser) { HttpSession s = c.getSession(); c.setAttribute("u", myUser); System.err.println(s.getAttribute("u")); } which prints out a valid User object However in the next servlet called HttpSession s = c.getSession(); System.err.println(s.getAttribute("u")); prints null Is this likely to be a Tomcat5 configuration issue or a webmacro issue, I am (fairly) sure now that it is not in my code. yours timp |
From: Lane S. <la...@op...> - 2004-05-27 23:34:45
|
I think this is definitely a tomcat problem, tim. Unless you are doing something to discard the original session. Could you try this same code on Jetty or on Resin? thanks. lane Tim wrote: >Hi, > >I seem to have a problem with Webmacro 2.0 and session handling, >on Tomcat 5.0.19, 5.0.24 and 5.0.25 > >I found a post suggesting that this was a known problem with 5.0.24, >but it hasn't gone away after upgrading. > >The problem is that each servlet gets a new, empty, session object. > >Anyone else getting similar problems? > >My servlet is derived from org.webmacro.servlet.WMServlet > >yours >tim pizey > > > >------------------------------------------------------- >This SF.Net email is sponsored by: Oracle 10g >Get certified on the hottest thing ever to hit the market... Oracle 10g. >Take an Oracle 10g class now, and we'll give you the exam FREE. >http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click >_______________________________________________ >Webmacro-user mailing list >Web...@li... >https://lists.sourceforge.net/lists/listinfo/webmacro-user > > > -- Lane Sharman Enterprise and Personal Email Content Filtering and Hosting http://www.opendoors.com 858-755-2868 |
From: Keats <ke...@xa...> - 2004-05-27 15:08:18
|
That's what I was afraid of; the Map syntax isn't available with 1.1. So if you want to use the "using", clause you'll have to construct the map in advance. You can drop on in the context or create one using the #bean directive, e.g., #bean $map = "java.util.HashMap" #set $map.Foo="bar" #eval $myTemplet using $map Good luck again. Keats ----- Original Message ----- From: "Graeme J Sweeney" <web...@gj...> To: <web...@li...> Sent: Thursday, May 27, 2004 10:33 AM Subject: Re: [WebMacro-user] Re: #templet no such Macro or Directive error > On Thu, 27 May 2004, Keats wrote: > > > Graeme, > > > > Mixing and matching classes within the core WM packages probably isn't a > > good idea. Can you give more details on the original parse exception? It > > may be that that version of WM didn't support the Map syntax. Try an > > example without the parameters and see if that works. > > <snip/> > > #eval works without the parameters. > > This is an example exception for webamcro-1.1 with #templet/#eval > directives added using '#eval using {}' syntax. > > org.webmacro.engine.ParseException: Parser Exception > org.webmacro.parser.ParseException: Encountered "{" at line 328, column > 28. > Was expecting one of: > "$" ... > "\"" ... > "\'" ... > "null" ... > "true" ... > "false" ... > "undefined" ... > <WS> ... > "(" ... > "[" ... > "-" ... > <OP_NOT> ... > <NUMBER> ... > > at org.webmacro.parser.WMParser.parseBlock(WMParser.java:82) > at org.webmacro.engine.WMTemplate.parse(WMTemplate.java:162) > at > org.webmacro.resource.BrokerTemplateProviderHelper.load(BrokerTemplateProvid erHelper.java:102) > at > org.webmacro.resource.TemplateProvider.load(TemplateProvider.java:175) > at > org.webmacro.resource.CachingProvider.load(CachingProvider.java:111) > at > org.webmacro.resource.SMapCacheManager.get(SMapCacheManager.java:244) > at org.webmacro.resource.CachingProvider.get(CachingProvider.java:101) > at org.webmacro.Broker.get(Broker.java:658) > at org.webmacro.Broker.getValue(Broker.java:699) > > <snip/> > > Caused by: org.webmacro.parser.ParseException: Encountered "{" at line > 328, column 28. > Was expecting one of: > "$" ... > "\"" ... > "\'" ... > "null" ... > "true" ... > "false" ... > "undefined" ... > <WS> ... > "(" ... > "[" ... > "-" ... > <OP_NOT> ... > <NUMBER> ... > > at > org.webmacro.parser.WMParser_impl.generateParseException(WMParser_impl.java: 3043) > at > org.webmacro.parser.WMParser_impl.jj_consume_token(WMParser_impl.java:2927) > at org.webmacro.parser.WMParser_impl.Term(WMParser_impl.java:1217) > at > org.webmacro.parser.WMParser_impl.Factor(WMParser_impl.java:1227) > at > org.webmacro.parser.WMParser_impl.AExpression(WMParser_impl.java:1278) > at > org.webmacro.parser.WMParser_impl.CExpression(WMParser_impl.java:1366) > at > org.webmacro.parser.WMParser_impl.AndExpression(WMParser_impl.java:1407) > at > org.webmacro.parser.WMParser_impl.OrExpression(WMParser_impl.java:1441) > at > org.webmacro.parser.WMParser_impl.Expression(WMParser_impl.java:1475) > at org.webmacro.parser.WMParser_impl.RValue(WMParser_impl.java:566) > at > org.webmacro.parser.WMParser_impl.parse_arg(WMParser_impl.java:235) > at > org.webmacro.parser.WMParser_impl.parse_arg_group(WMParser_impl.java:282) > at > org.webmacro.parser.WMParser_impl.parse_args(WMParser_impl.java:328) > at > org.webmacro.parser.WMParser_impl.parse_directive(WMParser_impl.java:362) > at > org.webmacro.parser.WMParser_impl.Directive(WMParser_impl.java:1505) > at > org.webmacro.parser.WMParser_impl.WMContent(WMParser_impl.java:1574) > at > org.webmacro.parser.WMParser_impl.Block(WMParser_impl.java:1831) > at > org.webmacro.parser.WMParser_impl.parse_arg(WMParser_impl.java:215) > at > org.webmacro.parser.WMParser_impl.parse_args(WMParser_impl.java:332) > at > org.webmacro.parser.WMParser_impl.parse_directive(WMParser_impl.java:362) > at > org.webmacro.parser.WMParser_impl.Directive(WMParser_impl.java:1505) > at > org.webmacro.parser.WMParser_impl.WMContent(WMParser_impl.java:1574) > at > org.webmacro.parser.WMParser_impl.WMDocument(WMParser_impl.java:1955) > at org.webmacro.parser.WMParser.parseBlock(WMParser.java:75) > > TIA, > > Graeme - > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle 10g. > Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > Webmacro-user mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-user > |
From: Graeme J S. <web...@gj...> - 2004-05-27 14:33:57
|
On Thu, 27 May 2004, Keats wrote: > Graeme, > > Mixing and matching classes within the core WM packages probably isn't a > good idea. Can you give more details on the original parse exception? It > may be that that version of WM didn't support the Map syntax. Try an > example without the parameters and see if that works. <snip/> #eval works without the parameters. This is an example exception for webamcro-1.1 with #templet/#eval directives added using '#eval using {}' syntax. org.webmacro.engine.ParseException: Parser Exception org.webmacro.parser.ParseException: Encountered "{" at line 328, column 28. Was expecting one of: "$" ... "\"" ... "\'" ... "null" ... "true" ... "false" ... "undefined" ... <WS> ... "(" ... "[" ... "-" ... <OP_NOT> ... <NUMBER> ... at org.webmacro.parser.WMParser.parseBlock(WMParser.java:82) at org.webmacro.engine.WMTemplate.parse(WMTemplate.java:162) at org.webmacro.resource.BrokerTemplateProviderHelper.load(BrokerTemplateProviderHelper.java:102) at org.webmacro.resource.TemplateProvider.load(TemplateProvider.java:175) at org.webmacro.resource.CachingProvider.load(CachingProvider.java:111) at org.webmacro.resource.SMapCacheManager.get(SMapCacheManager.java:244) at org.webmacro.resource.CachingProvider.get(CachingProvider.java:101) at org.webmacro.Broker.get(Broker.java:658) at org.webmacro.Broker.getValue(Broker.java:699) <snip/> Caused by: org.webmacro.parser.ParseException: Encountered "{" at line 328, column 28. Was expecting one of: "$" ... "\"" ... "\'" ... "null" ... "true" ... "false" ... "undefined" ... <WS> ... "(" ... "[" ... "-" ... <OP_NOT> ... <NUMBER> ... at org.webmacro.parser.WMParser_impl.generateParseException(WMParser_impl.java:3043) at org.webmacro.parser.WMParser_impl.jj_consume_token(WMParser_impl.java:2927) at org.webmacro.parser.WMParser_impl.Term(WMParser_impl.java:1217) at org.webmacro.parser.WMParser_impl.Factor(WMParser_impl.java:1227) at org.webmacro.parser.WMParser_impl.AExpression(WMParser_impl.java:1278) at org.webmacro.parser.WMParser_impl.CExpression(WMParser_impl.java:1366) at org.webmacro.parser.WMParser_impl.AndExpression(WMParser_impl.java:1407) at org.webmacro.parser.WMParser_impl.OrExpression(WMParser_impl.java:1441) at org.webmacro.parser.WMParser_impl.Expression(WMParser_impl.java:1475) at org.webmacro.parser.WMParser_impl.RValue(WMParser_impl.java:566) at org.webmacro.parser.WMParser_impl.parse_arg(WMParser_impl.java:235) at org.webmacro.parser.WMParser_impl.parse_arg_group(WMParser_impl.java:282) at org.webmacro.parser.WMParser_impl.parse_args(WMParser_impl.java:328) at org.webmacro.parser.WMParser_impl.parse_directive(WMParser_impl.java:362) at org.webmacro.parser.WMParser_impl.Directive(WMParser_impl.java:1505) at org.webmacro.parser.WMParser_impl.WMContent(WMParser_impl.java:1574) at org.webmacro.parser.WMParser_impl.Block(WMParser_impl.java:1831) at org.webmacro.parser.WMParser_impl.parse_arg(WMParser_impl.java:215) at org.webmacro.parser.WMParser_impl.parse_args(WMParser_impl.java:332) at org.webmacro.parser.WMParser_impl.parse_directive(WMParser_impl.java:362) at org.webmacro.parser.WMParser_impl.Directive(WMParser_impl.java:1505) at org.webmacro.parser.WMParser_impl.WMContent(WMParser_impl.java:1574) at org.webmacro.parser.WMParser_impl.WMDocument(WMParser_impl.java:1955) at org.webmacro.parser.WMParser.parseBlock(WMParser.java:75) TIA, Graeme - |
From: <edw...@hi...> - 2004-05-27 14:19:03
|
I will be out of the office starting 05/26/2004 and will not return until 06/02/2004. |
From: Keats <ke...@xa...> - 2004-05-27 14:07:11
|
Graeme, Mixing and matching classes within the core WM packages probably isn't a good idea. Can you give more details on the original parse exception? It may be that that version of WM didn't support the Map syntax. Try an example without the parameters and see if that works. Good luck, Keats ----- Original Message ----- From: "Graeme J Sweeney" <web...@gj...> To: <web...@li...> Sent: Thursday, May 27, 2004 8:31 AM Subject: [WebMacro-user] Re: #templet no such Macro or Directive error > On Wed, 26 May 2004 Keats wrote: > > > You should be able to use templets with 1.1. Just make sure the classes are > > in your distro and include the following lines in your WebMacro.properties > > file: > > > > Directives.templet: org.webmacro.directive.TempletDirective > > Directives.eval: org.webmacro.directive.EvalDirective > > > > Good luck. > > Thanks. > > #templet works fine. > > A parse exception is thrown for #eval when using: > > #eval $foobar using {"foo": $foo} > > I tried building a jar replacing the parser classes in 1.1 with > those from 2.0 but I then got this exception > > java.lang.NoSuchMethodError: > org.webmacro.engine.VariableBuilder.<init>([Ljava/lang/Object;)V > at > org.webmacro.parser.WMParser_impl.VariableReference(WMParser_impl.java:833) > at > org.webmacro.parser.WMParser_impl.LValue(WMParser_impl.java:542) > at > org.webmacro.parser.WMParser_impl.parse_arg(WMParser_impl.java:231) > at > org.webmacro.parser.WMParser_impl.parse_args(WMParser_impl.java:331) > at > org.webmacro.parser.WMParser_impl.parse_directive(WMParser_impl.java:361) > at > org.webmacro.parser.WMParser_impl.Directive(WMParser_impl.java:1823) > at > org.webmacro.parser.WMParser_impl.WMContent(WMParser_impl.java:1892) > at > org.webmacro.parser.WMParser_impl.WMDocument(WMParser_impl.java:2273) > at org.webmacro.parser.WMParser.parseBlock(WMParser.java:74) > > Any ideas on getting '#eval using' syntax working in 1.1? > > TIA, > > Graeme - > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle 10g. > Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > Webmacro-user mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-user > |
From: Tim <ti...@pa...> - 2004-05-27 13:24:38
|
Hi, I seem to have a problem with Webmacro 2.0 and session handling, on Tomcat 5.0.19, 5.0.24 and 5.0.25 I found a post suggesting that this was a known problem with 5.0.24, but it hasn't gone away after upgrading. The problem is that each servlet gets a new, empty, session object. Anyone else getting similar problems? My servlet is derived from org.webmacro.servlet.WMServlet yours tim pizey |
From: Graeme J S. <web...@gj...> - 2004-05-27 12:34:20
|
On Wed, 26 May 2004 Keats wrote: > You should be able to use templets with 1.1. Just make sure the classes are > in your distro and include the following lines in your WebMacro.properties > file: > > Directives.templet: org.webmacro.directive.TempletDirective > Directives.eval: org.webmacro.directive.EvalDirective > > Good luck. Thanks. #templet works fine. A parse exception is thrown for #eval when using: #eval $foobar using {"foo": $foo} I tried building a jar replacing the parser classes in 1.1 with those from 2.0 but I then got this exception java.lang.NoSuchMethodError: org.webmacro.engine.VariableBuilder.<init>([Ljava/lang/Object;)V at org.webmacro.parser.WMParser_impl.VariableReference(WMParser_impl.java:833) at org.webmacro.parser.WMParser_impl.LValue(WMParser_impl.java:542) at org.webmacro.parser.WMParser_impl.parse_arg(WMParser_impl.java:231) at org.webmacro.parser.WMParser_impl.parse_args(WMParser_impl.java:331) at org.webmacro.parser.WMParser_impl.parse_directive(WMParser_impl.java:361) at org.webmacro.parser.WMParser_impl.Directive(WMParser_impl.java:1823) at org.webmacro.parser.WMParser_impl.WMContent(WMParser_impl.java:1892) at org.webmacro.parser.WMParser_impl.WMDocument(WMParser_impl.java:2273) at org.webmacro.parser.WMParser.parseBlock(WMParser.java:74) Any ideas on getting '#eval using' syntax working in 1.1? TIA, Graeme - |
From: Lane S. <la...@op...> - 2004-05-26 05:01:27
|
Hi Eric, I think there is a lot of application besides "web collaboration" with our WM Wiki given its numerous extension points. For example, from your post below, I now know that I can a wiki source document as: View This Report: sql://QueryName/WhereClause={someWereClause}/OrderByClause={someOrderByClause} Because I can write a sql:// tag renderer, I can offer a sql reporting protocol inside our WM Wiki. Eric, could you try over the next few weeks to document a bit more some of pluggable features. For example, it would be good if you explained why your action handler list is not a map. (Don't explain it here, I think i know now). The action handler model is really an improvement over some of the things we have done in the past. Kindest, Lane Eric B. Ridge wrote: >(sorry for the cross-posting.... Lane started it!) > >On 5/25/04 11:18 AM, "Lane Sharman" <la...@op...> wrote: > > > >>c) our wiki supports url terms: http:, ftp:, img:, and I think a few >>others. Therefore, you can easily reference such content within a page >>without knowing the ugly syntax of img tag, for example. >> >> > >WM Wiki also supports "pluggable" URL's, w/o making changes to the >JavaCC-based parser. This is really useful if you're trying to integrate WM >Wiki into an internal intranet of some kind. > >To use a software-development example, you can easily invent a URL named >"cvs://", which might be used by a normal user like so: > > View this file in CVS: cvs://src/org/webmacro/servlet/WMServlet.java > >>From here, you've got a little bit of code behind the scenes (a subclass of >URLRenderer) that hand-parses this "cvs://" url, and generates the hyperlink >to the actual http:// location. > >Another example might be a url like this: > document://3456-789 > >With code behind it to generate a hyperlink to view this particular document >in your CMS. > >The point is, it's pretty easy to extend WM Wiki to fit into your existing >web environment, even tho WM Wiki is another web-app. > >eric > > > >------------------------------------------------------- >This SF.Net email is sponsored by: Oracle 10g >Get certified on the hottest thing ever to hit the market... Oracle 10g. >Take an Oracle 10g class now, and we'll give you the exam FREE. >http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click >_______________________________________________ >Webmacro-user mailing list >Web...@li... >https://lists.sourceforge.net/lists/listinfo/webmacro-user > > > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Keats <ke...@xa...> - 2004-05-25 17:35:23
|
You should be able to use templets with 1.1. Just make sure the classes are in your distro and include the following lines in your WebMacro.properties file: Directives.templet: org.webmacro.directive.TempletDirective Directives.eval: org.webmacro.directive.EvalDirective Good luck. Keats ----- Original Message ----- From: "Lane Sharman" <la...@op...> To: <web...@li...> Sent: Tuesday, May 25, 2004 11:18 AM Subject: Re: [WebMacro-user] #templet no such Macro or Directive error > You need to be using webmacro 2.0, the latest release. > > web...@gj... wrote: > > > Hi, > > > > I'm upgrading an old webapp from webmacro 1.0 to 1.1 and adding a few > > things on. > > > > As part of the upgrade I'm trying to use #templet/#eval for a > > recursive operation but get a build exception: > > > > org.webmacro.engine.BuildException: #templet: no such Macro or Directive > > > > According to http://www.webmacro.org/AllDirectives #templet is an > > available but optional directive - where/how do I enable it? > > > > TIA, > > > > Graeme - > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by: Oracle 10g > > Get certified on the hottest thing ever to hit the market... Oracle > > 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. > > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > > _______________________________________________ > > Webmacro-user mailing list > > Web...@li... > > https://lists.sourceforge.net/lists/listinfo/webmacro-user > > > > -- > Lane Sharman > Providing Private and SPAM-Free Email > http://www.opendoors.com > 858-755-2868 > > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle 10g. > Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > Webmacro-user mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-user > |
From: Eric B. R. <eb...@tc...> - 2004-05-25 16:17:48
|
(sorry for the cross-posting.... Lane started it!) On 5/25/04 11:18 AM, "Lane Sharman" <la...@op...> wrote: > c) our wiki supports url terms: http:, ftp:, img:, and I think a few > others. Therefore, you can easily reference such content within a page > without knowing the ugly syntax of img tag, for example. WM Wiki also supports "pluggable" URL's, w/o making changes to the JavaCC-based parser. This is really useful if you're trying to integrate WM Wiki into an internal intranet of some kind. To use a software-development example, you can easily invent a URL named "cvs://", which might be used by a normal user like so: View this file in CVS: cvs://src/org/webmacro/servlet/WMServlet.java From here, you've got a little bit of code behind the scenes (a subclass of URLRenderer) that hand-parses this "cvs://" url, and generates the hyperlink to the actual http:// location. Another example might be a url like this: document://3456-789 With code behind it to generate a hyperlink to view this particular document in your CMS. The point is, it's pretty easy to extend WM Wiki to fit into your existing web environment, even tho WM Wiki is another web-app. eric |
From: Lane S. <la...@op...> - 2004-05-25 15:11:06
|
You need to be using webmacro 2.0, the latest release. web...@gj... wrote: > Hi, > > I'm upgrading an old webapp from webmacro 1.0 to 1.1 and adding a few > things on. > > As part of the upgrade I'm trying to use #templet/#eval for a > recursive operation but get a build exception: > > org.webmacro.engine.BuildException: #templet: no such Macro or Directive > > According to http://www.webmacro.org/AllDirectives #templet is an > available but optional directive - where/how do I enable it? > > TIA, > > Graeme - > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle > 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > Webmacro-user mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-user > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Lane S. <la...@op...> - 2004-05-25 15:10:35
|
Hi Josh, The security model is described in brief at http://www.webmacro.org/WebMacroWiki but there are other features: a) the administrator can set a "moderator" flag for a user, making the user a moderator. This empowers the user to created moderated pages: they can only be modified by moderators, not the user community. b) the differencing part of the app plus the versioning really provides some incredible documentation audit features. I attended a Sarbanes-Oxley workshop. In addition to learning how boring this was, I discovered that nobody seems to have a secure, simple, mere-mortal documentation platform that is web-based. c) our wiki supports url terms: http:, ftp:, img:, and I think a few others. Therefore, you can easily reference such content within a page without knowing the ugly syntax of img tag, for example. Lastly, the code is remarkably well-structured. You will have no problem looking at the source tree and the servlet and then the action handlers to figure things out. The only issue is the parser: it is written using JavaCC which may be an issue for you if you need to alter it. Kindest, Lane Josh Rehman wrote: > That's cool. > > Another important thing: a big win of WM Wiki over Twiki is the > security features. We're kind of hurting that we can't set more > granular restrictions right now... This alone may switch us. > > Lane Sharman wrote: > >> Hi Josh, >> >> If you like being able to extend a wiki with custom pages, consider >> as well WM Wiki. Most WIKIs I have seen have no provision for >> trapping special page names. For example, in WM wiki, every page with >> an Admin prefix has a special handler to catch if it is >> AdminControlFiles or AdminUpdateUser. The list of handlers follows an >> interface spec and is added to a property fiile. So, in following the >> MVC pattern, the default model is to render a page unless you have a >> specific model for a specific class of pages. >> >> With the requirement to follow the interface contract, there is no >> need to update the control layer (servlet and model dispatcher). Just >> add the class name to the properties file and you have a model to >> handle a class of pages. >> >> Lane >> >> >> >> Josh Rehman wrote: >> >>> FWIW I really liked the look of WM Wiki although I've never >>> installed it myself. The markup language is the most important >>> thing, IMHO, and WM Wiki seems to do it right. No triple quoting to >>> indicate boldness, for example. (Which has got to be one of the most >>> brain dead markup conventions ever...I forgot which wiki impl uses >>> that...) >>> >>> Our company uses 'Twiki' which is really very nice, if you don't >>> mind using mod_perl. >>> >>> Lane Sharman wrote: >>> >>>> I am a little prejudiced. I have been using WM Wiki for years now >>>> and the auditing features and the new security features are very >>>> compelling. As to working with JSPs, I have never liked the >>>> rendering language and the inherent baggage of them. But, I do not >>>> know JSPWiki well enought to say that it is feature-for-feature >>>> inferior or superior to WM Wiki. >>>> >>>> -Lane >>>> >>>> Gerald Deere wrote: >>>> >>>>> I'll be setting up a wiki for my group soon. I've had some >>>>> experience with JSPWiki, but webmacro also looks very nice. >>>>> >>>>> Does anybody have any recommendations which wiki to use? >>>>> >>>>> ------------------------------------------------------------------------ >>>>> >>>>> >>>>> >>>>> Greetings, >>>>> >>>>> I am pleased to announce Release 3 of WebMacro Wiki. For those of >>>>> you who are new to WebMacro Wiki, it is a powerful documentation >>>>> platform allowing you to create and edit documentation on the web >>>>> without knowing HTML. If you can create an email like the ones you >>>>> write everyday, you can create and publish in a single step a >>>>> WebMacro Wiki page for others to browse, share and edit. >>>>> >>>>> The Wiki documentation model on the Web is well-established in the >>>>> software and open-source communities where there is a need to >>>>> share, create, edit and publish documentation, process and >>>>> know-how among a community, a corporation, or an industry. >>>>> >>>>> The purpose of this letter is to let you know that there is now a >>>>> secure Wiki for the Web based on this documentation idiom. >>>>> >>>>> WebMacro Wiki is open-source under the APL license, meaning you >>>>> can take the code and create a commercial product. >>>>> >>>>> In Release 3, unlike most Wiki's I know of, you get security, >>>>> authorization, approveability, and remote administration. With >>>>> these features, you can create small documentation zones >>>>> (http://policy.personnel.mycompany.com) for a subject domain, >>>>> outside or inside a firewall, available to a select group of users >>>>> whom the administrator has the right to approve or not. >>>>> >>>>> These features are in addition to powerful audit features such as >>>>> unlimited versions of a Web page document, content differencing >>>>> from one page to the prior version, document preview, and >>>>> moderated pages editable only by the moderators of the site. >>>>> >>>>> The combination of these features plus the ease-of-use of Wiki >>>>> page creation and publishing place WebMacro Wiki in a class by >>>>> itself (in my compiled universe :) ). Furthermore, WebMacro Wiki >>>>> is easily extended for further documentation purposes by anyone >>>>> with moderate Java programming skills. >>>>> >>>>> Using the links below, you can see how an entire knowledge space >>>>> (the WebMacro Open Source Project) was documented on the web by a >>>>> large community. Not a single FTP, SSH, WebDav, DreamWeaver, Flash >>>>> or other thousand must-have tools are ever required with a >>>>> WebMacro Wiki site. To see how easy it is to create a WM wiki >>>>> page, register at the site below and create a page for yourself >>>>> (you will be prompted on registration). Be sure to visit the hints >>>>> page for formatting options. >>>>> >>>>> More work is in store for Release 3 versions to further enhance >>>>> administration and manageability. >>>>> >>>>> http://webmacro.org and http://webmacro.org/WebMacroWiki for more >>>>> information and to download the java source from sourceforge.net. >>>>> Please reply to me if you would like your own WebMacro Wiki set up >>>>> for evaluation in your organization. >>>>> >>>>> Many thanks to the contributions of the WebMacro development team >>>>> and community. Without them, this release would not have been >>>>> possible. >>>>> >>>>> Kindest regards, >>>>> >>>>> -- >>>>> Lane Sharman >>>>> Providing Private and SPAM-Free Email >>>>> http://www.opendoors.com >>>>> 858-755-2868 >>>>> >>>> >>>> -- >>>> Lane Sharman >>>> Providing Private and SPAM-Free Email >>>> http://www.opendoors.com >>>> 858-755-2868 >>>> >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: ocj...@oc... >>> For additional commands, e-mail: ocj...@oc... >>> >>> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: ocj...@oc... > For additional commands, e-mail: ocj...@oc... > > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: <web...@gj...> - 2004-05-25 12:06:52
|
Hi, I'm upgrading an old webapp from webmacro 1.0 to 1.1 and adding a few things on. As part of the upgrade I'm trying to use #templet/#eval for a recursive operation but get a build exception: org.webmacro.engine.BuildException: #templet: no such Macro or Directive According to http://www.webmacro.org/AllDirectives #templet is an available but optional directive - where/how do I enable it? TIA, Graeme - |
From: Lane S. <la...@op...> - 2004-05-25 06:07:39
|
Hi Lars, As ebr pointed out, you can consider the #cache directive as well. This is in the contrib/ distro and you will probably want to consider this as well. I almost exclusively use templets because of the inherent ability to pass in parameters. templets are extremely compelling to use in new template development. I discuss this at http://webmacro.org/BlockLevelExpressionism I have a global file, global.tml which includes parts.tml. global.tml is evaluated once or on a refresh and is always made available in the context. See the current cvs image for o.w.servlets.TemplateServlet.init(). Be sure to look at how this servlet manages a global context. Then, consider the opening lines of a parts.tml, inccluded from global.tml: #include as macro "includes/macros.wmm" #bean $site = "org.webmacro.util.SparseProperties" scope=global ## site parameters: #bean $site.ServiceStarted = "java.util.Date" #bean $site.StorageService = "org.opendoors.vlh.VLHProvider" scope=static #set $site.SMTPServer = "@MailServer@" #set $site.SupportAddress = ["la...@op..."] #set $site.SalesAddress = ["sa...@op..."] #set $site.FromAddress = "su...@op..." #set $site.BlackMailURL = "http://www.computerworld.com/securitytopics/security/cybercrime/story/0,10801,88623,00.html" #templet $site.PageFooter { <DIV id="pageFooter"> [#hrefInDialog("/privacy.html","Privacy")] [#hrefInDialog("/contact.html", "Contact Us")] </DIV> } It is pretty clear that I am using $site as a cache and using #bean to instantiate the type of cache I want to use. -Lane Lars George wrote: > Hi Lane, > > OK, I get it, that is an approach. That way I add my own CachingTool > and use it where I need it. Getting the scope etc. supported should > not be much more complicated I assume. > > The other question of course is if that would not be a good feature > for WebMacro's core as well. In general the question is what is the > way to go, using templets or blocks. > > Thanks, > Lars > > > Lane Sharman wrote: > >> Hi, >> >> With WM, you can have an object like $WMCache in the context. Then, >> as you evaluate a templet into a string variable, you can place the >> string variable into the $WMCache. The next time around, you can test >> for its existence subject to a lot of criteria such as user, session, >> time, invalidation, etc, etc. >> >> -Lane >> >> >> >> >> Brian Goetz wrote: >> >>> You've addressed half of Lars' question -- the caching infrastructure >>> -- but not the other half -- the integration of caching into the >>> template language. The approach taken by OSCache is quite cool, in >>> that allows JSP writers to specify the interaction of caching and >>> content quite nicely. >>> >>>> Caching has been discussed a lot and there is a caching provider >>>> interface so you can write your own caching implementation. (As I >>>> have done). >>>> >>>> To cache individual objects, you can use a global service model to >>>> cache individual templates (eg, connection.wmt, statements.wmt, >>>> etc.) and objects (queryResultReference, queryResultDomain, >>>> queryResultTransaction, etc). With this kind of a model, you cache >>>> both the template elements and the results according to memory and >>>> invalidation events. >>>> >>> > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle > 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > Webmacro-user mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-user > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Lars G. <la...@wo...> - 2004-05-25 05:51:25
|
Hi Eric, Cool, that seems like nearly what I was after. Is that code still up-to-date with the latest code? How difficult would it be to hand in the cache params as I suggested, eg. #cache { "timeout": 600, "scope": "session", ... } #begin ... #end Do you think that would work or not? I have the feeling that the block style is a lot more intuitive and useful then using a CachingTool and to cache templets manually. The reason is that with blocks they can be wrapped in existing templates very easily, but with templets first you need the latest code and also the syntax is not as intuitive - sorry, no offense meant. I mean, you have to define the templets first and then sort of include them where they should. If the block style as Eric has started works then you can even wrap the #eval call an cache any templet ;-) Thanks, Lars Eric B. Ridge wrote: > On 5/24/04 12:08 AM, "Lars George" <la...@wo...> wrote: > > >>Hi, >> >>I had a look at OSCache the other day and noticed their Cache Tag >>support which allows you to wrap a piece of code in a JSP and have it >>cached for a configurable ammount of time: >> >>http://www.opensymphony.com/oscache/tags.html > > > A long long time ago, I started on a #cache directive. It's still in our > CVS /contrib tree: > http://cvs.sourceforge.net/viewcvs.py/webmacro/contrib/CacheDirective/ > > You might find it as a good starting point. > > eric > > >>Well, I thought, wouldn't that be a cool feature in WebMacro if we could >>cache a evaluated piece for a certain amount of time? There are a couple >>of ways to do it of course and even the caching would need to be >>implemented somehow, but I think it cannot be too difficult and before >>having a go at it I thought what you guys think of it. >> >>One option would be to specify a Cache Interface class with the >>necessary functionality and then implement it as required. For instance >>one could use a special proxy/wrapper class to wrap OSCache into the >>infrastructure. The classname for the proxy/wrapper class and basic >>settings could be specified in the WebMacro.properties file. >> >>Then the Eval directive could be enhanced to handle the cache support, eg. >> >> #eval $listCart using { "cart": $myCart } cache { "timeout": 600, >>"scope": "session" ... } >> >>using similar parameters as seen above in the OSCache cache tag. >> >>Then all the Eval directive would have to do is check if the cache >>params are given and a cache proxy class is specified in the settings >>file and then get the previously evaluated content from the cache or >>store it there. >> >>Of course, if the WebMacro internal cache is already prepared to handle >>this sort of extra work, then even better but since I started with >>OSCache and know that they have all that "scope" stuff already >>implemented, then why doing it again. >> >>Maybe there is even another way to cache pieces of evaluated template >>using something like the block code, eg. >> >>#cache { "timeout": ... } #begin >> >>normal template code here >> >>#end >> >>But since I am not fully aware of which is the easier implementation of >>the two I would love to hear what you guys suggest. >> >>Why all this effort? Well, I started "poluting" the code in a lot of >>places to cache for instance database records that hardly change so that >>next time the WebMacro tool which fills the template is called it uses >>the cached information instead of hitting the database again. It is an >>obvious choice because it gives the front-end page generator a choice to >>get fresh or cached data where ever needed. When that happens >>auto-magically in the backend then there is no control from the >>presentation layer and the only choice to solve this is to add extra >>params to the custom WebMacro tool calls which allows to specify this. >> >>I thnk these are more than enough reasons to do it. ;-) >> >>Let me know what you think. >> >>Cheers, >>Lars >> >> >> >>------------------------------------------------------- >>This SF.Net email is sponsored by: Oracle 10g >>Get certified on the hottest thing ever to hit the market... Oracle 10g. >>Take an Oracle 10g class now, and we'll give you the exam FREE. >>http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click >>_______________________________________________ >>Webmacro-user mailing list >>Web...@li... >>https://lists.sourceforge.net/lists/listinfo/webmacro-user > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle 10g. > Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > Webmacro-user mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-user > |
From: Lars G. <la...@wo...> - 2004-05-25 05:43:37
|
Hi Lane, OK, I get it, that is an approach. That way I add my own CachingTool and use it where I need it. Getting the scope etc. supported should not be much more complicated I assume. The other question of course is if that would not be a good feature for WebMacro's core as well. In general the question is what is the way to go, using templets or blocks. Thanks, Lars Lane Sharman wrote: > Hi, > > With WM, you can have an object like $WMCache in the context. Then, as > you evaluate a templet into a string variable, you can place the string > variable into the $WMCache. The next time around, you can test for its > existence subject to a lot of criteria such as user, session, time, > invalidation, etc, etc. > > -Lane > > > > > Brian Goetz wrote: > >> You've addressed half of Lars' question -- the caching infrastructure >> -- but not the other half -- the integration of caching into the >> template language. The approach taken by OSCache is quite cool, in >> that allows JSP writers to specify the interaction of caching and >> content quite nicely. >> >> >>> Caching has been discussed a lot and there is a caching provider >>> interface so you can write your own caching implementation. (As I >>> have done). >>> >>> To cache individual objects, you can use a global service model to >>> cache individual templates (eg, connection.wmt, statements.wmt, etc.) >>> and objects (queryResultReference, queryResultDomain, >>> queryResultTransaction, etc). With this kind of a model, you cache >>> both the template elements and the results according to memory and >>> invalidation events. >>> |
From: Eric B. R. <eb...@tc...> - 2004-05-24 21:57:35
|
On 5/24/04 12:08 AM, "Lars George" <la...@wo...> wrote: > Hi, > > I had a look at OSCache the other day and noticed their Cache Tag > support which allows you to wrap a piece of code in a JSP and have it > cached for a configurable ammount of time: > > http://www.opensymphony.com/oscache/tags.html A long long time ago, I started on a #cache directive. It's still in our CVS /contrib tree: http://cvs.sourceforge.net/viewcvs.py/webmacro/contrib/CacheDirective/ You might find it as a good starting point. eric > > Well, I thought, wouldn't that be a cool feature in WebMacro if we could > cache a evaluated piece for a certain amount of time? There are a couple > of ways to do it of course and even the caching would need to be > implemented somehow, but I think it cannot be too difficult and before > having a go at it I thought what you guys think of it. > > One option would be to specify a Cache Interface class with the > necessary functionality and then implement it as required. For instance > one could use a special proxy/wrapper class to wrap OSCache into the > infrastructure. The classname for the proxy/wrapper class and basic > settings could be specified in the WebMacro.properties file. > > Then the Eval directive could be enhanced to handle the cache support, eg. > > #eval $listCart using { "cart": $myCart } cache { "timeout": 600, > "scope": "session" ... } > > using similar parameters as seen above in the OSCache cache tag. > > Then all the Eval directive would have to do is check if the cache > params are given and a cache proxy class is specified in the settings > file and then get the previously evaluated content from the cache or > store it there. > > Of course, if the WebMacro internal cache is already prepared to handle > this sort of extra work, then even better but since I started with > OSCache and know that they have all that "scope" stuff already > implemented, then why doing it again. > > Maybe there is even another way to cache pieces of evaluated template > using something like the block code, eg. > > #cache { "timeout": ... } #begin > > normal template code here > > #end > > But since I am not fully aware of which is the easier implementation of > the two I would love to hear what you guys suggest. > > Why all this effort? Well, I started "poluting" the code in a lot of > places to cache for instance database records that hardly change so that > next time the WebMacro tool which fills the template is called it uses > the cached information instead of hitting the database again. It is an > obvious choice because it gives the front-end page generator a choice to > get fresh or cached data where ever needed. When that happens > auto-magically in the backend then there is no control from the > presentation layer and the only choice to solve this is to add extra > params to the custom WebMacro tool calls which allows to specify this. > > I thnk these are more than enough reasons to do it. ;-) > > Let me know what you think. > > Cheers, > Lars > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle 10g. > Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > Webmacro-user mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-user |
From: Lane S. <la...@op...> - 2004-05-24 14:02:13
|
Hi, With WM, you can have an object like $WMCache in the context. Then, as you evaluate a templet into a string variable, you can place the string variable into the $WMCache. The next time around, you can test for its existence subject to a lot of criteria such as user, session, time, invalidation, etc, etc. -Lane Brian Goetz wrote: >You've addressed half of Lars' question -- the caching infrastructure >-- but not the other half -- the integration of caching into the >template language. The approach taken by OSCache is quite cool, in >that allows JSP writers to specify the interaction of caching and >content quite nicely. > > > >>Caching has been discussed a lot and there is a caching provider >>interface so you can write your own caching implementation. (As I have >>done). >> >>To cache individual objects, you can use a global service model to cache >>individual templates (eg, connection.wmt, statements.wmt, etc.) and >>objects (queryResultReference, queryResultDomain, >>queryResultTransaction, etc). With this kind of a model, you cache both >>the template elements and the results according to memory and >>invalidation events. >> >> > > >------------------------------------------------------- >This SF.Net email is sponsored by: Oracle 10g >Get certified on the hottest thing ever to hit the market... Oracle 10g. >Take an Oracle 10g class now, and we'll give you the exam FREE. >http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click >_______________________________________________ >Webmacro-user mailing list >Web...@li... >https://lists.sourceforge.net/lists/listinfo/webmacro-user > > > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Lane S. <la...@op...> - 2004-05-24 13:57:04
|
Hi Lars, For the application you describe below, typically you will have a nested set of caches for the output. Capturing the output from an evaluation is pretty easy: String value = wmCache.getValue(webContext) if (value == null) { value = template.evaluate(); wmCache.put(webContext, value); } The above is an outline; there are many other factors to consider such as the session and so forth (is the content evaluated differently for different users, etc, etc, etc). Let me know if this helps. -Lane Lars George wrote: > Hi Lane, > > With that caching provider, how would you cache a separate piece of > content, which is part of the overall page. I assumed providers are > for resources, like templates, which means the whole template is > cached. Also, where is the distinction between caching the parsed > content and caching the actual output. See, I do not want to cache the > query results but use them to create the content and cache that instead. > > I trust you meant that somehow but I am not sure about it. Also, would > you be able to tell me which classes are involved? > > Thanks, > Lars > > > Lane Sharman wrote: > >> Hi Lars, >> >> Caching has been discussed a lot and there is a caching provider >> interface so you can write your own caching implementation. (As I >> have done). >> >> To cache individual objects, you can use a global service model to >> cache individual templates (eg, connection.wmt, statements.wmt, etc.) >> and objects (queryResultReference, queryResultDomain, >> queryResultTransaction, etc). With this kind of a model, you cache >> both the template elements and the results according to memory and >> invalidation events. >> >> I have done all of the above for http://www.opendoors.com >> >> Good luck. >> >> Kindest, >> >> lane >> > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle > 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > Webmacro-user mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-user > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Brian G. <br...@qu...> - 2004-05-24 13:28:54
|
You've addressed half of Lars' question -- the caching infrastructure -- but not the other half -- the integration of caching into the template language. The approach taken by OSCache is quite cool, in that allows JSP writers to specify the interaction of caching and content quite nicely. > Caching has been discussed a lot and there is a caching provider > interface so you can write your own caching implementation. (As I have > done). > > To cache individual objects, you can use a global service model to cache > individual templates (eg, connection.wmt, statements.wmt, etc.) and > objects (queryResultReference, queryResultDomain, > queryResultTransaction, etc). With this kind of a model, you cache both > the template elements and the results according to memory and > invalidation events. |
From: Lars G. <la...@wo...> - 2004-05-24 07:13:37
|
Hi Lane, With that caching provider, how would you cache a separate piece of content, which is part of the overall page. I assumed providers are for resources, like templates, which means the whole template is cached. Also, where is the distinction between caching the parsed content and caching the actual output. See, I do not want to cache the query results but use them to create the content and cache that instead. I trust you meant that somehow but I am not sure about it. Also, would you be able to tell me which classes are involved? Thanks, Lars Lane Sharman wrote: > Hi Lars, > > Caching has been discussed a lot and there is a caching provider > interface so you can write your own caching implementation. (As I have > done). > > To cache individual objects, you can use a global service model to cache > individual templates (eg, connection.wmt, statements.wmt, etc.) and > objects (queryResultReference, queryResultDomain, > queryResultTransaction, etc). With this kind of a model, you cache both > the template elements and the results according to memory and > invalidation events. > > I have done all of the above for http://www.opendoors.com > > Good luck. > > Kindest, > > lane > |
From: Lane S. <la...@op...> - 2004-05-24 06:10:16
|
Hi Lars, Caching has been discussed a lot and there is a caching provider interface so you can write your own caching implementation. (As I have done). To cache individual objects, you can use a global service model to cache individual templates (eg, connection.wmt, statements.wmt, etc.) and objects (queryResultReference, queryResultDomain, queryResultTransaction, etc). With this kind of a model, you cache both the template elements and the results according to memory and invalidation events. I have done all of the above for http://www.opendoors.com Good luck. Kindest, lane Lars George wrote: > Hi, > > I had a look at OSCache the other day and noticed their Cache Tag > support which allows you to wrap a piece of code in a JSP and have it > cached for a configurable ammount of time: > > http://www.opensymphony.com/oscache/tags.html > > Well, I thought, wouldn't that be a cool feature in WebMacro if we > could cache a evaluated piece for a certain amount of time? There are > a couple of ways to do it of course and even the caching would need to > be implemented somehow, but I think it cannot be too difficult and > before having a go at it I thought what you guys think of it. > > One option would be to specify a Cache Interface class with the > necessary functionality and then implement it as required. For > instance one could use a special proxy/wrapper class to wrap OSCache > into the infrastructure. The classname for the proxy/wrapper class and > basic settings could be specified in the WebMacro.properties file. > > Then the Eval directive could be enhanced to handle the cache support, > eg. > > #eval $listCart using { "cart": $myCart } cache { "timeout": 600, > "scope": "session" ... } > > using similar parameters as seen above in the OSCache cache tag. > > Then all the Eval directive would have to do is check if the cache > params are given and a cache proxy class is specified in the settings > file and then get the previously evaluated content from the cache or > store it there. > > Of course, if the WebMacro internal cache is already prepared to > handle this sort of extra work, then even better but since I started > with OSCache and know that they have all that "scope" stuff already > implemented, then why doing it again. > > Maybe there is even another way to cache pieces of evaluated template > using something like the block code, eg. > > #cache { "timeout": ... } #begin > > normal template code here > > #end > > But since I am not fully aware of which is the easier implementation > of the two I would love to hear what you guys suggest. > > Why all this effort? Well, I started "poluting" the code in a lot of > places to cache for instance database records that hardly change so > that next time the WebMacro tool which fills the template is called it > uses the cached information instead of hitting the database again. It > is an obvious choice because it gives the front-end page generator a > choice to get fresh or cached data where ever needed. When that > happens auto-magically in the backend then there is no control from > the presentation layer and the only choice to solve this is to add > extra params to the custom WebMacro tool calls which allows to specify > this. > > I thnk these are more than enough reasons to do it. ;-) > > Let me know what you think. > > Cheers, > Lars > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle > 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > Webmacro-user mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webmacro-user > -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |
From: Lars G. <la...@wo...> - 2004-05-24 04:09:09
|
Hi, I had a look at OSCache the other day and noticed their Cache Tag support which allows you to wrap a piece of code in a JSP and have it cached for a configurable ammount of time: http://www.opensymphony.com/oscache/tags.html Well, I thought, wouldn't that be a cool feature in WebMacro if we could cache a evaluated piece for a certain amount of time? There are a couple of ways to do it of course and even the caching would need to be implemented somehow, but I think it cannot be too difficult and before having a go at it I thought what you guys think of it. One option would be to specify a Cache Interface class with the necessary functionality and then implement it as required. For instance one could use a special proxy/wrapper class to wrap OSCache into the infrastructure. The classname for the proxy/wrapper class and basic settings could be specified in the WebMacro.properties file. Then the Eval directive could be enhanced to handle the cache support, eg. #eval $listCart using { "cart": $myCart } cache { "timeout": 600, "scope": "session" ... } using similar parameters as seen above in the OSCache cache tag. Then all the Eval directive would have to do is check if the cache params are given and a cache proxy class is specified in the settings file and then get the previously evaluated content from the cache or store it there. Of course, if the WebMacro internal cache is already prepared to handle this sort of extra work, then even better but since I started with OSCache and know that they have all that "scope" stuff already implemented, then why doing it again. Maybe there is even another way to cache pieces of evaluated template using something like the block code, eg. #cache { "timeout": ... } #begin normal template code here #end But since I am not fully aware of which is the easier implementation of the two I would love to hear what you guys suggest. Why all this effort? Well, I started "poluting" the code in a lot of places to cache for instance database records that hardly change so that next time the WebMacro tool which fills the template is called it uses the cached information instead of hitting the database again. It is an obvious choice because it gives the front-end page generator a choice to get fresh or cached data where ever needed. When that happens auto-magically in the backend then there is no control from the presentation layer and the only choice to solve this is to add extra params to the custom WebMacro tool calls which allows to specify this. I thnk these are more than enough reasons to do it. ;-) Let me know what you think. Cheers, Lars |
From: Lane S. <la...@op...> - 2004-05-23 22:51:57
|
Greetings, I am pleased to announce Release 3 of WebMacro Wiki. For those of you who are new to WebMacro Wiki, it is a powerful documentation platform allowing you to create and edit documentation on the web without knowing HTML. If you can create an email like the ones you write everyday, you can create and publish in a single step a WebMacro Wiki page for others to browse, share and edit. The Wiki documentation model on the Web is well-established in the software and open-source communities where there is a need to share, create, edit and publish documentation, process and know-how among a community, a corporation, or an industry. The purpose of this letter is to let you know that there is now a secure Wiki for the Web based on this documentation idiom. WebMacro Wiki is open-source under the APL license, meaning you can take the code and create a commercial product. In Release 3, unlike most Wiki's I know of, you get security, authorization, approveability, and remote administration. With these features, you can create small documentation zones (http://policy.personnel.mycompany.com) for a subject domain, outside or inside a firewall, available to a select group of users whom the administrator has the right to approve or not. These features are in addition to powerful audit features such as unlimited versions of a Web page document, content differencing from one page to the prior version, document preview, and moderated pages editable only by the moderators of the site. The combination of these features plus the ease-of-use of Wiki page creation and publishing place WebMacro Wiki in a class by itself (in my compiled universe :) ). Furthermore, WebMacro Wiki is easily extended for further documentation purposes by anyone with moderate Java programming skills. Using the links below, you can see how an entire knowledge space (the WebMacro Open Source Project) was documented on the web by a large community. Not a single FTP, SSH, WebDav, DreamWeaver, Flash or other thousand must-have tools are ever required with a WebMacro Wiki site. To see how easy it is to create a WM wiki page, register at the site below and create a page for yourself (you will be prompted on registration). Be sure to visit the hints page for formatting options. More work is in store for Release 3 versions to further enhance administration and manageability. http://webmacro.org and http://webmacro.org/WebMacroWiki for more information and to download the java source from sourceforge.net. Please reply to me if you would like your own WebMacro Wiki set up for evaluation in your organization. Many thanks to the contributions of the WebMacro development team and community. Without them, this release would not have been possible. Kindest regards, -- Lane Sharman Providing Private and SPAM-Free Email http://www.opendoors.com 858-755-2868 |