From commons-dev-returnsandra01@example.org Sun May 01 07:12:17 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 13634 invoked from network); 1 May 2005 07:12:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 07:12:14 -0000 Received: (qmail 80765 invoked by uid 500); 1 May 2005 07:13:35 -0000 Delivered-To: sandra01@example.org Received: (qmail 80729 invoked by uid 500); 1 May 2005 07:13:34 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 80715 invoked by uid 500); 1 May 2005 07:13:34 -0000 Received: (qmail 80710 invoked by uid 99); 1 May 2005 07:13:34 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.28) with SMTP; Sun, 01 May 2005 00:13:33 -0700 Received: (qmail 13621 invoked by uid 65534); 1 May 2005 07:12:07 -0000 Message-ID: <sandra01@example.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: svn commit: r165467 - /jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/ExtendedBaseRules.java Date: Sun, 01 May 2005 07:12:07 -0000 To: sandra01@example.org From: sandra01@example.org X-Mailer: svnmailer-1.0.0-dev X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: skitching Date: Sun May 1 00:12:05 2005 New Revision: 165467 URL: http://svn.apache.org/viewcvs?rev=3D165467&view=3Drev Log: Javadoc changes only: modified to improve readability. Modified: jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/diges= ter/ExtendedBaseRules.java Modified: jakarta/commons/proper/digester/trunk/src/java/org/apache/commons= /digester/ExtendedBaseRules.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/trunk/sr= c/java/org/apache/commons/digester/ExtendedBaseRules.java?rev=3D165467&r1= =3D165466&r2=3D165467&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/diges= ter/ExtendedBaseRules.java (original) +++ jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/diges= ter/ExtendedBaseRules.java Sun May 1 00:12:05 2005 @@ -39,69 +39,100 @@ * * <h4>When should you use this rather than the original?</h4> * - * <p>These rules are complex and slower but offer more functionality. - * The <code>RulesBase</code> matching set allows interaction between patt= erns. - * This allows sophisticated matching schema to be created - * but it also means that it can be hard to create and debug mappings - * for complex schema. - * This extension introduces <em>universal</em> versions of these patterns - * that always act independently.</p> - * - * <p>Another three kinds of matching pattern are also introduced. - * The parent matchs allow common method to be easily called for children. - * The wildcard match allows rules to be specified for all elements.</p> + * <p> + * This pattern-matching engine is complex and slower than the basic + * default RulesBase class, but offers more functionality: + * <ul> + * <li>Universal patterns allow patterns to be specified which will match + * regardless of whether there are "better matching" patterns available.<= /li> + * <li>Parent-match patterns (eg "a/b/?") allow matching for all direct + * children of a specified element.</li> + * <li>Ancestor-match patterns (eg "a/b/*") allow matching all elements + * nested within a specified element to any nesting depth.</li> + * <li>Completely-wild patterns ("*" or "!*") allow matching all elements.= </li> + * </ul> + * </p> + * + * <h4>Universal Match Patterns</h4> + *=20 + * <p>The default RulesBase pattern-matching engine always attempts to find + * the "best matching pattern", and will ignore rules associated with other + * patterns that match but are not "as good". As an example, if the pattern + * "a/b/c" is associated with rules 1 and 2, and "*&#47;c" is associated w= ith + * rules 3 and 4 then element "a/b/c" will cause only rules 1 and 2 to exe= cute. + * Rules 3 and 4 do have matching patterns, but because the patterns are s= horter + * and include wildcard characters they are regarded as being "not as good= " as + * a direct match. In general, exact patterns are better than wildcard pat= terns, + * and among multiple patterns with wildcards, the longest is preferred. + * See the RulesBase class for more information.</p> + * + * <p>This feature of preferring "better" patterns can be a powerful tool. + * However it also means that patterns can interact in unexpected ways.</p> + * + * <p>When using the ExtendedBaseRules, any pattern prefixed with '!' bypa= sses=20 + * the "best match" feature. Even if there is an exact match or a longer=20 + * wildcard match, patterns prefixed by '!' will still be tested to see if=20 + * they match, and if so their associated Rule objects will be included in + * the set of rules to be executed in the normal manner.</p> + * + * <ul> + * <li>Pattern <code>"!*&#47;a/b"</code> matches whenever an 'b' element + * is inside an 'a'.</li> + * <li>Pattern <code>"!a/b/?"</code> matches any child of a parent + * matching <code>"a/b"</code> (see "Parent Match Patterns").</li> + * <li>Pattern <code>"!*&#47;a/b/?"</code> matches any child of a parent + * matching <code>"!*&#47;a/b"</code> (see "Parent Match Patterns").</= li> + * <li>Pattern <code>"!a/b/*"</code> matches any element whose path + * starts with "a" then "b" (see "Ancestor Match Patterns").</li> + * <li>Pattern <code>"!*&#47;a/b/*"</code> matches any elements whose path + * contains 'a/b' (see "Ancestor Match Patterns").</li> + * </ul> + * + * <h4>Parent Match Patterns</h4> * - * <h4>The additional matching patterns:</h4> + * <p> + * These will match direct child elements of a particular parent element. + * <ul> + * <li> + * <code>"a/b/c/?"</code> matches any child whose parent matches + * <code>"a/b/c"</code>. Exact parent rules take precedence over Ancestor + * Match patterns. + * </li> + * <li> + * <code>"*&#47;a/b/c/?"</code> matches any child whose parent matches + * <code>"*&#47;a/b/c"</code>. The longest matching still applies to par= ent + * matches but the length excludes the '?', which effectively means + * that standard wildcard matches with the same level of depth are + * chosen in preference. + * </li> + * </ul> + * </p> + * + * <h4>Ancestor Match Patterns</h4> * + * <p> + * These will match elements whose parentage includes a particular sequence + * of elements. * <ul> - * <li><em>Parent Match </em> - Will match child elements of a particular - * kind of parent. This is useful if a parent has a particular method - * to call. - * <ul> - * <li><code>"a/b/c/?"</code> matches any child whose parent matches - * <code>"a/b/c"</code>. Exact parent rules take precedence over - * standard wildcard tail endings.</li> - * <li><code>"*&#47;a/b/c/?"</code> matches any child whose parent mat= ches - * "*&#47;a/b/c"</code>. The longest matching still applies to pa= rent - * matches but the length excludes the '?', which effectively means - * that standard wildcard matches with the same level of depth are - * chosen in preference.</li> - * </ul></li> - * <li><em>Ancester Match</em> - Will match elements who parentage include= s=20 - * a particular sequence of elements. - * <ul> - * <li><code>"a/b/*"</code> matches any element whose parentage path = starts with - * 'a' then 'b'. Exact parent and parent match rules take precedence. = The longest - * ancester match will take precedence.</li> - * <li><code>"*&#47;a/b/*"</code> matches any elements whose parentage pat= h contains - * an element 'a' followed by an element 'b'. The longest matchi= ng still applies - * but the length excludes the '*' at the end.</li> - * </ul> + * <li> + * <code>"a/b/*"</code> matches any element whose path starts with + * 'a' then 'b'. Exact parent and parent match rules take precedence.=20 + * The longest ancestor match will take precedence. + * </li> + * <li> + * <code>"*&#47;a/b/*"</code> matches any elements whose path contains + * an element 'a' followed by an element 'b'. The longest matching still=20 + * applies but the length excludes the '*' at the end. * </li> - * <li><em>Universal Wildcard Match</em> - Any pattern prefixed with '!' - * bypasses the longest matching rule. Even if there is an exact match - * or a longer wildcard match, patterns prefixed by '!' will still be - * tested to see if they match. This can be used for example to speci= fy - * universal construction rules. - * <ul> - * <li>Pattern <code>"!*&#47;a/b"</code> matches whenever an 'b' eleme= nt - * is inside an 'a'.</li> - * <li>Pattern <code>"!a/b/?"</code> matches any child of a parent - * matching <code>"a/b"</code>.</li> - * <li>Pattern <code>"!*&#47;a/b/?"</code> matches any child of a pare= nt - * matching <code>"!*&#47;a/b"</code></li> - * <li>Pattern <code>"!a/b/*"</code> matches any element whose parenta= ge path starts with - * "a" then "b".</li> - * <li>Pattern <code>"!*&#47;a/b/*"</code> matches any elements whose = parentage path contains - * 'a/b'</li> - * </ul></li> - * <li><em>Wild Match</em> - * <ul> - * <li>Pattern <code>"*"</code> matches every pattern that isn't match= ed - * by any other basic rule.</li> - * <li>Pattern <code>"!*"</code> matches every pattern.</li> - * </ul></li> * </ul> + * </p> + * + * <h4>Completely Wild Patterns</h4> + * + * <p>Pattern <code>"*"</code> matches every pattern that isn't matched by + * any other basic rule.</p> + * + * <p>Pattern <code>"!*"</code> matches every pattern.</p> * * <h4>Using The Extended Rules</h4> * --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 09:44:19 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 55533 invoked from network); 1 May 2005 09:44:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 09:44:18 -0000 Received: (qmail 88481 invoked by uid 500); 1 May 2005 09:45:41 -0000 Delivered-To: sandra01@example.org Received: (qmail 88369 invoked by uid 500); 1 May 2005 09:45:40 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 88356 invoked by uid 99); 1 May 2005 09:45:40 -0000 X-ASF-Spam-Status: No, hits=-10.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from Unknown (HELO [83.161.120.155]) (83.161.120.155) by apache.org (qpsmtpd/0.28) with ESMTP; Sun, 01 May 2005 02:45:40 -0700 Date: Sun, 01 May 2005 02:43:41 PDT From: commons-jelly-tags-xml development <sandra01@example.org> To: sandra01@example.org Subject: [GUMP@brutus]: Project commons-jelly-tags-xml (in module commons-jelly) failed X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at sandra01@example.org. Project commons-jelly-tags-xml has an issue affecting its community integration. This issue affects 12 projects, and has been outstanding for 9 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-jelly-tags-define : Commons Jelly - commons-jelly-tags-html : Commons Jelly - commons-jelly-tags-http : Commons Jelly - commons-jelly-tags-jaxme : Commons Jelly - commons-jelly-tags-jetty : Commons Jelly - commons-jelly-tags-jface : Commons Jelly - commons-jelly-tags-jsl : Commons Jelly - commons-jelly-tags-swing : Commons Jelly - commons-jelly-tags-xml : Commons Jelly - commons-jelly-tags-xmlunit : Commons Jelly - maven : Project Management Tools - maven-bootstrap : Project Management Tools Full details are available at: http://brutus.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Sole output [commons-jelly-tags-xml-01052005.jar] identifier set to project name -DEBUG- Dependency on xml-xerces exists, no need to add for property maven.jar.xerces. -DEBUG- (Gump generated) Maven Properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/build.properties -INFO- Failed with reason build failed -DEBUG- Maven POM in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.xml -DEBUG- Maven project properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.properties -INFO- Project Reports in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-reports -INFO- Failed to extract fallback artifacts from Gump Repository The following work was performed: http://brutus.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/gump_work/build_commons-jelly_commons-jelly-tags-xml.html Work Name: build_commons-jelly_commons-jelly-tags-xml (Type: Build) Work ended in a state of : Failed Elapsed: 14 secs Command Line: maven --offline jar [Working Directory: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml] CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-01052005.jar:/usr/local/gump/public/workspace/commons-jelly/target/commons-jelly-01052005.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/junit/target/commons-jelly-tags-junit-01052005.jar:/usr/local/gump/public/workspace/jakarta-commons/jexl/dist/commons-jexl-01052005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/public/workspace/jaxen/target/jaxen-01052005.jar --------------------------------------------- [mkdir] Created dir: /home/gump/workspaces2/public/workspace/commons-jelly/jelly-tags/xml/target/classes java:compile: [echo] Compiling to /home/gump/workspaces2/public/workspace/commons-jelly/jelly-tags/xml/target/classes [echo] ========================================================== NOTE: Targetting JVM 1.4, classes will not run on earlier JVMs ========================================================== [javac] Compiling 16 source files to /home/gump/workspaces2/public/workspace/commons-jelly/jelly-tags/xml/target/classes java:jar-resources: test:prepare-filesystem: [mkdir] Created dir: /home/gump/workspaces2/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes [mkdir] Created dir: /home/gump/workspaces2/public/workspace/commons-jelly/jelly-tags/xml/target/test-reports test:test-resources: Copying 36 files to /home/gump/workspaces2/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes test:compile: [javac] Compiling 4 source files to /home/gump/workspaces2/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes test:test: [junit] Running org.apache.commons.jelly.tags.xml.TestImport [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.993 sec [junit] Running org.apache.commons.jelly.tags.xml.TestJelly [junit] <foo>some text [junit] exists = true, readable = true, class=java.io.File [junit] [junit] Tests run: 15, Failures: 0, Errors: 13, Time elapsed: 0.562 sec [junit] [ERROR] TEST org.apache.commons.jelly.tags.xml.TestJelly FAILED [junit] Running org.apache.commons.jelly.tags.xml.TestParser [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.65 sec [junit] Running org.apache.commons.jelly.tags.xml.TestXMLTags [junit] Tests run: 12, Failures: 1, Errors: 9, Time elapsed: 1.96 sec [junit] [ERROR] TEST org.apache.commons.jelly.tags.xml.TestXMLTags FAILED BUILD FAILED File...... /home/gump/.maven/cache/maven-test-plugin-1.6.2/plugin.jelly Element... fail Line...... 181 Column.... 54 There were test failures. Total time: 13 seconds Finished at: Sun May 01 02:43:39 PDT 2005 --------------------------------------------- To subscribe to this information via syndicated feeds: - RSS: http://brutus.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/rss.xml - Atom: http://brutus.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/atom.xml ============================== Gump Tracking Only === Produced by Gump version 2.2. Gump Run 25000001052005, brutus:brutus-public:25000001052005 Gump E-mail Identifier (unique within run) #21. -- Apache Gump http://gump.apache.org/ [Instance: brutus] --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 10:20:41 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 59143 invoked from network); 1 May 2005 10:20:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 10:20:40 -0000 Received: (qmail 22705 invoked by uid 500); 1 May 2005 10:22:02 -0000 Delivered-To: sandra01@example.org Received: (qmail 22672 invoked by uid 500); 1 May 2005 10:22:01 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 22656 invoked by uid 99); 1 May 2005 10:22:01 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: domain of sandra01@example.org designates 83.161.120.155 as permitted sender) Received: from smtp-out6.blueyonder.co.uk (HELO smtp-out6.blueyonder.co.uk) (83.161.120.155) by apache.org (qpsmtpd/0.28) with ESMTP; Sun, 01 May 2005 03:22:01 -0700 Received: from knossos.elmet ([83.161.120.155]) by smtp-out6.blueyonder.co.uk with Microsoft SMTPSVC(5.0.2195.6713); Sun, 1 May 2005 11:21:13 +0100 Subject: Re: [logging] tech.xml - child-first classloading not considered harmful From: robert burrell donkin <sandra01@example.org> To: sandra01@example.org In-Reply-To: <1114772543.4400.44.camel@blackbox> References: <1114772543.4400.44.camel@blackbox> Content-Type: text/plain Date: Sun, 01 May 2005 11:28:16 +0100 Message-Id: <sandra01@example.org> Mime-Version: 1.0 X-Mailer: Evolution 2.0.1-1mdk Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 01 May 2005 10:21:13.0554 (UTC) FILETIME=[80797B20:01C54E37] X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On Fri, 2005-04-29 at 23:02 +1200, Simon Kitching wrote: > Hi All, > > The following paragraph is from the "xdocs/tech.xml" document: > > <quote> > Parent-first loading has been the standard mechanism in the JDK > class loader, at least since Java 1.2 introduced hierarchical > classloaders. > > The primary reason for this is safety -- parent-first > makes it impossible for malicious code to trick the JVM into > replacing a core class (say, <code>java.security.SecurityManager</code>) > with a class of the same name loaded from a child classloader. > </quote> > > I believe this to be incorrect. I don't believe that such substitution > leads to any kind of security issue at all, and think this paragraph > should be removed from the document. > > Can anyone show any real security issues resulting from child-first > loading? i would suggest that the operative word here is real. it is very possible for sun to have chosen to recommend parent-first as the default for the reason given whilst at the same time the threat not being particularly credible in real life. a malicious classloader could perform all manner of nasty tricks. in this case, it doesn't really matter whether this classloader pretends to be parent or child first. not sure how credible a threat this is. not sure how an attacker could manage to insert a malicious classloader. (maybe other people with more knowledge would like to jump in here...) consider (instead) a badly written classloader. the threat to the system from a badly written parent-first classloader is much less than that from a badly written child-first classloader. bugs in the selection of which classes must be delegated (for security reasons) may allow malicious code to replace crucial security classes. whether this is a credible threat in real life is another matter. opinions? - robert --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 10:50:09 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 63043 invoked from network); 1 May 2005 10:50:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 10:50:08 -0000 Received: (qmail 48020 invoked by uid 500); 1 May 2005 10:51:29 -0000 Delivered-To: sandra01@example.org Received: (qmail 47953 invoked by uid 500); 1 May 2005 10:51:28 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 47937 invoked by uid 99); 1 May 2005 10:51:28 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from smtp-out6.blueyonder.co.uk (HELO smtp-out6.blueyonder.co.uk) (83.161.120.155) by apache.org (qpsmtpd/0.28) with ESMTP; Sun, 01 May 2005 03:51:28 -0700 Received: from knossos.elmet ([83.161.120.155]) by smtp-out6.blueyonder.co.uk with Microsoft SMTPSVC(5.0.2195.6713); Sun, 1 May 2005 11:50:40 +0100 Subject: Re: [logging] requirements and static binding From: robert burrell donkin <sandra01@example.org> To: sandra01@example.org In-Reply-To: <1114778106.4400.102.camel@blackbox> References: <1114778106.4400.102.camel@blackbox> Content-Type: text/plain Date: Sun, 01 May 2005 11:57:43 +0100 Message-Id: <sandra01@example.org> Mime-Version: 1.0 X-Mailer: Evolution 2.0.1-1mdk Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 01 May 2005 10:50:40.0804 (UTC) FILETIME=[9DD66E40:01C54E3B] X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On Sat, 2005-04-30 at 00:35 +1200, Simon Kitching wrote: <snip> > Analysis of the effectiveness of static in the demonstration scenarios: > > 1-4: static fails, but that's expected. When using the static approach, > you simply must deploy the static adaptor and the target library > via the same classloader. I don't see that this causes any > conflict with the requirements listed above. this is the whole point :) with the compile time static approach you have to deploy the libraries correctly. that's the same with dynamic classloading. both static and dynamic approaches work when they are deployed in perfect conditions. the real question is how many of the difficult conditions are also covered. static binding (in theory) covers far fewer of the possible imperfect permutations than dynamic binding could. given an impl jar, it would be possible for dynamic binding to (in theory) cover every case with conventional context classloaders which static binding can and some that static binding cannot. it's all a big circle but hopefully now after this long journey, things can be seen more clearly. we have reached again the original point of departure and disagreement: does having to change your deployment in some cases (by adding log4j to the classloader containing the JCL implementation) count as a fatal flaw or is it simply a pragmatic way of dealing with a difficult corner case? i like static binding. it's clean and easier to understand than dynamic. for child-first classloaders, the deployment configurations required are much easier. but in a parent-first environment, difficult configurations are required to allow static binding to vary on a per application basis in a container. each approach has different strengths and weaknesses. - robert --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 13:09:47 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 91125 invoked from network); 1 May 2005 13:09:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 13:09:45 -0000 Received: (qmail 76095 invoked by uid 500); 1 May 2005 13:11:02 -0000 Delivered-To: sandra01@example.org Received: (qmail 75880 invoked by uid 500); 1 May 2005 13:11:00 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 75863 invoked by uid 99); 1 May 2005 13:11:00 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from mail-07.iinet.net.au (HELO mail.iinet.net.au) (83.161.120.155) by apache.org (qpsmtpd/0.28) with SMTP; Sun, 01 May 2005 06:11:00 -0700 Received: (qmail 8612 invoked from network); 1 May 2005 13:09:06 -0000 Received: from unknown (HELO ?83.161.120.155?) (83.161.120.155) by mail.iinet.net.au with SMTP; 1 May 2005 13:09:06 -0000 Message-ID: <sandra01@example.org> Date: Sun, 01 May 2005 23:09:05 +1000 From: Brett Porter <sandra01@example.org> User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jakarta Commons Developers List <sandra01@example.org> Subject: [jelly] SOLVED: Maven issue with Hans memory leak patch X-Enigmail-Version: 83.161.120.155 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I've solved this problem. One of the jelly tags was relying on a new instance being created, but the instance is now being reused. Note that the tag is the same call from the same script, so I assume that this is valid, so I have made the tag not be stateful and it fixed the Maven problem. Does anyone know if this is correct behaviour? I am committing his patch. If the behaviour is not correct, I expect it can easily be rolled back or some additional fix be made. Cheers, Brett -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (Cygwin) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCdNTxOb5RoQhMkRMRAszTAJ44oyjf/s9go6igGYFtUP6wyldzBwCbBV3P BRSvDFmK2EyqTX/JH+Zfci8= =LiXC -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 14:06:02 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 14732 invoked from network); 1 May 2005 14:06:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 14:06:01 -0000 Received: (qmail 33773 invoked by uid 500); 1 May 2005 14:07:22 -0000 Delivered-To: sandra01@example.org Received: (qmail 33695 invoked by uid 500); 1 May 2005 14:07:21 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 33679 invoked by uid 500); 1 May 2005 14:07:21 -0000 Received: (qmail 33674 invoked by uid 99); 1 May 2005 14:07:21 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.28) with SMTP; Sun, 01 May 2005 07:07:21 -0700 Received: (qmail 14653 invoked by uid 65534); 1 May 2005 14:05:55 -0000 Message-ID: <sandra01@example.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: svn commit: r165507 - in /jakarta/commons/proper/jelly/trunk: src/java/org/apache/commons/jelly/JellyContext.java src/java/org/apache/commons/jelly/impl/TagScript.java src/test/org/apache/commons/jelly/core/BaseMemoryLeakTest.java xdocs/changes.xml Date: Sun, 01 May 2005 14:05:54 -0000 To: sandra01@example.org From: sandra01@example.org X-Mailer: svnmailer-1.0.0-dev X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: brett Date: Sun May 1 07:05:54 2005 New Revision: 165507 URL: http://svn.apache.org/viewcvs?rev=3D165507&view=3Drev Log: Submitted By: Hans Glide Simplify tag caching Modified: jakarta/commons/proper/jelly/trunk/src/java/org/apache/commons/jelly/Je= llyContext.java jakarta/commons/proper/jelly/trunk/src/java/org/apache/commons/jelly/im= pl/TagScript.java jakarta/commons/proper/jelly/trunk/src/test/org/apache/commons/jelly/co= re/BaseMemoryLeakTest.java jakarta/commons/proper/jelly/trunk/xdocs/changes.xml Modified: jakarta/commons/proper/jelly/trunk/src/java/org/apache/commons/je= lly/JellyContext.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jelly/trunk/src/j= ava/org/apache/commons/jelly/JellyContext.java?rev=3D165507&r1=3D165506&r2= =3D165507&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- jakarta/commons/proper/jelly/trunk/src/java/org/apache/commons/jelly/Je= llyContext.java (original) +++ jakarta/commons/proper/jelly/trunk/src/java/org/apache/commons/jelly/Je= llyContext.java Sun May 1 07:05:54 2005 @@ -92,20 +92,6 @@ /** Should we export tag libraries to our parents context */ private boolean exportLibraries =3D true; =20 - /** Maps a Thread to its local Script data cache. It's=20 - * like a ThreadLocal, but it reclaims memory better - * when the JellyCointext goes out of scope. - * This isn't a ThreadLocal because of the typical usage scenario of - * JellyContext. ThreadLocal is meant to be sued as a static variable, - * we were using it as a local variable. - * {@link #setThreadLocalScriptData(Script,Object)} - */ - private Map threadLocalScriptData =3D Collections.synchronizedMap(new = WeakHashMap()); - // THINKME: Script objects are like Object (for equals and hashCode) I= think. - // It should be asy to optimize hash-map distribution, e.g. by - // shifting the hashcode return value (presuming Object.hashc= ode() - // is something like an address) - /** * Create a new context with the currentURL set to the rootURL */ @@ -390,91 +376,18 @@ return createChildContext(); } =20 - - /** Gets the Script data item that may have previously been stored - * by the script, in this context, for the current thread. - * =20 - * @return the tag associated with the current context and thread - */ - public Object getThreadScriptData(Script script) { - if( script =3D=3D null ) - return null; - Tag tag =3D (Tag) getThreadScriptDataMap().get(script); - if( tag =3D=3D null && getParent() !=3D null) { - return getParent().getThreadScriptData(script); - } else { - return tag; - } - } -=09 - /** Gets a per-thread (thread local) Map of data for use by - * Scripts. - * @return the thread local Map of Script data */ - public Map getThreadScriptDataMap() { - Map rv; - Thread t =3D Thread.currentThread(); - Map data =3D (Map) threadLocalScriptData.get(t); - if (data =3D=3D null) { - rv =3D new HashMap(); - threadLocalScriptData.put(t, rv); - } else { - rv =3D data; - } - return rv; - } - =20 - /** Stores an object that lasts for the life of this context - * and is local to the current thread. This method is - * mainly intended to store Tag instances. However, any - * Script that wants to cache data can use this - * method. - */ - public void setThreadScriptData(Script script, Object data) { - getThreadScriptDataMap().put(script,data); - } - =20 - /** Clears variables set by Tags (basically, variables set in a Jelly = script) - * and data stored by {@link Script} instances. + /** Clears variables set by Tags. * @see #clearVariables() - * @see #clearThreadScriptData() - * @see #clearScriptData() */ public void clear() { - clearScriptData(); clearVariables(); } =20 /** Clears variables set by Tags (variables set while running a Jelly = script) * @see #clear() - * @see #clearThreadScriptData() - * @see #clearScriptData() */ - public void clearVariables() { + protected void clearVariables() { variables.clear(); - } - =20 - /** Clears data cached by {@link Script} instances,=20 - * for this context, <strong>for the current thread</strong>. - * The data cleared could be cached Tag instances or other data - * saved by Script classes. - * @see #clear() - * @see #clearVariables() - * @see #clearScriptData() - */ - public void clearThreadScriptData() { - getThreadScriptDataMap().clear(); - } - =20 - /** Clears data cached by {@link Script} instances,=20 - * for this context, <strong>for all threads</strong>.=20 - * The data cleared could be cached Tag instances or other data - * saved by Script classes. - * @see #clear() - * @see #clearThreadScriptData() - * @see #clearVariables() - */ - public void clearScriptData() { - threadLocalScriptData.clear(); } =20 /** Registers the given tag library against the given namespace URI. Modified: jakarta/commons/proper/jelly/trunk/src/java/org/apache/commons/je= lly/impl/TagScript.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jelly/trunk/src/j= ava/org/apache/commons/jelly/impl/TagScript.java?rev=3D165507&r1=3D165506&r= 2=3D165507&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- jakarta/commons/proper/jelly/trunk/src/java/org/apache/commons/jelly/im= pl/TagScript.java (original) +++ jakarta/commons/proper/jelly/trunk/src/java/org/apache/commons/jelly/im= pl/TagScript.java Sun May 1 07:05:54 2005 @@ -19,9 +19,11 @@ import java.lang.reflect.InvocationTargetException; import java.net.MalformedURLException; import java.net.URL; +import java.util.Collections; import java.util.Hashtable; import java.util.Iterator; import java.util.Map; +import java.util.WeakHashMap; =20 import org.apache.commons.beanutils.ConvertingWrapDynaBean; import org.apache.commons.beanutils.ConvertUtils; @@ -104,6 +106,10 @@ =20 /** the url of the script when parsed */ private URL scriptURL =3D null; + =20 + /** A synchronized WeakHashMap from the current Thread (key) to a Tag = object (value). + */ + private Map threadLocalTagCache =3D Collections.synchronizedMap(new We= akHashMap()); =20 /** * @return a new TagScript based on whether @@ -286,11 +292,12 @@ * @return the tag to be evaluated, creating it lazily if required. */ public Tag getTag(JellyContext context) throws JellyException { - Tag tag =3D (Tag) context.getThreadScriptData(this); + Thread t =3D Thread.currentThread(); + Tag tag =3D (Tag) threadLocalTagCache.get(t); if ( tag =3D=3D null ) { tag =3D createTag(); if ( tag !=3D null ) { - context.setThreadScriptData(this,tag); + threadLocalTagCache.put(t,tag); configureTag(tag,context); } } @@ -514,7 +521,8 @@ * when a StaticTag is switched with a DynamicTag */ protected void setTag(Tag tag, JellyContext context) { - context.setThreadScriptData(this,tag); + Thread t =3D Thread.currentThread(); + threadLocalTagCache.put(t,tag); } =20 /** Modified: jakarta/commons/proper/jelly/trunk/src/test/org/apache/commons/je= lly/core/BaseMemoryLeakTest.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jelly/trunk/src/t= est/org/apache/commons/jelly/core/BaseMemoryLeakTest.java?rev=3D165507&r1= =3D165506&r2=3D165507&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- jakarta/commons/proper/jelly/trunk/src/test/org/apache/commons/jelly/co= re/BaseMemoryLeakTest.java (original) +++ jakarta/commons/proper/jelly/trunk/src/test/org/apache/commons/jelly/co= re/BaseMemoryLeakTest.java Sun May 1 07:05:54 2005 @@ -130,7 +130,6 @@ rt.runFinalization(); rt.gc(); long middle =3D rt.totalMemory() - rt.freeMemory(); - log.info("TagHolderMap has " + jc.getThreadScriptDataMap()= .size() + " entries."); log.info("Memory test after " + i + " runs: " + (middle - start)); } Modified: jakarta/commons/proper/jelly/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jelly/trunk/xdocs= /changes.xml?rev=3D165507&r1=3D165506&r2=3D165507&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- jakarta/commons/proper/jelly/trunk/xdocs/changes.xml (original) +++ jakarta/commons/proper/jelly/trunk/xdocs/changes.xml Sun May 1 07:05:5= 4 2005 @@ -25,6 +25,7 @@ </properties> <body> <release version=3D"1.0-RC2" date=3D"in CVS"> + <action dev=3D"brett" type=3D"fix" due-to=3D"Hans Gilde">Improve tag= caching to improve memory consumption</action> <action dev=3D"dion" type=3D"fix" issue=3D"JELLY-196">SwitchTag can = not be reused if default encountered.</action> <action dev=3D"polx" type=3D"add" issue=3D"JELLY-191">FileTag now al= lows appending to the file.</action> <action dev=3D"polx" type=3D"fix" issue=3D"JELLY-85">Removed instanc= e-based ThreadLocal substituting a JellyContext-based tag-caching.</action> --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 17:15:13 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 41239 invoked from network); 1 May 2005 17:15:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 17:15:12 -0000 Received: (qmail 4108 invoked by uid 500); 1 May 2005 17:16:34 -0000 Delivered-To: sandra01@example.org Received: (qmail 3988 invoked by uid 500); 1 May 2005 17:16:33 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 3974 invoked by uid 99); 1 May 2005 17:16:33 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from postfix4-2.free.fr (HELO postfix4-2.free.fr) (83.161.120.155) by apache.org (qpsmtpd/0.28) with ESMTP; Sun, 01 May 2005 10:16:33 -0700 Received: from [83.161.120.155] (did75-9-82-229-148-13.fbx.proxad.net [83.161.120.155]) by postfix4-2.free.fr (Postfix) with ESMTP id 8BBD41B7F27 for <sandra01@example.org>; Sun, 1 May 2005 19:15:06 +0200 (CEST) Message-ID: <sandra01@example.org> Date: Sun, 01 May 2005 19:15:14 +0200 From: Emmanuel Bourg <sandra01@example.org> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041217 X-Accept-Language: fr, en-us, en MIME-Version: 1.0 To: Jakarta Commons Developers List <sandra01@example.org> Subject: Re: [configuration] XMLPropertiesConfiguration.load SAX todo References: <sandra01@example.org> In-Reply-To: <sandra01@example.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Hi Alistair, thank you for offering your help, feel free to submit your implementation on this list. We will review it and integrate it in the code if it works fine. Alternatively you can open an entry in Bugzilla and attach your changes there. Emmanuel Bourg Alistair Young wrote: > Hi folks, > I wonder if I could possibly submit a todo implementation for > org.apache.commons.configuration.XMLPropertiesConfiguration. > > I was looking at the XML part as we're thinking of using > commons-configuration in the Bodington VLE and saw a todo for converting > XMLPropertiesConfiguration.load() from Digester to SAX. > > I'd like to do the "include" todo as well if that's ok as it's a feature > we could use for the VLE. > > Should I send the modified source to the list? > > cheers, > > Alistair > > --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 17:36:50 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 44315 invoked from network); 1 May 2005 17:36:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 17:36:49 -0000 Received: (qmail 21547 invoked by uid 500); 1 May 2005 17:38:12 -0000 Delivered-To: sandra01@example.org Received: (qmail 21519 invoked by uid 500); 1 May 2005 17:38:11 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 21505 invoked by uid 99); 1 May 2005 17:38:11 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from dns.pace2020.com (HELO wahoo.pace2020.com) (83.161.120.155) by apache.org (qpsmtpd/0.28) with ESMTP; Sun, 01 May 2005 10:38:11 -0700 Received: from fotap.org ([83.161.120.155] helo=[83.161.120.155]) by wahoo.pace2020.com with asmtp (Exim 3.35 #1 (Debian)) id 1DSIN2-0003vD-00 for <sandra01@example.org>; Sun, 01 May 2005 13:36:44 -0400 Mime-Version: 1.0 (Apple Message framework v728) In-Reply-To: <sandra01@example.org> References: <sandra01@example.org> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <sandra01@example.org> Content-Transfer-Encoding: 7bit From: peter royal <sandra01@example.org> Subject: Re: [jelly] SOLVED: Maven issue with Hans memory leak patch Date: Sun, 1 May 2005 13:36:42 -0400 To: "Jakarta Commons Developers List" <sandra01@example.org> X-Mailer: Apple Mail (2.728) X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On May 1, 2005, at 9:09 AM, Brett Porter wrote: > I've solved this problem. One of the jelly tags was relying on a new > instance being created, but the instance is now being reused. Note > that > the tag is the same call from the same script, so I assume that > this is > valid, so I have made the tag not be stateful and it fixed the Maven > problem. > > Does anyone know if this is correct behaviour? Sounds correct to me :) -pete --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 18:15:44 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 99429 invoked from network); 1 May 2005 18:15:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 18:15:44 -0000 Received: (qmail 59654 invoked by uid 500); 1 May 2005 18:17:04 -0000 Delivered-To: sandra01@example.org Received: (qmail 59561 invoked by uid 500); 1 May 2005 18:17:04 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 59547 invoked by uid 99); 1 May 2005 18:17:03 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from damh.smo.uhi.ac.uk (HELO damh.smo.uhi.ac.uk) (83.161.120.155) by apache.org (qpsmtpd/0.28) with ESMTP; Sun, 01 May 2005 11:17:03 -0700 Received: from postlin.smo.uhi.ac.uk (localhost [83.161.120.155]) by damh.smo.uhi.ac.uk (Postfix) with SMTP id 11BCB9D5 for <sandra01@example.org>; Sun, 1 May 2005 19:15:35 +0100 (BST) Received: from webcacheb05a.cache.pol.co.uk ([83.161.120.155]) (proxying for 83.161.120.155) (SquirrelMail authenticated user alistair) by postlin.smo.uhi.ac.uk with HTTP; Sun, 1 May 2005 19:15:35 +0100 (BST) Message-ID: <sandra01@example.org> In-Reply-To: <sandra01@example.org> References: <sandra01@example.org> <sandra01@example.org> Date: Sun, 1 May 2005 19:15:35 +0100 (BST) Subject: Re: [configuration] XMLPropertiesConfiguration.load SAX todo From: "Alistair Young" <sandra01@example.org> To: "Jakarta Commons Developers List" <sandra01@example.org> Reply-To: sandra01@example.org User-Agent: SquirrelMail/1.4.1 MIME-Version: 1.0 Content-Type: multipart/mixed;boundary="----=_20050501191535_21708" X-Priority: 3 Importance: Normal X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N ------=_20050501191535_21708 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Thanks Emmanuel, I've attached a modifed XMLPropertiesConfiguration.java. I've just done the SAX todo. If it's up to scratch, I'd like to implement the includes todo as well, if that's ok, though I'll ask your opinion of my idea before doing anything. cheers, Alistair -- Alistair Young Senior Software Engineer UHI@Sabhal Mòr Ostaig Isle of Skye Scotland > Hi Alistair, thank you for offering your help, feel free to submit your > implementation on this list. We will review it and integrate it in the > code if it works fine. Alternatively you can open an entry in Bugzilla > and attach your changes there. > > Emmanuel Bourg > > > Alistair Young wrote: >> Hi folks, >> I wonder if I could possibly submit a todo implementation for >> org.apache.commons.configuration.XMLPropertiesConfiguration. >> >> I was looking at the XML part as we're thinking of using >> commons-configuration in the Bodington VLE and saw a todo for converting >> XMLPropertiesConfiguration.load() from Digester to SAX. >> >> I'd like to do the "include" todo as well if that's ok as it's a feature >> we could use for the VLE. >> >> Should I send the modified source to the list? >> >> cheers, >> >> Alistair >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: sandra01@example.org > For additional commands, e-mail: sandra01@example.org > > ------=_20050501191535_21708 Content-Type: text/plain; name="XMLPropertiesConfiguration.java" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="XMLPropertiesConfiguration.java" /* * Copyright 2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.configuration; import java.io.*; import java.net.URL; import java.util.Iterator; import java.util.List; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.xml.sax.*; import org.xml.sax.helpers.DefaultHandler; import javax.xml.parsers.SAXParserFactory; import javax.xml.parsers.SAXParser; /** * This configuration implements the XML properties format introduced in Java * 5.0, see http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html. * An XML properties file looks like this: * * <pre> * &lt;?xml version="1.0"?> * &lt;!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> * &lt;properties> * &lt;comment>Description of the property list&lt;/comment> * &lt;entry key="key1">value1&lt;/entry> * &lt;entry key="key2">value2&lt;/entry> * &lt;entry key="key3">value3&lt;/entry> * &lt;/properties> * &lt;/pre> * * The Java 5.0 runtime is not required to use this class. The default encoding * for this configuration format is UTF-8. Note that unlike * <code>PropertiesConfiguration</code>, <code>XMLPropertiesConfiguration</code> * does not support includes. * * @since 1.1 * * @author Emmanuel Bourg * @version $Revision: 155408 $, $Date: 2005-02-26 13:56:39 +0100 (Sa, 26 Feb 2005) $ */ public class XMLPropertiesConfiguration extends PropertiesConfiguration { /** * The default encoding (UTF-8 as specified by http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html) */ private static final String DEFAULT_ENCODING = "UTF-8"; // initialization block to set the encoding before loading the file in the constructors { setEncoding(DEFAULT_ENCODING); } /** * Creates an empty XMLPropertyConfiguration object which can be * used to synthesize a new Properties file by adding values and * then saving(). An object constructed by this C'tor can not be * tickled into loading included files because it cannot supply a * base for relative includes. */ public XMLPropertiesConfiguration() { super(); } /** * Creates and loads the xml properties from the specified file. * The specified file can contain "include" properties which then * are loaded and merged into the properties. * * @param fileName The name of the properties file to load. * @throws ConfigurationException Error while loading the properties file */ public XMLPropertiesConfiguration(String fileName) throws ConfigurationException { super(fileName); } /** * Creates and loads the xml properties from the specified file. * The specified file can contain "include" properties which then * are loaded and merged into the properties. * * @param file The properties file to load. * @throws ConfigurationException Error while loading the properties file */ public XMLPropertiesConfiguration(File file) throws ConfigurationException { super(file); } /** * Creates and loads the xml properties from the specified URL. * The specified file can contain "include" properties which then * are loaded and merged into the properties. * * @param url The location of the properties file to load. * @throws ConfigurationException Error while loading the properties file */ public XMLPropertiesConfiguration(URL url) throws ConfigurationException { super(url); } public void load(Reader in) throws ConfigurationException { SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(false); factory.setValidating(true); try { SAXParser parser = factory.newSAXParser(); XMLReader xmlReader = parser.getXMLReader(); xmlReader.setEntityResolver(new EntityResolver(){ public InputSource resolveEntity(String publicId, String systemId) { return new InputSource(getClass().getClassLoader().getResourceAsStream("properties.dtd")); } }); xmlReader.setContentHandler(new Java5XMLPropsHandler(this)); xmlReader.parse(new InputSource(in)); } catch(Exception e) { throw new ConfigurationException("Unable to parse the configuration file", e); } // todo: support included properties ? } public void save(Writer out) throws ConfigurationException { PrintWriter writer = new PrintWriter(out); String encoding = getEncoding() != null ? getEncoding() : DEFAULT_ENCODING; writer.println("<?xml version=\"1.0\" encoding=\"" + encoding + "\"?>"); writer.println("<!DOCTYPE properties SYSTEM \"http://java.sun.com/dtd/properties.dtd\">"); writer.println("<properties>"); if (getHeader() != null) { writer.println(" <comment>" + StringEscapeUtils.escapeXml(getHeader()) + "</comment>"); } Iterator keys = getKeys(); while (keys.hasNext()) { String key = (String) keys.next(); Object value = getProperty(key); if (value instanceof List) { writeProperty(writer, key, (List) value); } else { writeProperty(writer, key, value); } } writer.println("</properties>"); writer.flush(); } /** * Write a property. */ private void writeProperty(PrintWriter out, String key, Object value) { // escape the key String k = StringEscapeUtils.escapeXml(key); if (value != null) { // escape the value String v = StringEscapeUtils.escapeXml(String.valueOf(value)); v = StringUtils.replace(v, String.valueOf(getDelimiter()), "\\" + getDelimiter()); out.println(" <entry key=\"" + k + "\">" + v + "</entry>"); } else { out.println(" <entry key=\"" + k + "\"/>"); } } /** * Write a list property. */ private void writeProperty(PrintWriter out, String key, List values) { for (int i = 0; i < values.size(); i++) { writeProperty(out, key, values.get(i)); } } class Java5XMLPropsHandler extends DefaultHandler { Locator docLocator = null; String key,value = ""; boolean inCommentElement, inEntryElement = false; XMLPropertiesConfiguration propsClass = null; public Java5XMLPropsHandler(XMLPropertiesConfiguration clazz) { propsClass = clazz; } public void setDocumentLocator(Locator locator) { docLocator = locator; } public void startElement(String uri, String localName, String qName, Attributes attrs) { if (qName.equals("comment")) { inCommentElement = true; } if (qName.equals("entry")) { key = attrs.getValue("key"); inEntryElement = true; } } public void endElement(String uri, String localName, String qName) { if (inCommentElement) { // We've just finished a <comment> element so set the header propsClass.setHeader(value); inCommentElement = false; } if (inEntryElement) { // We've just finished an <entry> element, so add the key/value pair propsClass.addProperty(key, value); inEntryElement = false; } // Clear the element value buffer value = ""; } public void characters(char[] chars, int start, int length) { /* We're currently processing an element. All character data from now until * the next endElement() call will be the data for this element. */ value += new String(chars, start, length); } } } ------=_20050501191535_21708 Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org ------=_20050501191535_21708-- From commons-dev-returnsandra01@example.org Sun May 01 18:32:24 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 1912 invoked from network); 1 May 2005 18:32:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 18:32:24 -0000 Received: (qmail 76101 invoked by uid 500); 1 May 2005 18:33:46 -0000 Delivered-To: sandra01@example.org Received: (qmail 75679 invoked by uid 500); 1 May 2005 18:33:43 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 75653 invoked by uid 99); 1 May 2005 18:33:43 -0000 X-ASF-Spam-Status: No, hits=0.1 required=10.0 tests=FORGED_RCVD_HELO X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from corp-206.dfki.uni-sb.de (HELO mail.dfki.de) (83.161.120.155) by apache.org (qpsmtpd/0.28) with ESMTP; Sun, 01 May 2005 11:33:43 -0700 Received: from mail.dfki.de (localhost.dfki.uni-sb.de [83.161.120.155]) by localhost (Postfix) with ESMTP id 04240E47EB for <sandra01@example.org>; Sun, 1 May 2005 20:32:15 +0200 (CEST) Received: from [IPv888a:dbb7:2d49:b3f6:8605:bf4e:caed:e5a4:1] (dave.dfki.uni-sb.de [83.161.120.155]) by mail.dfki.de (Postfix) with ESMTP id CF109E47E1 for <sandra01@example.org>; Sun, 1 May 2005 20:32:14 +0200 (CEST) Mime-Version: 1.0 (Apple Message framework v622) In-Reply-To: <sandra01@example.org> References: <sandra01@example.org> <sandra01@example.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Message-Id: <sandra01@example.org> Content-Transfer-Encoding: quoted-printable From: Paul Libbrecht <sandra01@example.org> Subject: Re: [jelly] SOLVED: Maven issue with Hans memory leak patch Date: Sun, 1 May 2005 20:32:12 +0200 To: "Jakarta Commons Developers List" <sandra01@example.org> X-Mailer: Apple Mail (2.622) X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Le 1 mai 05, =E0 19:36, peter royal a =E9crit : > On May 1, 2005, at 9:09 AM, Brett Porter wrote: >> I've solved this problem. One of the jelly tags was relying on a new >> instance being created, but the instance is now being reused. Note=20 >> that >> the tag is the same call from the same script, so I assume that this=20= >> is >> valid, so I have made the tag not be stateful and it fixed the Maven >> problem. >> Does anyone know if this is correct behaviour? > Sounds correct to me :) Yes, this sounds also correct to me... I think the assumption that a new instance of tag-objects be created=20 was correct if one would set not to "cache" tags (using the formerly=20 available setCacheTags method); this was probably the default. SInce the thread-local fixes, all tags are cached and... I am wondering wether there would be wish to bring back the method=20 setCacheTags and actually disable caching in some circumstances. I=20 would rather say it's better to keep it out as it makes life-cycle=20 easier to write for tags (and one can still clear the contexts). Brett, I'm really looking forward to your commit (which will include=20 Hans' patch, then, correct?). =46rom there on we should hunt for 1.0! paul --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 20:31:45 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 35054 invoked from network); 1 May 2005 20:31:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 20:31:44 -0000 Received: (qmail 80194 invoked by uid 500); 1 May 2005 20:33:05 -0000 Delivered-To: sandra01@example.org Received: (qmail 80115 invoked by uid 500); 1 May 2005 20:33:05 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 80101 invoked by uid 99); 1 May 2005 20:33:04 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=RCVD_BY_IP X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: domain of sandra01@example.org designates 83.161.120.155 as permitted sender) Received: from zproxy.gmail.com (HELO zproxy.gmail.com) (83.161.120.155) by apache.org (qpsmtpd/0.28) with ESMTP; Sun, 01 May 2005 13:33:04 -0700 Received: by zproxy.gmail.com with SMTP id 18so1563049nzp for <sandra01@example.org>; Sun, 01 May 2005 13:31:38 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=ZpGYbu548ZK1DA0WW/m1oP4jh4fzkckxvMdzLMsBoTtKYhvuklrcEN6sgy3yxtWNjJxPNRzt/Ur22+IOoPN54/287TqYRfeCd5v2pdz562WKvv+KwYe0uGb0qWpA9/KMwh+g7yidNLZ8kR4lrCx3eND7CNP8bsBOdFnlOeu906M= Received: by 83.161.120.155 with SMTP id e9mr451855nzb; Sun, 01 May 2005 13:31:38 -0700 (PDT) Received: by 83.161.120.155 with HTTP; Sun, 1 May 2005 13:31:38 -0700 (PDT) Message-ID: <sandra01@example.org> Date: Sun, 1 May 2005 16:31:38 -0400 From: Phil Steitz <sandra01@example.org> Reply-To: Phil Steitz <sandra01@example.org> To: Jakarta Commons Developers List <sandra01@example.org>, Steven Caswell <sandra01@example.org> Subject: Re: [lang] (RE)VOTE 2.1 Release In-Reply-To: <sandra01@example.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <sandra01@example.org> <sandra01@example.org> X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Looks good to go +1 Phil On 4/27/05, Steven Caswell <sandra01@example.org> wrote: > I have posted the clirr report for review: > http://www.apache.org/~stevencaswell/commons-lang-2.1/clirr-2.0-to-2.1.tx= t >=20 > ---------- Forwarded message ---------- > From: Steven Caswell <sandra01@example.org> > Date: Apr 26, 2005 7:31 AM > Subject: [lang] (RE)VOTE 2.1 Release > To: Jakarta Commons Developers List <sandra01@example.org> >=20 > Release candidate 3 (and hopefully final :) is in > http://www.apache.org/~stevencaswell/commons-lang-2.1/<http://www.apache.= org/%7Estevencaswell/commons-lang-2.1/> >=20 > The only changes between RC2 and RC3 are documentation clean-up (thanks t= o > Gary for finding some inconsistencies). It would be good if someone could > check the compatibility of the distribution with JDK 1.2. >=20 > I know Stephen asked for a clirr, and I haven't had time to work on that, > but I should be able to get it by tomorrow evening (ET). >=20 > Not sure if another vote is necessary since I don't recall any -1s, but I= 'll > go ahead and propose it and see what shakes out: >=20 > [ ] +1 > [ ] -1 >=20 > -- > Steven Caswell > sandra01@example.org >=20 > Take back the web - http://www.mozilla.org >=20 > -- > Steven Caswell > sandra01@example.org >=20 > Take back the web - http://www.mozilla.org >=20 > --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 20:53:52 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 37593 invoked from network); 1 May 2005 20:53:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 20:53:52 -0000 Received: (qmail 95330 invoked by uid 500); 1 May 2005 20:55:09 -0000 Delivered-To: sandra01@example.org Received: (qmail 95302 invoked by uid 500); 1 May 2005 20:55:09 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 95288 invoked by uid 500); 1 May 2005 20:55:09 -0000 Received: (qmail 95283 invoked by uid 99); 1 May 2005 20:55:09 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.28) with SMTP; Sun, 01 May 2005 13:55:09 -0700 Received: (qmail 37362 invoked by uid 65534); 1 May 2005 20:53:43 -0000 Message-ID: <sandra01@example.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: svn commit: r165541 - /jakarta/commons/proper/lang/tags/LANG_2_1_RC3 Date: Sun, 01 May 2005 20:53:43 -0000 To: sandra01@example.org From: sandra01@example.org X-Mailer: svnmailer-1.0.0-dev X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: stevencaswell Date: Sun May 1 13:53:43 2005 New Revision: 165541 URL: http://svn.apache.org/viewcvs?rev=3D165541&view=3Drev Log: Lang release candidate 3 Added: jakarta/commons/proper/lang/tags/LANG_2_1_RC3/ - copied from r165540, jakarta/commons/proper/lang/trunk/ --------------------------------------------------------------------- To unsubscribe, e-mail: sandra01@example.org For additional commands, e-mail: sandra01@example.org From commons-dev-returnsandra01@example.org Sun May 01 22:05:03 2005 Return-Path: <commons-dev-returnsandra01@example.org> Delivered-To: sandra01@example.org Received: (qmail 47312 invoked from network); 1 May 2005 22:05:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 May 2005 22:05:01 -0000 Received: (qmail 58132 invoked by uid 500); 1 May 2005 22:06:22 -0000 Delivered-To: sandra01@example.org Received: (qmail 58055 invoked by uid 500); 1 May 2005 22:06:21 -0000 Mailing-List: contact sandra01@example.org; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:sandra01@example.org> List-Subscribe: <mailto:sandra01@example.org> List-Help: <mailto:sandra01@example.org> List-Post: <mailto:sandra01@example.org> List-Id: "Jakarta Commons Developers List" <commons-dev.jakarta.apache.org> Reply-To: "Jakarta Commons Developers List" <sandra01@example.org> Delivered-To: mailing list sandra01@example.org Received: (qmail 58041 invoked by uid 99); 1 May 2005 22:06:21 -0000 X-ASF-Spam-Status: No, hits=0.1 required=10.0 tests=HTML_30_40,HTML_MESSAGE,RCVD_BY_IP X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: domain of sandra01@example.org designates 83.161.120.155 as permitted sender) Received: from rproxy.gmail.com (HELO rproxy.gmail.com) (83.161.120.155) by apache.org (qpsmtpd/0.28) with ESMTP; Sun, 01 May 2005 15:06:20 -0700 Received: by rproxy.gmail.com with SMTP id a41so816475rng for <sandra01@example.org>; Sun, 01 May 2005 15:04:55 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:references; b=A+q42Qot0zy9fssOyqRLjAgzsZSfCHzGSbTBwq4kFkIk1DB+j+E082sVJhTJWi2iI/cVRTVcWRRRMUgxINmLUeb9Xou5GYHBwZ1zKPLxL7IPI3XyIDeT71ndww7yfcvYMCJQjsGZRKAsV58mgLHuE03l5XBmk0wPn0h3Di1UJqI= Received: by 83.161.120.155 with SMTP id y61mr5681197rna; Sun, 01 May 2005 15:04:55 -0700 (PDT) Received: by 83.161.120.155 with HTTP; Sun, 1 May 2005 15:04:54 -0700 (PDT) Message-ID: <sandra01@example.org> Date: Sun, 1 May 2005 18:04:54 -0400 From: Steven Caswell <sandra01@example.org> Reply-To: Steven Caswell <sandra01@example.org> To: Jakarta Commons Developers List <sandra01@example.org> Subject: Re: [lang] (RE)VOTE 2.1 Release Cc: Michael Heuer <sandra01@example.org> In-Reply-To: <sandra01@example.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_1591_21390451.1114985094501" References: <sandra01@example.org> <sandra01@example.org> X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N ------=_Part_1591_21390451.1114985094501 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
{'source': 'Apache Software Foundation Public Mail Archives'}