Re: [lang] RC3 util package UUID issue
All looks good to me, thanks Stephen - Original Message - From: Henri Yandell [EMAIL PROTECTED] With 4 +1's, I've moved BitField and Validate up to the main package and have added the util package to my list of directories I remove before tagging. Ignoring whether we call it id, identifiers or whatever as simply removing util from builds matches my needs. Hen On Tue, 19 Aug 2003, Stephen Colebourne wrote: The discussion over UUID makes me nervous. It has been suggested that UUID, together with the rest of the id stuff goes into a new identifier subpackage. This makes sense. However, it is unreasonable of us to release a new package, and then deprecate it in the next release (2.1). It also raises the question of whether the other two util package classes (BitField and Validate) should be in the main lang package instead. (What does util mean?) Solutions: 1) Release as is, we can't predict the future 2) Don't release entire util subpackage 3) Delete util subpackage. Move BitField and Validate to main lang package. Create identifier subpackage for ids. Release 2.0. 4) Delete util subpackage. Move BitField and Validate to main lang package. Release 2.0 without ids. IMHO #1 may tie us to a util subpackage, which I don't like, so #2 is better. #3 is good, but I prefer #4 overall while ids are up in the air - it gives us more design flexibility. Stephen (who is now getting very tired of 2.0...) - Original Message - From: Henri Yandell [EMAIL PROTECTED] http://www.apache.org/~bayard/commons-lang-2.0-rc3/ Changes I know of: Some javadoc WordWrapUtils fixed, renamed to WordUtils and with some of StringUtils code All .zip files should have text files in DOS CRLF format I'm sure there were other ones though. Let's give these a couple of days to see if anyone has any problems with them. Hen - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [collections] Questions....
From: Henri Yandell [EMAIL PROTECTED] Firstly, SingletonIterator and SingletonListIterator seem quite similar. Apart from the extra type of 'ListIterator', it appears that a SingletonListIterator can do the job of a SingletonIterator in all jobs. Could just remove SingleIterator. True, but somebody may only want the Iterator interface to be implemented. By having both we give the user the flexibility to choose. Second question. What's ListIteratorWrapper useful for? It seems to just let us throw a normal Iterator into something requiring ListIterator-ness, except then it'll go ahead and throw exceptions on most methods. So is it just an iterator that can get the previous element? Yep, it allows forwards and backwards movement through any iterator, not just list iterators. And no, I don't know why its useful. Next. MultiMap has a remove(Object, Object) contract and therefore is not a tag interface as the javadoc states. Actually MultiMap is a poor interface that probably should be changed. It is a difficult decision as we are not supposed to change interfaces, but it is perhaps unlikely that there are too many implementations of this one. See bugzilla. The javadoc for a priority queue does not explain what a priority queue is. Not sure if I remember either. FastXxx classes say that they are not cross-platform, but in no way discuss which platforms they are targetted at. This makes these classes useless except to the authors. IIRC, nobody can ever answer this question. It may be a theoretical risk, or a real one. Who knows? Stephen - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [collections] Questions....
-Original Message- From: Takuya Murata [mailto:[EMAIL PROTECTED] Sent: 20 August 2003 04:29 To: Jakarta Commons Developers List Subject: Re: [collections] Questions Hi, So the question is do we really need SingletonIterator and such. If we want to eliminate the number of methods or classes, then what about one class for all of collections or iterators? I suppose the use of singleton methods and classes is almost always to provide an object matching a data type you want. Thus, we can have a class like class Singleton implements List, SortedSet, Bag, Iterator, ListIterator { } this sounds hugely dangerous - the javadocs for List#equals(Object) for example stipulate: Compares the specified object with this list for equality. Returns true if and only if the specified object is also a list, both lists have the same size, and all corresponding pairs of elements in the two lists are equal. (Two elements e1 and e2 are equal if (e1==null ? e2==null : e1.equals(e2)).) In other words, two lists are defined to be equal if they contain the same elements in the same order. This definition ensures that the equals method works properly across different implementations of the List interface. whereas Set#equals(Object) state: Compares the specified object with this set for equality. Returns true if the specified object is also a set, the two sets have the same size, and every member of the specified set is contained in this set (or equivalently, every member of this set is contained in the specified set). This definition ensures that the equals method works properly across different implementations of the set interface. This is only one of many conflicts. Just implementing the method signatures of such classes without implementing their 'contracts' (even if the contract is only the official line on what they should and shouldn't do) is a recipe for confusion and bugs... Matt ** The information transmitted herewith is sensitive information intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [Attributes] Inherit and Develop
From: Noel J. Bergman [mailto:[EMAIL PROTECTED] Leo, I figure that you should go for it. I'd like to hear more about your plans. JSR 175 is the normative statement of what attributes must be in Java. How do your plans compare and contrast with JSR 175, nanning, Aspect4J, etc? The major differences (that I'm aware of) are: + I store attributes in generated classes. The classes are generated at compile-time by the attribute compiler as source files. + Attributes are object instances of any class (not just serializable). Last I checked, nanning attributes only allowed string valued attributes. Attrib4J used .class file manipulation, but was moving away from that. + I'm sure I'm missing out on something here... I wish I had a copy of JSR175 - are you aware of any place I can get it? I've been searching for it in order to make my implementation sort-of conformant. An explanation of how my impl works is at: http://marc.theaimsgroup.com/?l=avalon-devm=105974933614920w=2: (...) With the risk that this turns into a Leo's Picks column I am also beginning to like the way attributes are handled in .Net, with value objects. You'd have: import org.apache.avalon.framework.attributes.ThreadSafe; import org.apache.avalon.framework.attributes.Dependency; /** * * @attribute new ThreadSafe() * @attribute new Dependency( MyDependency.class, my-dep ) */ public class MyComponent { } This could be compiled into a .java file and then into a .class file: public interface AttributeClass { public Set getClassAttributes (); } import org.apache.avalon.framework.attributes.ThreadSafe; import org.apache.avalon.framework.attributes.Dependency; public class MyComponent$Attributes implements AttributeClass { public static final Set classAttributes = new HashSet (); static { classAttributes.add ( new ThreadSafe () ); classAttributes.add ( Dependency( MyDependency.class, my-dep ) ); } public Set getClassAttributes () { return classAttributes; } } A standard API would be able to access this via: Class c = MyComponent.class; Class attributeClass = c.getClassLoader ().loadClass ( c.getName + $Attributes ); AttributeClass instance = (AttributeClass) attributeClass.newInstance (); Set classAttributes = instance.getClassAttributes (); and so on... /LS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 22578] New: - file upload can be very slow
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22578. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22578 file upload can be very slow Summary: file upload can be very slow Product: Commons Version: 1.0 Beta 2 Platform: PC OS/Version: Windows XP Status: NEW Severity: Normal Priority: Other Component: File Upload AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] very slow file uploads - massive performance boost by increasing 4096 to something much bigger eg * 100 or * 1000 Problem only occurs in some network locations - and only effects file upload - not other network operations. FIX: public class MultipartStream protected static final int DEFAULT_BUFSIZE = 4096; This fix need not be done as the problem isn't common - but the information on what to do might help someone else ! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [collections] Questions....
On Wednesday, August 20, 2003, at 12:41 PM, Henri Yandell wrote: On Wed, 20 Aug 2003, Takuya Murata wrote: Yes, this is in line with your proposal; we can use SingletonListIterator for both Iterator and ListIterator. I think the problem of this solution is users probably expect SingletonIterator intuitively and might be puzzled why there is no such. Agreed. It is the logical name. So solution there is to remove SingletonListIterator and quietly make SingletonIterator a ListIterator? :) Hen A tricky situation is class A { public void method (Iterator i); public void method (ListIterator i); }; new A ().method (new SingletonIterator ()); Otherwise, I think it is fine. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 20729] - [jexl][patch] Rethrow exceptions in method execution
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20729. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20729 [jexl][patch] Rethrow exceptions in method execution [EMAIL PROTECTED] changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | --- Additional Comments From [EMAIL PROTECTED] 2003-08-20 11:08 --- Reopening: although exceptions are now rethrown in ASTMethod.java, there is still code in CVS head to print an exception stack trace to System.out as the exception passes up the call stack. This code should be removed. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 20729] - [jexl][patch] Rethrow exceptions in method execution
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20729. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20729 [jexl][patch] Rethrow exceptions in method execution --- Additional Comments From [EMAIL PROTECTED] 2003-08-20 11:11 --- Created an attachment (id=7898) Patch to not print stack trace for exceptions thrown by methods - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [collections] Questions....
this sounds hugely dangerous - the javadocs for List#equals(Object) for example stipulate: Compares the specified object with this list for equality. Returns true if and only if the specified object is also a list, both lists have the same size, and all corresponding pairs of elements in the two lists are equal. (Two elements e1 and e2 are equal if (e1==null ? e2==null : e1.equals(e2)).) In other words, two lists are defined to be equal if they contain the same elements in the same order. This definition ensures that the equals method works properly across different implementations of the List interface. You do have a point. Then how about this? class Singleton implements List { } ResetableIterator i = new Singleton (hello, world).iterator (); ListIterator li = new Singleton (hello, world).listIterator (); ListIterator li = new Singleton (hello, world).listIterator (10); To me, this solution sounds good. There is no tricky choice whether SingletonIterator or SingletonListIterator. And we can avoid a big xxxUtil classes instead of small objects and classes, resembling traditional imperative languages such as C. I am not sure if it is valid with the contract of interfaces to implement both Set and List because ListIterator doesn't make sense with listIterator but it doesn't look elegant to have two SingletonList and SingletonSet classes. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [collections] Questions....
-Original Message- From: Takuya Murata [mailto:[EMAIL PROTECTED] Sent: 20 August 2003 11:55 To: Jakarta Commons Developers List Subject: Re: [collections] Questions A tricky situation is class A { public void method (Iterator i); public void method (ListIterator i); }; new A ().method (new SingletonIterator ()); Such methods are somewhat dangerous since lots of people may assume that the virtual method invocation applies to the argument as well as the object the method is being invoked on. This is not the case it is a pure compile time dependency so whatever it is cast as it what get's used. This is a common problem with people thinking they are overriding Object#equals(Object o) by writing ... public boolean equals(MyClass c) { ... } when they are only adding an overloaded method and HashMap for example will not make use of the method... In this case ListIterator extends Iterator which means that the will be no compile time complaints it will just always go with ListIterator since it searches top down. Obviously in the hands of a skilled java OO coder these present no probs and may allow an elegant solution, but exposing them as a public API should be done with care. Matt ** The information transmitted herewith is sensitive information intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [Attributes] Inherit and Develop
You might also want to take a look at http://www.ideanest.com/attributes/ which has merged ideas from attrib4j, nanning and c# and is currently being merged into the QDox project. On Wednesday, August 20, 2003, at 10:16 am, Leo Sutic wrote: From: Noel J. Bergman [mailto:[EMAIL PROTECTED] Leo, I figure that you should go for it. I'd like to hear more about your plans. JSR 175 is the normative statement of what attributes must be in Java. How do your plans compare and contrast with JSR 175, nanning, Aspect4J, etc? The major differences (that I'm aware of) are: + I store attributes in generated classes. The classes are generated at compile-time by the attribute compiler as source files. + Attributes are object instances of any class (not just serializable). Last I checked, nanning attributes only allowed string valued attributes. Attrib4J used .class file manipulation, but was moving away from that. + I'm sure I'm missing out on something here... I wish I had a copy of JSR175 - are you aware of any place I can get it? I've been searching for it in order to make my implementation sort-of conformant. An explanation of how my impl works is at: http://marc.theaimsgroup.com/?l=avalon-devm=105974933614920w=2: (...) With the risk that this turns into a Leo's Picks column I am also beginning to like the way attributes are handled in .Net, with value objects. You'd have: import org.apache.avalon.framework.attributes.ThreadSafe; import org.apache.avalon.framework.attributes.Dependency; /** * * @attribute new ThreadSafe() * @attribute new Dependency( MyDependency.class, my-dep ) */ public class MyComponent { } This could be compiled into a .java file and then into a .class file: public interface AttributeClass { public Set getClassAttributes (); } import org.apache.avalon.framework.attributes.ThreadSafe; import org.apache.avalon.framework.attributes.Dependency; public class MyComponent$Attributes implements AttributeClass { public static final Set classAttributes = new HashSet (); static { classAttributes.add ( new ThreadSafe () ); classAttributes.add ( Dependency( MyDependency.class, my-dep ) ); } public Set getClassAttributes () { return classAttributes; } } A standard API would be able to access this via: Class c = MyComponent.class; Class attributeClass = c.getClassLoader ().loadClass ( c.getName + $Attributes ); AttributeClass instance = (AttributeClass) attributeClass.newInstance (); Set classAttributes = instance.getClassAttributes (); and so on... /LS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] James --- http://radio.weblogs.com/0112098/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [collections] Questions....
I knocked this up - javadocs are crap but is this the sort of thing you were thinking of? a mutable version is not too hard either. Matt -Original Message- From: Hope, Matthew Sent: 20 August 2003 13:18 To: 'Jakarta Commons Developers List' Subject: RE: [collections] Questions -Original Message- From: Takuya Murata [mailto:[EMAIL PROTECTED] Sent: 20 August 2003 12:14 To: Jakarta Commons Developers List Subject: Re: [collections] Questions class Singleton implements List { } ResetableIterator i = new Singleton (hello, world).iterator (); ListIterator li = new Singleton (hello, world).listIterator (); ListIterator li = new Singleton (hello, world).listIterator (10); I personally have a problem with the use of the class name Singleton. Singleton is a well known pattern for only having one instance of an Object in an environment, this class does not achive this. I would think a name likeSingleEntryIterator/TrivialIterator/MonoIterator or some such would be a better descriptive name. To me, this solution sounds good. There is no tricky choice whether SingletonIterator or SingletonListIterator. And we can avoid a big xxxUtil classes instead of small objects and classes, resembling traditional imperative languages such as C. The whole point of Iterator is that it is collection type independent - no matter what data structure in place iterator should supply you with every Object in it - ordering appropriately if required. If it is being used for code expecting a ListIterator I would say that that code needs to be made more agnostic of the underlying implementation (given that you would be using this quick method of supplying just the one value). Though in fairness making it return a ListItertor (but keep the signature to Iterator) would be no big deal. I am not sure if it is valid with the contract of interfaces to implement both Set and List because ListIterator doesn't make sense with listIterator but it doesn't look elegant to have two SingletonList and SingletonSet classes. Perhaps it would be better to create a class SingleEntryCollection which extends collection and implements the iterator method as well as the rest. The cost is one additional object for your siple use case but it may provide a clearer picture of what is being performed...If the Collection itself implements Iterator then it can just return itself in response to the method. I can't see a name clash except remove() and they are different signatures in both return type and parameters... If I'm missing the point of what you're trying to do here let me know Matt ** The information transmitted herewith is sensitive information intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] ** The information transmitted herewith is sensitive information intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[jira] Commented: (JELLY-8) jexl parse error
The following comment has been added to this issue: Author: Mark Wilkinson Created: Wed, 20 Aug 2003 8:13 AM Body: This bug in jexl has now been fixed, although I don't think a new release of the jexl jar file has been made. - View the issue: http://jira.codehaus.org/secure/ViewIssue.jspa?key=JELLY-8 Here is an overview of the issue: - Key: JELLY-8 Summary: jexl parse error Type: Bug Status: Assigned Priority: Major Time Spent: Unknown Remaining: 0 minutes Project: jelly Assignee: james strachan Reporter: Jason Horman Created: Sat, 28 Sep 2002 3:10 AM Updated: Sat, 28 Sep 2002 3:10 AM Environment: java version 1.4.0_01 Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_01-b03) Java HotSpot(TM) Client VM (build 1.4.0_01-b03, mixed mode) Description: The following jelly script: jelly xmlns=jelly:core xmlns:log=jelly:log xmlns:bsh=jelly:beanshell set var=testStr value=hello/ log:info${testStr.charAt(-2)}/log:info /jelly Throws the exception below. Changing the number to positive fixes the error. I realize this would cause an OOB but it is just to demonstrate that something seems to be wrong with the parsing of the expression. org.apache.commons.jexl.parser.ParseException: Encountered ( - at line 1, column 15. Was expecting one of: || ... or ... ... and ... | ... ^ ... ... == ... eq ... != ... ne ... ... lt ... ... gt ... = ... le ... = ... ge ... + ... - ... * ... / ... div ... % ... mod ... ; ... [ ... ( INTEGER_LITERAL ... ( FLOAT_LITERAL ... ( true ... ( false ... ( STRING_LITERAL ... ( null ... ( IDENTIFIER ... ( ( ... ( empty ... ( size ... ( ~ ... ( ! ... ( not ... ( ) ... . ... = ... at org.apache.commons.jexl.parser.Parser.generateParseException(Parser.java:3193) at org.apache.commons.jexl.parser.Parser.jj_consume_token(Parser.java:3077) at org.apache.commons.jexl.parser.Parser.ExpressionExpression(Parser.java:1519) at org.apache.commons.jexl.parser.Parser.Statement(Parser.java:1492) at org.apache.commons.jexl.parser.Parser.JexlScript(Parser.java:58) at org.apache.commons.jexl.parser.Parser.parse(Parser.java:18) at org.apache.commons.jexl.ExpressionFactory.createNewExpression(ExpressionFactory.java:124) at org.apache.commons.jexl.ExpressionFactory.createExpression(ExpressionFactory.java:88) at org.apache.commons.jelly.expression.jexl.JexlExpressionFactory.createExpression(JexlExpressionFactory.java:102) at org.apache.commons.jelly.expression.CompositeExpression.parse(CompositeExpression.java:128) at org.apache.commons.jelly.parser.XMLParser.addTextScript(XMLParser.java:1069) at org.apache.commons.jelly.parser.XMLParser.endElement(XMLParser.java:681) at org.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:579) at org.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(XMLNamespaceBinder.java:897) at org.apache.xerces.impl.XMLNamespaceBinder.endElement(XMLNamespaceBinder.java:643) at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:1972) at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:878) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.handleEndElement(XMLDocumentFragmentScannerImpl.java:1144) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:987) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1445) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:333) at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:524) at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:580) at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152) at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1169) at org.apache.commons.jelly.parser.XMLParser.parse(XMLParser.java:296) at org.apache.commons.jelly.Jelly.compileScript(Jelly.java:165) at org.apache.commons.jelly.Jelly.main(Jelly.java:122) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at
Re: [VOTE] Sandbox Karma for Leo Sutic
On Tuesday, August 19, 2003, at 04:22 PM, Noel J. Bergman wrote: Leo Sutic is an active Avalon Committer, and has Jakarta Karma by virtue of Avalon having been incubated in Jakarta. He wishes to contribute to Attributes in the sandbox. +1 -pete - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[VFS] Crashes in getContent()
Over the last few days we've started to see runtime failures due to a crash inside VFS. An example is on the public gump (so using nightly from CVS) and it has happened two nights in a row (at least). http://cvs.apache.org/builds/gump/2003-08-20/krysalis-centipede-site.html The crash is at: java.lang.NullPointerException at org.apache.commons.vfs.provider.AbstractFileObject.getInputStream (AbstractFileObject.java:821) at org.apache.commons.vfs.provider.DefaultFileContent.getInputStream (DefaultFileContent.java:289) at org.krysalis.ruper.util.VfsUtils.getChildren(VfsUtils.java:176) at We have a helper method which we use to try to sniff children for a directory listing url -- since current VFS has no sense of folder (or children) for HTTP 'files'. The code has been working for a long time, but recently stopped working. I don't know if this is using HTTPClient or java.net.URL, but I assume the former. Can anybody help? regards Adam public static FileObject[] getChildren(FileObject folder) throws IOException, MalformedURLException, FileSystemException { FileObject[] result = null; if (folder.getFileSystem().hasCapability(Capability.LIST_CHILDREN)) { if (folder.getType() == FileType.FILE) { result = new FileObject[] { folder }; } else { result = folder.getChildren(); } } else if (http.equals(folder.getURL().getProtocol())) { ArrayList list = new ArrayList(); // try opening the URL InputStream urlStream = folder.getContent().getInputStream(); String type = URLConnection.guessContentTypeFromStream(urlStream); if ((type == null) || (type.compareTo(text/html) != 0)) { -- ExperienceSybase Technology... http://www.try.sybase.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest - New directory
leosutic2003/08/20 16:09:37 jakarta-commons-sandbox/attributes/unittest - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/api - New directory
leosutic2003/08/20 16:09:26 jakarta-commons-sandbox/attributes/api - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/site - New directory
leosutic2003/08/20 16:09:35 jakarta-commons-sandbox/attributes/site - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/api/src - New directory
leosutic2003/08/20 16:09:52 jakarta-commons-sandbox/attributes/api/src - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/api/src/java - New directory
leosutic2003/08/20 16:09:55 jakarta-commons-sandbox/attributes/api/src/java - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/api/src/java/org - New directory
leosutic2003/08/20 16:09:58 jakarta-commons-sandbox/attributes/api/src/java/org - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/api/src/java/org/apache/commons/attributes - New directory
leosutic2003/08/20 16:10:10 jakarta-commons-sandbox/attributes/api/src/java/org/apache/commons/attributes - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/api/src/java/org/apache/commons - New directory
leosutic2003/08/20 16:10:07 jakarta-commons-sandbox/attributes/api/src/java/org/apache/commons - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/api/src/test - New directory
leosutic2003/08/20 16:10:17 jakarta-commons-sandbox/attributes/api/src/test - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/compiler/src - New directory
leosutic2003/08/20 16:10:22 jakarta-commons-sandbox/attributes/compiler/src - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/compiler/src/java/org - New directory
leosutic2003/08/20 16:10:31 jakarta-commons-sandbox/attributes/compiler/src/java/org - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/compiler/src/java - New directory
leosutic2003/08/20 16:10:26 jakarta-commons-sandbox/attributes/compiler/src/java - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/compiler/src/java/org/apache - New directory
leosutic2003/08/20 16:10:35 jakarta-commons-sandbox/attributes/compiler/src/java/org/apache - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/compiler/src/java/org/apache/commons - New directory
leosutic2003/08/20 16:10:39 jakarta-commons-sandbox/attributes/compiler/src/java/org/apache/commons - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/compiler/src/java/org/apache/commons/attributes - New directory
leosutic2003/08/20 16:10:45 jakarta-commons-sandbox/attributes/compiler/src/java/org/apache/commons/attributes - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/compiler/src/java/org/apache/commons/attributes/compiler - New directory
leosutic2003/08/20 16:10:50 jakarta-commons-sandbox/attributes/compiler/src/java/org/apache/commons/attributes/compiler - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/site/etc - New directory
leosutic2003/08/20 16:10:59 jakarta-commons-sandbox/attributes/site/etc - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/site/xdocs - New directory
leosutic2003/08/20 16:11:03 jakarta-commons-sandbox/attributes/site/xdocs - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src/cl1 - New directory
leosutic2003/08/20 16:11:18 jakarta-commons-sandbox/attributes/unittest/src/cl1 - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src - New directory
leosutic2003/08/20 16:11:15 jakarta-commons-sandbox/attributes/unittest/src - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src/cl2 - New directory
leosutic2003/08/20 16:11:23 jakarta-commons-sandbox/attributes/unittest/src/cl2 - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src/test - New directory
leosutic2003/08/20 16:11:31 jakarta-commons-sandbox/attributes/unittest/src/test - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Commons Pool/DBCP minIdle Implementation
Richard, I only looked at your patches out of context, so perhaps I missed it, but where is the code to ensure that: +// Check to see if we are below our minimum number of objects +// if so enough to bring us back to our minimum. +int objectDeficit = getNumIdle() - _minIdle; +if ( objectDeficit 0 ) { +for ( int j = 0; j Math.abs(objectDeficit); j++ ) { +addObject(); +} // for +} // if doesn't cause the number of objects to exceed the maximum? Unless _whenExhaustedAction is WHEN_EXHAUSTED_GROW, there is no point in allowing numActive + numIdle to exceed maxActive, because bollowObject() won't permit any objects to be borrowed more than maxActive. The default behavior is to block until there are fewer than maxActive objects outstanding. --- Noel - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src/java - New directory
leosutic2003/08/20 16:11:27 jakarta-commons-sandbox/attributes/unittest/src/java - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src/test/org - New directory
leosutic2003/08/20 16:11:45 jakarta-commons-sandbox/attributes/unittest/src/test/org - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src/test/org/apache/commons/attributes/test - New directory
leosutic2003/08/20 16:12:01 jakarta-commons-sandbox/attributes/unittest/src/test/org/apache/commons/attributes/test - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src/test/org/apache/commons - New directory
leosutic2003/08/20 16:11:54 jakarta-commons-sandbox/attributes/unittest/src/test/org/apache/commons - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src/test/org/apache - New directory
leosutic2003/08/20 16:11:51 jakarta-commons-sandbox/attributes/unittest/src/test/org/apache - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/unittest/src/test/org/apache/commons/attributes - New directory
leosutic2003/08/20 16:11:57 jakarta-commons-sandbox/attributes/unittest/src/test/org/apache/commons/attributes - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons-sandbox/attributes/api/src/java/org/apache/commons/attributes AttributeIndex.java AttributeRepositoryClass.java Attributes.java
leosutic2003/08/20 16:13:29 Added: attributes/compiler/src/java/org/apache/commons/attributes anttasks.properties attributes/compiler/src/java/org/apache/commons/attributes/compiler AttributeCompiler.java AttributeIndexer.java attributes/api/src/java/org/apache/commons/attributes AttributeIndex.java AttributeRepositoryClass.java Attributes.java Removed: attributes/src/java/org/apache/commons/attributes Attribute.java AttributeFinder.java Attributes.java Log: Moving in, from Avalon Sandbox. Revision ChangesPath 1.1 jakarta-commons-sandbox/attributes/compiler/src/java/org/apache/commons/attributes/anttasks.properties Index: anttasks.properties === attribute-compiler=org.apache.commons.attributes.compiler.AttributeCompiler attribute-indexer=org.apache.commons.attributes.compiler.AttributeIndexer 1.1 jakarta-commons-sandbox/attributes/compiler/src/java/org/apache/commons/attributes/compiler/AttributeCompiler.java Index: AttributeCompiler.java === package org.apache.commons.attributes.compiler; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.StringTokenizer; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.types.FileSet; import xjavadoc.XClass; import xjavadoc.XConstructor; import xjavadoc.XJavaDoc; import xjavadoc.XField; import xjavadoc.XMethod; import xjavadoc.XParameter; import xjavadoc.XProgramElement; import xjavadoc.XTag; import xjavadoc.ant.XJavadocTask; /** * Ant task to compile attributes. Usage: * * precode * lt;taskdef resource=org/apache/commons/attributes/anttasks.properties/gt; * * lt;attribute-compiler destDir=temp/gt; * lt;fileset dir=src/ includes=*.java/gt; * lt;/attribute-compilergt; * /code/pre * * The task should be run before compiling the Java sources, and will produce some * additional Java source files in the destination directory that should be compiled * along with the input source files. (See the overview for a diagram.) */ public class AttributeCompiler extends XJavadocTask { private final ArrayList fileSets = new ArrayList (); private File destDir; private int numGenerated; public AttributeCompiler () { } public void addFileset (FileSet set) { super.addFileset (set); fileSets.add (set); } public void setDestdir (File destDir) { this.destDir = destDir; } protected void copyImports (File source, PrintWriter dest) throws Exception { BufferedReader br = new BufferedReader (new FileReader (source)); try { String line = null; while ((line = br.readLine ()) != null) { if (line.startsWith (import )) { dest.println (line); } } } finally { br.close (); } } protected void addExpressions (Collection tags, PrintWriter pw, String collectionName, String fileName) { fileName = fileName.replace ('\\', '/'); Iterator iter = tags.iterator (); while (iter.hasNext ()) { XTag tag = (XTag) iter.next (); if (isAttribute (tag)) { String expression = tag.getName () + + tag.getValue (); if (expression.startsWith (@)) { expression = expression.substring (1); } if (!expression.endsWith ())) { expression = expression + (); } pw.println ( + collectionName + .add (\n + new + expression + // + fileName + : + tag.getLineNumber () + \n + );); } } } protected boolean elementHasAttributes (Collection xElements) { Iterator iter = xElements.iterator (); while (iter.hasNext ()) { XProgramElement element = (XProgramElement) iter.next (); if (tagHasAttributes (element.getDoc ().getTags ())) { return true; } } return false; } protected String getParameterTypes (Collection parameters) { StringBuffer sb = new
cvs commit: jakarta-commons-sandbox/attributes/src/java/org/apache/commons/attributes/impl DefaultAttribute.java DefaultAttributeFinder.java
leosutic2003/08/20 16:13:55 Added: attributes/unittest/src/test/org/apache/commons/attributes/test AttributesTestCase.java attributes/api/src/java/org/apache/commons/attributes CachedRepository.java CircularDependencyError.java Removed: attributes/src/java/org/apache/commons/attributes/task AttributesBuilder.java AttributesCompiler.java attributes/src/test/org/apache/commons/attributes/task AttributesBuilderTest.java attributes/src/java/org/apache/commons/attributes AttributesException.java attributes/src/test/org/apache/commons/attributes AttributesTest.java AttributesTestClass.java attributes/src/java/org/apache/commons/attributes/impl DefaultAttribute.java DefaultAttributeFinder.java Log: Moving in, from Avalon Sandbox. Revision ChangesPath 1.1 jakarta-commons-sandbox/attributes/unittest/src/test/org/apache/commons/attributes/test/AttributesTestCase.java Index: AttributesTestCase.java === package org.apache.commons.attributes.test; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Constructor; import java.io.File; import java.net.URL; import java.net.URLClassLoader; import java.util.Collection; import org.apache.commons.attributes.Attributes; import org.apache.commons.attributes.AttributeIndex; import junit.framework.TestCase; public class AttributesTestCase extends TestCase { public void testClassAttributes () throws Exception { /** * @Dependency ( SampleService.class, super-sample ) */ Class c = SuperSample.class; assertEquals (1, Attributes.getAttributes (c).size ()); assertEquals (1, Attributes.getAttributes (c, Dependency.class).size ()); assertTrue (Attributes.hasAttributeType (c, Dependency.class)); assertTrue (Attributes.hasAttribute (c, new Dependency ( SampleService.class, super-sample ))); } public void testMethodAttributes () throws Exception { /** * @Dependency ( SampleService.class, super-some-method-sample ) * @ThreadSafe () */ Method m = SuperSample.class.getMethod (someMethod, new Class[]{ Integer.TYPE }); assertEquals (2, Attributes.getAttributes (m).size ()); assertEquals (1, Attributes.getAttributes (m, Dependency.class).size ()); assertEquals (1, Attributes.getAttributes (m, ThreadSafe.class).size ()); assertTrue (Attributes.hasAttributeType (m, Dependency.class)); assertTrue (Attributes.hasAttributeType (m, ThreadSafe.class)); assertTrue (Attributes.hasAttribute (m, new Dependency ( SampleService.class, super-some-method-sample ))); assertTrue (Attributes.hasAttribute (m, new ThreadSafe ())); } public void testFieldAttributes () throws Exception { /** * @ThreadSafe () * @Dependency ( SampleService.class, super-field ) */ Field f = SuperSample.class.getField (field); assertEquals (2, Attributes.getAttributes (f).size ()); assertEquals (1, Attributes.getAttributes (f, ThreadSafe.class).size ()); assertEquals (1, Attributes.getAttributes (f, Dependency.class).size ()); assertTrue (Attributes.hasAttribute (f, new ThreadSafe ())); assertTrue (Attributes.hasAttribute (f, new Dependency ( SampleService.class, super-field ) )); assertTrue (Attributes.hasAttributeType (f, ThreadSafe.class)); assertTrue (Attributes.hasAttributeType (f, Dependency.class)); } public void testDefaultConstructorAttributes () throws Exception { /** * @Dependency ( SampleService.class, sample-ctor1 ) */ Constructor c = SuperSample.class.getDeclaredConstructor (new Class[0]); assertEquals (1, Attributes.getAttributes (c).size ()); assertEquals (1, Attributes.getAttributes (c, Dependency.class).size ()); assertTrue (Attributes.hasAttributeType (c, Dependency.class)); assertTrue (Attributes.hasAttribute (c, new Dependency ( SampleService.class, sample-ctor1 ))); } public void testConstructorAttributes () throws Exception { /** * @Dependency ( SampleService.class, sample-ctor2 ) */ Constructor c = SuperSample.class.getDeclaredConstructor (new Class[]{ String.class, (new String[0][0]).getClass () } ); assertEquals (1, Attributes.getAttributes (c).size ()); assertEquals (1, Attributes.getAttributes (c,
cvs commit: jakarta-commons-sandbox/attributes/xdocs index.xml navigation.xml usage.xml usecases.xml
leosutic2003/08/20 16:16:16 Modified:attributes LICENSE.txt maven.xml project.xml Added: attributes/api project.xml attributes/api/src/java overview.html attributes/api/src/java/org/apache/commons/attributes DefaultCachedRepository.java EmptyCachedRepository.java Indexed.java Inheritable.java package.html RepositoryError.java Util.java attributes/compiler project.xml attributes/compiler/src/java/org/apache/commons/attributes/compiler package.html attributes/site maven.xml project.properties project.xml attributes/site/etc site.jsl stylesheet.css attributes/site/xdocs index.xml navigation.xml attributes/unittest maven.xml project.xml attributes/unittest/src/cl1 TestAttribute.java TestClass.java attributes/unittest/src/cl2 TestAttribute.java TestClass.java attributes/unittest/src/test/org/apache/commons/attributes/test Dependency.java Sample.java Sample2.java SampleIF1.java SampleIF2.java SampleIFJoin.java SampleService.java SuperSample.java ThreadSafe.java Removed: attributes build.xml project.properties attributes/src/java/org/apache/commons/attributes package.html attributes/src/java/org/apache/commons/attributes/impl package.html attributes/src/java/org/apache/commons/attributes/task package.html TagSet.java attributes/src/test/org/apache/commons/attributes/task TagSetTest.java attributes/xdocs index.xml navigation.xml usage.xml usecases.xml Log: Moving in, from Avalon Sandbox. Revision ChangesPath 1.2 +1 -5 jakarta-commons-sandbox/attributes/LICENSE.txt Index: LICENSE.txt === RCS file: /home/cvs/jakarta-commons-sandbox/attributes/LICENSE.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LICENSE.txt 14 Nov 2002 08:09:55 - 1.1 +++ LICENSE.txt 20 Aug 2003 23:16:15 - 1.2 @@ -1,13 +1,9 @@ /* - * $Header$ - * $Revision$ - * $Date$ - * * * * The Apache Software License, Version 1.1 * - * Copyright (c) 1999-2001 The Apache Software Foundation. All rights + * Copyright (c) 1999-2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without 1.4 +80 -20jakarta-commons-sandbox/attributes/maven.xml Index: maven.xml === RCS file: /home/cvs/jakarta-commons-sandbox/attributes/maven.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- maven.xml 18 Dec 2002 19:00:40 - 1.3 +++ maven.xml 20 Aug 2003 23:16:15 - 1.4 @@ -1,21 +1,81 @@ -project default=java:jar xmlns:j=jelly:core xmlns:maven=jelly:maven xmlns:util=jelly:util - - - goal name=test:run prereqs=set.classpath - description=Run a sample test case from the command line -java classname=org.apache.commons.attributes.AttributesTest fork=yes - classpath refid=test.classpath/ -/java - /goal - - goal name=set.classpath prereqs=java:compile, test:compile -path id=test.classpath - pathelement path=target/classes/ - pathelement path=target/test-classes/ - pathelement path=${maven.build.dest}/ - path refid=maven.dependency.classpath/ - /path - /goal - - +project default=do-install xmlns:maven=jelly:maven xmlns:j=jelly:core xmlns:util=jelly:util + +property file=${basedir}/../build.properties/ +property file=${basedir}/../project.properties/ +property file=project.properties/ +property name=maven.jar.manifest.extensions.add value=true/ +property name=maven.checkstyle.format value=avalon/ +property name=pom.organization.identifier value=ASF/ +property name=pom.specificationVersion value=1.0/ + +goal name=do-install +description=Build the Jakarta Commons Attributes distribution. +maven:reactor +basedir=${basedir} +includes=api/project.xml +goals=jar:install-snapshot +banner=Building: +ignoreFailures=false / + +maven:reactor +basedir=${basedir} +
DO NOT REPLY [Bug 22608] New: - Fix GbcTag so it reads insets and inherits from enclosing tags
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22608. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22608 Fix GbcTag so it reads insets and inherits from enclosing tags Summary: Fix GbcTag so it reads insets and inherits from enclosing tags Product: Commons Version: unspecified Platform: All OS/Version: All Status: NEW Severity: Enhancement Priority: Other Component: Jelly AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] The gbc tag should inherit from enclosing tags but it doesn't. You should also be able to specify an insets attribute. I have a patch that addresses both these issues. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 22608] - Fix GbcTag so it reads insets and inherits from enclosing tags
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22608. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22608 Fix GbcTag so it reads insets and inherits from enclosing tags --- Additional Comments From [EMAIL PROTECTED] 2003-08-20 23:23 --- Created an attachment (id=7910) Patch that provides the enhancements - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 22597] New: - minIdle Functionality
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22597. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22597 minIdle Functionality Summary: minIdle Functionality Product: Commons Version: Nightly Builds Platform: All OS/Version: All Status: NEW Severity: Enhancement Priority: Other Component: Pool AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] This function allows the pool to maintain a minimum level of idle connections in the pool once an instance of the evictor thread is started. Mainly designed for the DBCP package however it should work for any object. This really comes in handy for those of you with databases that must go down for backup and don't wish to have you first few users delayed by long waits (possibly on high latency connections) while the DBCP creates new connections. With this patch the object pooler recreate those object automagically as soon as the database comes up. Here's the required patches (against the nightly build on Aug 14, 2003): --- GenericObjectPool.java.orig 2003-08-14 03:20:32.0 -0500 +++ GenericObjectPool.java 2003-08-14 17:34:28.0 -0500 @@ -286,13 +286,20 @@ */ public static final long DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS = 1000L * 60L * 30L; +/** + * The default value for [EMAIL PROTECTED] #getMinIdle}. + * @see #getMinIdle + * @see #setMinIdle + */ +public static final int DEFAULT_MIN_IDLE = 0; + //--- constructors --- /** * Create a new ttGenericObjectPool/tt. */ public GenericObjectPool() { -this (null,DEFAULT_MAX_ACTIVE,DEFAULT_WHEN_EXHAUSTED_ACTION,DEFAULT_MAX_WAIT,DEFAULT_ MAX_IDLE,DEFAULT_TEST_ON_BORROW,DEFAULT_TEST_ON_RETURN,DEFAULT_TIME_BETWEEN_EVIC TION_RUNS_MILLIS,DEFAULT_NUM_TESTS_PER_EVICTION_RUN,DEFAULT_MIN_EVICTABLE_IDLE_T IME_MILLIS,DEFAULT_TEST_WHILE_IDLE); +this (null,DEFAULT_MAX_ACTIVE,DEFAULT_WHEN_EXHAUSTED_ACTION,DEFAULT_MAX_WAIT,DEFAULT_ MAX_IDLE,DEFAULT_MIN_IDLE,DEFAULT_TEST_ON_BORROW,DEFAULT_TEST_ON_RETURN,DEFAULT_ TIME_BETWEEN_EVICTION_RUNS_MILLIS,DEFAULT_NUM_TESTS_PER_EVICTION_RUN,DEFAULT_MIN _EVICTABLE_IDLE_TIME_MILLIS,DEFAULT_TEST_WHILE_IDLE); } /** @@ -300,7 +307,7 @@ * @param factory the (possibly ttnull/tt)PoolableObjectFactory to use to create, validate and destroy objects */ public GenericObjectPool(PoolableObjectFactory factory) { -this (factory,DEFAULT_MAX_ACTIVE,DEFAULT_WHEN_EXHAUSTED_ACTION,DEFAULT_MAX_WAIT,DEFAU LT_MAX_IDLE,DEFAULT_TEST_ON_BORROW,DEFAULT_TEST_ON_RETURN,DEFAULT_TIME_BETWEEN_E VICTION_RUNS_MILLIS,DEFAULT_NUM_TESTS_PER_EVICTION_RUN,DEFAULT_MIN_EVICTABLE_IDL E_TIME_MILLIS,DEFAULT_TEST_WHILE_IDLE); +this (factory,DEFAULT_MAX_ACTIVE,DEFAULT_WHEN_EXHAUSTED_ACTION,DEFAULT_MAX_WAIT,DEFAU LT_MAX_IDLE,DEFAULT_MIN_IDLE,DEFAULT_TEST_ON_BORROW,DEFAULT_TEST_ON_RETURN,DEFAU LT_TIME_BETWEEN_EVICTION_RUNS_MILLIS,DEFAULT_NUM_TESTS_PER_EVICTION_RUN,DEFAULT_ MIN_EVICTABLE_IDLE_TIME_MILLIS,DEFAULT_TEST_WHILE_IDLE); } /** @@ -309,7 +316,7 @@ * @param config a non-ttnull/tt [EMAIL PROTECTED] GenericObjectPool.Config} describing my configuration */ public GenericObjectPool(PoolableObjectFactory factory, GenericObjectPool.Config config) { -this (factory,config.maxActive,config.whenExhaustedAction,config.maxWait,config.maxId le,config.testOnBorrow,config.testOnReturn,config.timeBetweenEvictionRunsMillis, config.numTestsPerEvictionRun,config.minEvictableIdleTimeMillis,config.testWhile Idle); +this (factory,config.maxActive,config.whenExhaustedAction,config.maxWait,config.maxId le,DEFAULT_MIN_IDLE,config.testOnBorrow,config.testOnReturn,config.timeBetweenEv ictionRunsMillis,config.numTestsPerEvictionRun,config.minEvictableIdleTimeMillis ,config.testWhileIdle); } /** @@ -318,7 +325,7 @@ * @param maxActive the maximum number of objects that can be borrowed from me at one time (see [EMAIL PROTECTED] #setMaxActive}) */ public GenericObjectPool(PoolableObjectFactory factory, int maxActive) { -this (factory,maxActive,DEFAULT_WHEN_EXHAUSTED_ACTION,DEFAULT_MAX_WAIT,DEFAULT_MAX_ID LE,DEFAULT_TEST_ON_BORROW,DEFAULT_TEST_ON_RETURN,DEFAULT_TIME_BETWEEN_EVICTION_R UNS_MILLIS,DEFAULT_NUM_TESTS_PER_EVICTION_RUN,DEFAULT_MIN_EVICTABLE_IDLE_TIME_MI LLIS,DEFAULT_TEST_WHILE_IDLE); +this (factory,maxActive,DEFAULT_WHEN_EXHAUSTED_ACTION,DEFAULT_MAX_WAIT,DEFAULT_MAX_ID LE,DEFAULT_MIN_IDLE,DEFAULT_TEST_ON_BORROW,DEFAULT_TEST_ON_RETURN,DEFAULT_TIME_B ETWEEN_EVICTION_RUNS_MILLIS,DEFAULT_NUM_TESTS_PER_EVICTION_RUN,DEFAULT_MIN_EVICT
DO NOT REPLY [Bug 22597] - minIdle Functionality
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22597. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22597 minIdle Functionality --- Additional Comments From [EMAIL PROTECTED] 2003-08-20 19:27 --- Created an attachment (id=7900) Patch for GenericObjectPool.java - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 22597] - minIdle Functionality
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22597. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22597 minIdle Functionality --- Additional Comments From [EMAIL PROTECTED] 2003-08-20 19:28 --- Created an attachment (id=7901) Patch for GenericObjectPoolFactory.java - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [collections] Questions....
Agreed. Trying to 'package' defensively :) SingletonListIterator could become a static on SingletonIterator: SingletonIterator.asListIterator(Object) or some such. Mainly just trying to make Collections easier to grokk. I hate tricky solution. Compared with this, having two SingletonIterator and SingletonListIterator does make more sense. Second question. What's ListIteratorWrapper useful for? It seems to just let us throw a normal Iterator into something requiring ListIterator-ness, except then it'll go ahead and throw exceptions on most methods. So is it just an iterator that can get the previous element? Yep, it allows forwards and backwards movement through any iterator, not just list iterators. And no, I don't know why its useful. So basically a decorator pattern, but not a stunningly useful one. Again, this looks ugly too but I don't know better solution. Remember adding things not only make things convenient but comes with cost of maintenance, documentation and difficulty to comprehend. Takuya Murata - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 22598] - minIdle Functionality for DBCP via Patches Posted for commons-pool
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22598. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22598 minIdle Functionality for DBCP via Patches Posted for commons-pool --- Additional Comments From [EMAIL PROTECTED] 2003-08-20 19:38 --- Created an attachment (id=7903) Patch for BasicDataSourceFactory.java - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [collections] Questions....
I personally have a problem with the use of the class name Singleton. Singleton is a well known pattern for only having one instance of an Object in an environment, this class does not achive this. I would think a name likeSingleEntryIterator/TrivialIterator/MonoIterator or some such would be a better descriptive name. Good point. A term singleton is certainly misleading given design patterns have such presence now. I like SingleEntry. It sounds intuitive. To me, this solution sounds good. There is no tricky choice whether SingletonIterator or SingletonListIterator. And we can avoid a big xxxUtil classes instead of small objects and classes, resembling traditional imperative languages such as C. The whole point of Iterator is that it is collection type independent - no matter what data structure in place iterator should supply you with every Object in it - ordering appropriately if required. If it is being used for code expecting a ListIterator I would say that that code needs to be made more agnostic of the underlying implementation (given that you would be using this quick method of supplying just the one value). Though in fairness making it return a ListItertor (but keep the signature to Iterator) would be no big deal. Not sure what you meant. I am not sure if it is valid with the contract of interfaces to implement both Set and List because ListIterator doesn't make sense with listIterator but it doesn't look elegant to have two SingletonList and SingletonSet classes. Perhaps it would be better to create a class SingleEntryCollection which extends collection and implements the iterator method as well as the rest. The cost is one additional object for your siple use case but it may provide a clearer picture of what is being performed... Why do you think implementing Collection is better rather than List? We can forget about Set because Collections.singleton returns it. Need of SortedSet is probably rare enough to be ignored. SingletonMap probably is useful when you need an iterator returning Map.Entry. class SingleEntryMap { SingleEntryMap (Object key, Object value); } If the Collection itself implements Iterator then it can just return itself in response to the method. I can't see a name clash except remove() and they are different signatures in both return type and parameters... No, equality should be a problem as you pointed out. No? Besides, a class that is a collection as well as iterator might be confusing. The only way to avoid an additional object I think is use factory methods in xxxUtils. In that way, one class can implement collection and iterator without confusion. If I'm missing the point of what you're trying to do here let me know My point is if we can more generalize this problem. I thought if we have a collection for solo object, while such class is useful, then we can get an iterator for it easily and more importantly in the way that is common and intuitive using iterator() and listIterator(). Having two classes for Iterator and ListIterator respectively is straightforward than SingletonListIterator for both. Anyway, I like SingleEntryCollection too. It is more general than having classes for rather exceptionally rare use. Takuya Murata - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[lang] Lang 2.0 release?
Seems that since RC3, we've just: removed an unused private attribute updated javadoc in a few places removed a method moved 2 classes up a package from util removed a class from util While I could build an RC4, I'm going to be hopeful and build a release build. CVS tags can always be deleted/moved in case of major issues again. If no one can find a problem by tomorrow morning, I'll call a vote on Commons-dev, Ccing the PMC. Assuming things go well, we ought to get 3 non-Lang +1's by the weekend. I'll aim to do the release stuff over the weekend [mirrors will be new to me] and have the release on the site by the end of the weekend, which always seems to be good timing. Any thoughts? Release build in: http://www.apache.org/~bayard/commons-lang-2.0/ Also, the following file from JDiff is very useful, I hadn't noticed it before: http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to-2.0/missingSinces.txt [although hopefully it's something we can leave to fix until 2.1] Hen - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[lang] Lang website
As is probably obvious by now, I'm planning to publish a JDiff report on the website as a part of the Lang site. I think it's very useful for us. Should I also modify it to list the tools that have been useful to us? Maven, Clover, FindBugs and JDiff being the ones that spring to mind? and Ant :) Hen - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[commons] contribute?
Hello, I really don't want to make a noise. I responded to SingletonIterator issues because a question was posted. All what I want to do is help this project simply because commons are useful when I program. I just show solutions I like but don't mean to denounce efforts already made and respect people who maintain code. To make commit, I have some questions to pose. 1. Is code of primitive collections generated automatically? If not, I think it would be better to use a script written in Java or whatever to generate such code. 2. What is a current situation about HashMap? Is the problem about implementation or is there a plan to make a change in HashMap interface? 3. Where is a TODO list at all? I searched CVS thoroughly but couldn't find one. Bugzilla seems used as TODO instead but unfortunately I couldn't use it by my browser Safari. Is there any other way to access TODOs? Takuya Murata [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [collections] contribute?
[It's [collections] rather than [commons] by the way] On Thu, 21 Aug 2003, Takuya Murata wrote: I really don't want to make a noise. I responded to SingletonIterator Noise is good. Apologies if the noise is intimidating sometimes. issues because a question was posted. All what I want to do is help this project simply because commons are useful when I program. I just show solutions I like but don't mean to denounce efforts already made and respect people who maintain code. To make commit, I have some questions to pose. 1. Is code of primitive collections generated automatically? If not, I think it would be better to use a script written in Java or whatever to generate such code. Writing it in Ant would be cool :) Will let Rodney answer here though as it's his area I think. 2. What is a current situation about HashMap? Is the problem about implementation or is there a plan to make a change in HashMap interface? java.util.HashMap? Did you really mean HashMap? 3. Where is a TODO list at all? I searched CVS thoroughly but couldn't find one. Bugzilla seems used as TODO instead but unfortunately I couldn't use it by my browser Safari. Is there any other way to access TODOs? I've found problems with Bugzilla in Safari too. I have to drop back to IE to do Bugzilla things, which is a pain. About the only thing I regularly have to drop out of Safari for. There are some TODO's in the STATUS.html, which is the jakarta-commons/collections cvs directory. Hen - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [lang] Lang 2.0 release?
Fine w/ me but I am not a Maven user at the moment. Still using Ant... Gary -Original Message- From: Phil Steitz [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 20, 2003 21:58 To: Jakarta Commons Developers List Subject: Re: [lang] Lang 2.0 release? Gary Gregory wrote: Very nice maven stuff! BTW, the checkstyle report complains about Line is longer than 80 characters where I clearly recall reading about a Jakarta guideline of 120 somewhere, of course, I can not longer find this reference, darn. Google shows a couple of checkstyle reports that complain about line lengths 120 so I know I did not dream this up! Does this ring a bell to anyone else? The checkstyle.properties file for lang specifies 120. I think I have seen some other other Jakarta projects use 80. The problem is that the maven checkstyle task is not reading this file, since maven.checkstyle.properties has been commented out (since B10 croaks on the old .properties file format) I was just writing a note asking if anyone had any objections to the following changes, which will fix this among other things: 1. Mods to project.xml: * Restrict tests to Suites run by Ant build (so maven build does not have to run through perf and other tests each time) * Add a reports element to restrict reports 2. Add checkstyle.xml translating (to the best of my limited abilities) the current checkstyle.properties (so maven will not generate so many checkstyle errors) 3. Modify project.properties to refer to checkstyle.xml Any problem with my committing these changes? Phil - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [lang] Lang 2.0 release?
I would regenerate with 1.4.2 to get the best Javadoc possible. But here is the skinny: With Mozilla 1.5 Alpha, I get messed up rendering and with IE 6.0, I get a pretty rendering. So, either IE is really clever or this is a Mozilla bug. I just updated today from M 1.4 to 1.5 Alpha and I *do* recall seing the same problem with 1.4. Gary -Original Message- From: Henri Yandell [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 20, 2003 21:44 To: Jakarta Commons Developers List Subject: RE: [lang] Lang 2.0 release? I'm using Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_01-b03) on Linux for the builds. I can go ahead and upgrade that to 1.4.2 tomorrow and see if that improves. Hen On Thu, 21 Aug 2003, Gary Gregory wrote: I've seen this Javadoc/Brower rendering problem before and I seem to recall that I saw something different b/w Mozilla 1.4 and IE 6.0. Gary -Original Message- From: Phil Steitz [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 20, 2003 21:21 To: Jakarta Commons Developers List Subject: Re: [lang] Lang 2.0 release? Henri Yandell wrote: On Wed, 20 Aug 2003, Gary Gregory wrote: This is all good news. I have two Q's: (1) What about an RC-4 that is publicized to the commons-user list such that real users can raise issues such that we can: (a) document them in a migration doc or (b) fix them. Dunno. Do we want users to be using RCs? I think I'd prefer to have them use the x.0 and release an x.0.1 for any issues etc. (2) It's seems trivial to add the missing @since tags JDiff complains about. Or that just too anal? S'not too hard to remove the tag and redo the build. Feel free to commit them :) Hen Gary -Original Message- From: Henri Yandell [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 20, 2003 20:01 To: Jakarta Commons Developers List Subject: [lang] Lang 2.0 release? Seems that since RC3, we've just: removed an unused private attribute updated javadoc in a few places removed a method moved 2 classes up a package from util removed a class from util While I could build an RC4, I'm going to be hopeful and build a release build. CVS tags can always be deleted/moved in case of major issues again. If no one can find a problem by tomorrow morning, I'll call a vote on Commons-dev, Ccing the PMC. Assuming things go well, we ought to get 3 non-Lang +1's by the weekend. I'll aim to do the release stuff over the weekend [mirrors will be new to me] and have the release on the site by the end of the weekend, which always seems to be good timing. Any thoughts? There is something funny in the javadoc in the .gz. Somehow the @author tags were transformed incorrectly. Here is the HTML source for the author element from the .gz/docs for CharSetUtils (same happens for every class that has more than one author): dtbAuthor:/bdda href=[EMAIL PROTECTED]Henri Yandell/a/dd , Stephen Colebourne/dd , Phil Steitz/dd On Mozilla, at least, this causes extra line breaks. When I use the 1.4.2 doclet to generate, I get well-formed HTML: dtbAuthor:/b/dt dda href=[EMAIL PROTECTED]Henri Yandell/a, Stephen Colebourne, Phil Steitz/dd What JDK did you use to generate the javadoc? Is this a known bug/feature? Phil - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [lang] Lang 2.0 release?
I think there could be something's wrong with project.xml processing. The page http://www.apache.org/~bayard/commons-lang-2.0/maven/team-list.html lists 2 contributors project.xml but the 1st person (Ringo De Smet) is listed twice and the 2nd (Steve Downey) is not listed at all. Gary -Original Message- From: Henri Yandell [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 20, 2003 20:01 To: Jakarta Commons Developers List Subject: [lang] Lang 2.0 release? Seems that since RC3, we've just: removed an unused private attribute updated javadoc in a few places removed a method moved 2 classes up a package from util removed a class from util While I could build an RC4, I'm going to be hopeful and build a release build. CVS tags can always be deleted/moved in case of major issues again. If no one can find a problem by tomorrow morning, I'll call a vote on Commons-dev, Ccing the PMC. Assuming things go well, we ought to get 3 non-Lang +1's by the weekend. I'll aim to do the release stuff over the weekend [mirrors will be new to me] and have the release on the site by the end of the weekend, which always seems to be good timing. Any thoughts? Release build in: http://www.apache.org/~bayard/commons-lang-2.0/ Also, the following file from JDiff is very useful, I hadn't noticed it before: http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to- 2.0/missingSinces.txt [although hopefully it's something we can leave to fix until 2.1] Hen - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [lang] Lang 2.0 release?
Here's another nit: On http://www.apache.org/~bayard/commons-lang-2.0/maven/dependencies.html, the text reads These dependencies are required to compile and run the application but the only item is JUnit, clearly not a runtime dependency. [lang] is not an application either. I do not know if we can do this in Maven, but there is a need to distinguish b/w runtime and dev-time. Gary -Original Message- From: Henri Yandell [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 20, 2003 20:01 To: Jakarta Commons Developers List Subject: [lang] Lang 2.0 release? Seems that since RC3, we've just: removed an unused private attribute updated javadoc in a few places removed a method moved 2 classes up a package from util removed a class from util While I could build an RC4, I'm going to be hopeful and build a release build. CVS tags can always be deleted/moved in case of major issues again. If no one can find a problem by tomorrow morning, I'll call a vote on Commons-dev, Ccing the PMC. Assuming things go well, we ought to get 3 non-Lang +1's by the weekend. I'll aim to do the release stuff over the weekend [mirrors will be new to me] and have the release on the site by the end of the weekend, which always seems to be good timing. Any thoughts? Release build in: http://www.apache.org/~bayard/commons-lang-2.0/ Also, the following file from JDiff is very useful, I hadn't noticed it before: http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to- 2.0/missingSinces.txt [although hopefully it's something we can leave to fix until 2.1] Hen - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [lang] Lang 2.0 release?
Gary Gregory wrote: I would regenerate with 1.4.2 to get the best Javadoc possible. But here is the skinny: With Mozilla 1.5 Alpha, I get messed up rendering and with IE 6.0, I get a pretty rendering. So, either IE is really clever or this is a Mozilla bug. I just updated today from M 1.4 to 1.5 Alpha and I *do* recall seing the same problem with 1.4. IE is being loose and easy as usual, ignoring unmatched end tags. Look at the HTML source -- it is not well-formed. There are extra /dd's after the first two names. The problem is in the HTML generation, which works correctly using 1.4.2. Phil tags were transformed incorrectly. Here is the HTML source for the author element from the .gz/docs for CharSetUtils (same happens for every class that has more than one author): dtbAuthor:/bdda href=[EMAIL PROTECTED]Henri Yandell/a/dd , Stephen Colebourne/dd , Phil Steitz/dd On Mozilla, at least, this causes extra line breaks. When I use the 1.4.2 doclet to generate, I get well-formed HTML: dtbAuthor:/b/dt dda href=[EMAIL PROTECTED]Henri Yandell/a, Stephen Colebourne, Phil Steitz/dd What JDK did you use to generate the javadoc? Is this a known bug/feature? Phil - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang CharSet.java
ggregory2003/08/20 22:25:34 Modified:lang/src/java/org/apache/commons/lang CharSet.java Log: Add @since 2.0 tags based on http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to-2.0/missingSinces.txt Revision ChangesPath 1.18 +33 -6 jakarta-commons/lang/src/java/org/apache/commons/lang/CharSet.java Index: CharSet.java === RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/CharSet.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- CharSet.java 19 Aug 2003 00:11:20 - 1.17 +++ CharSet.java 21 Aug 2003 05:25:34 - 1.18 @@ -69,6 +69,7 @@ * @author Stephen Colebourne * @author Phil Steitz * @author Pete Gieser + * @author a href=mailto:[EMAIL PROTECTED]Gary Gregory/a * @since 1.0 * @version $Id$ */ @@ -77,22 +78,43 @@ /** Serialization lock, Lang version 2.0. */ private static final long serialVersionUID = 5947847346149275958L; -/** A CharSet defining no characters. */ +/** + * A CharSet defining no characters. + * @since 2.0 + */ public static final CharSet EMPTY = new CharSet((String) null); -/** A CharSet defining ASCII alphabetic characters a-zA-Z. */ + +/** + * A CharSet defining ASCII alphabetic characters a-zA-Z. + * @since 2.0 + */ public static final CharSet ASCII_ALPHA = new CharSet(a-zA-Z); -/** A CharSet defining ASCII alphabetic characters a-z. */ + +/** + * A CharSet defining ASCII alphabetic characters a-z. + * @since 2.0 + */ public static final CharSet ASCII_ALPHA_LOWER = new CharSet(a-z); -/** A CharSet defining ASCII alphabetic characters A-Z. */ + +/** + * A CharSet defining ASCII alphabetic characters A-Z. + * @since 2.0 + */ public static final CharSet ASCII_ALPHA_UPPER = new CharSet(A-Z); -/** A CharSet defining ASCII alphabetic characters 0-9. */ + +/** + * A CharSet defining ASCII alphabetic characters 0-9. + * @since 2.0 + */ public static final CharSet ASCII_NUMERIC = new CharSet(0-9); /** * A Map of the common cases used in the factory. * Subclasses can add more common patterns if desired. + * @since 2.0 */ protected static final Map COMMON = new HashMap(); + static { COMMON.put(null, EMPTY); COMMON.put(, EMPTY); @@ -148,6 +170,7 @@ * * @param setStr the String describing the set, may be null * @return a CharSet instance + * @since 2.0 */ public static CharSet getInstance(String setStr) { Object set = COMMON.get(setStr); @@ -162,6 +185,7 @@ * pConstructs a new CharSet using the set syntax./p * * @param setStr the String describing the set, may be null + * @since 2.0 */ protected CharSet(String setStr) { super(); @@ -223,6 +247,7 @@ * pGets the internal set as an array of CharRange objects./p * * @return an array of immutable CharRange objects + * @since 2.0 */ public CharRange[] getCharRanges() { return (CharRange[]) set.toArray(new CharRange[set.size()]); @@ -257,6 +282,7 @@ * * @param obj the object to compare to * @return true if equal + * @since 2.0 */ public boolean equals(Object obj) { if (obj == this) { @@ -273,6 +299,7 @@ * pGets a hashCode compatable with the equals method./p * * @return a suitable hashCode + * @since 2.0 */ public int hashCode() { return 89 + set.hashCode(); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [lang] Lang 2.0 release?
Yeah. This bug has me baffled. I've never had this problem with other mavenised projects, and this has been happening in multiple versions of maven [at least since b7]. Hen On Thu, 21 Aug 2003, Gary Gregory wrote: I think there could be something's wrong with project.xml processing. The page http://www.apache.org/~bayard/commons-lang-2.0/maven/team-list.html lists 2 contributors project.xml but the 1st person (Ringo De Smet) is listed twice and the 2nd (Steve Downey) is not listed at all. Gary -Original Message- From: Henri Yandell [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 20, 2003 20:01 To: Jakarta Commons Developers List Subject: [lang] Lang 2.0 release? Seems that since RC3, we've just: removed an unused private attribute updated javadoc in a few places removed a method moved 2 classes up a package from util removed a class from util While I could build an RC4, I'm going to be hopeful and build a release build. CVS tags can always be deleted/moved in case of major issues again. If no one can find a problem by tomorrow morning, I'll call a vote on Commons-dev, Ccing the PMC. Assuming things go well, we ought to get 3 non-Lang +1's by the weekend. I'll aim to do the release stuff over the weekend [mirrors will be new to me] and have the release on the site by the end of the weekend, which always seems to be good timing. Any thoughts? Release build in: http://www.apache.org/~bayard/commons-lang-2.0/ Also, the following file from JDiff is very useful, I hadn't noticed it before: http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to- 2.0/missingSinces.txt [although hopefully it's something we can leave to fix until 2.1] Hen - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang/enum EnumUtils.java
ggregory2003/08/20 22:29:08 Modified:lang/src/java/org/apache/commons/lang/enum EnumUtils.java Log: Add @since 2.0 tags based on http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to-2.0/missingSinces.txt Revision ChangesPath 1.10 +3 -1 jakarta-commons/lang/src/java/org/apache/commons/lang/enum/EnumUtils.java Index: EnumUtils.java === RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/enum/EnumUtils.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- EnumUtils.java18 Aug 2003 02:22:24 - 1.9 +++ EnumUtils.java21 Aug 2003 05:29:08 - 1.10 @@ -63,6 +63,7 @@ * @see Enum * @see ValuedEnum * @author Stephen Colebourne + * @author Gary Gregory * @since 1.0 * @version $Id$ */ @@ -70,6 +71,7 @@ /** * Public constructor. This class should not normally be instantiated. + * @since 2.0 */ public EnumUtils() { } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang/exception NestableDelegate.java
ggregory2003/08/20 22:33:10 Modified:lang/src/java/org/apache/commons/lang/exception NestableDelegate.java Log: Add @since 2.0 tags based on http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to-2.0/missingSinces.txt Revision ChangesPath 1.19 +13 -1 jakarta-commons/lang/src/java/org/apache/commons/lang/exception/NestableDelegate.java Index: NestableDelegate.java === RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/exception/NestableDelegate.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- NestableDelegate.java 18 Aug 2003 02:22:24 - 1.18 +++ NestableDelegate.java 21 Aug 2003 05:33:10 - 1.19 @@ -100,12 +100,14 @@ /** * Whether to print the stack trace top-down. * This public flag may be set by calling code, typically in initialisation. + * @since 2.0 */ public static boolean topDown = true; /** * Whether to trim the repeated stack trace. * This public flag may be set by calling code, typically in initialisation. + * @since 2.0 */ public static boolean trimStackFrames = true; @@ -115,6 +117,7 @@ * * @param nestable the Nestable implementation (imust/i extend * [EMAIL PROTECTED] java.lang.Throwable}) + * @since 2.0 */ public NestableDelegate(Nestable nestable) { if (nestable instanceof Throwable) { @@ -135,6 +138,7 @@ * @throws IndexOutOfBoundsException if the codeindex/code argument is * negative or not less than the count of codeThrowable/codes in the * chain + * @since 2.0 */ public String getMessage(int index) { Throwable t = this.getThrowable(index); @@ -156,6 +160,7 @@ * java.lang.Throwable}. * @return The concatenated message for this and all nested * codeThrowable/codes + * @since 2.0 */ public String getMessage(String baseMsg) { StringBuffer msg = new StringBuffer(); @@ -186,6 +191,7 @@ * operation. * * @return the error messages + * @since 2.0 */ public String[] getMessages() { Throwable[] throwables = this.getThrowables(); @@ -209,6 +215,7 @@ * @throws IndexOutOfBoundsException if the codeindex/code argument is * negative or not less than the count of codeThrowable/codes in the * chain + * @since 2.0 */ public Throwable getThrowable(int index) { if (index == 0) { @@ -223,6 +230,7 @@ * codeNestable/code contained by this delegate. * * @return the throwable count + * @since 2.0 */ public int getThrowableCount() { return ExceptionUtils.getThrowableCount(this.nestable); @@ -234,6 +242,7 @@ * element for each codeThrowable/code. * * @return the codeThrowable/codes + * @since 2.0 */ public Throwable[] getThrowables() { return ExceptionUtils.getThrowables(this.nestable); @@ -253,6 +262,7 @@ * @throws IndexOutOfBoundsException if the codefromIndex/code argument * is negative or not less than the count of codeThrowable/codes in the * chain + * @since 2.0 */ public int indexOfThrowable(Class type, int fromIndex) { if (fromIndex 0) { @@ -355,6 +365,7 @@ * * @param t The codeThrowable/code. * @return An array of strings describing each stack frame. + * @since 2.0 */ protected String[] getStackFrames(Throwable t) { StringWriter sw = new StringWriter(); @@ -375,6 +386,7 @@ * one just on top. * * @param stacks The list containing String[] elements + * @since 2.0 */ protected void trimStackFrames(List stacks) { for (int size=stacks.size(), i=size-1; i 0; i--) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang SerializationUtils.java
ggregory2003/08/20 22:35:23 Modified:lang/src/java/org/apache/commons/lang SerializationUtils.java Log: Add @since 2.0 tags based on http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to-2.0/missingSinces.txt Revision ChangesPath 1.11 +3 -1 jakarta-commons/lang/src/java/org/apache/commons/lang/SerializationUtils.java Index: SerializationUtils.java === RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/SerializationUtils.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- SerializationUtils.java 18 Aug 2003 02:22:23 - 1.10 +++ SerializationUtils.java 21 Aug 2003 05:35:23 - 1.11 @@ -80,6 +80,7 @@ * @author a href=mailto:[EMAIL PROTECTED]Daniel Rall/a * @author Stephen Colebourne * @author Jeff Varszegi + * @author Gary Gregory * @since 1.0 * @version $Id$ */ @@ -91,6 +92,7 @@ * * pThis constructor is public to permit tools that require a JavaBean instance * to operate./p + * @since 2.0 */ public SerializationUtils() { super(); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [lang] Lang 2.0 release?
Yeah, they don't distinguish between the two yet as far as I know. It was a 'we need to do this' comment in the first project.xml I saw back in maven b1(?), and it's quietly vanished. Hen On Thu, 21 Aug 2003, Gary Gregory wrote: Here's another nit: On http://www.apache.org/~bayard/commons-lang-2.0/maven/dependencies.html, the text reads These dependencies are required to compile and run the application but the only item is JUnit, clearly not a runtime dependency. [lang] is not an application either. I do not know if we can do this in Maven, but there is a need to distinguish b/w runtime and dev-time. Gary -Original Message- From: Henri Yandell [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 20, 2003 20:01 To: Jakarta Commons Developers List Subject: [lang] Lang 2.0 release? Seems that since RC3, we've just: removed an unused private attribute updated javadoc in a few places removed a method moved 2 classes up a package from util removed a class from util While I could build an RC4, I'm going to be hopeful and build a release build. CVS tags can always be deleted/moved in case of major issues again. If no one can find a problem by tomorrow morning, I'll call a vote on Commons-dev, Ccing the PMC. Assuming things go well, we ought to get 3 non-Lang +1's by the weekend. I'll aim to do the release stuff over the weekend [mirrors will be new to me] and have the release on the site by the end of the weekend, which always seems to be good timing. Any thoughts? Release build in: http://www.apache.org/~bayard/commons-lang-2.0/ Also, the following file from JDiff is very useful, I hadn't noticed it before: http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to- 2.0/missingSinces.txt [although hopefully it's something we can leave to fix until 2.1] Hen - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang CharSet.java
ggregory2003/08/20 22:26:02 Modified:lang/src/java/org/apache/commons/lang CharSet.java Log: Follow same @author style. Revision ChangesPath 1.19 +2 -2 jakarta-commons/lang/src/java/org/apache/commons/lang/CharSet.java Index: CharSet.java === RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/CharSet.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- CharSet.java 21 Aug 2003 05:25:34 - 1.18 +++ CharSet.java 21 Aug 2003 05:26:02 - 1.19 @@ -69,7 +69,7 @@ * @author Stephen Colebourne * @author Phil Steitz * @author Pete Gieser - * @author a href=mailto:[EMAIL PROTECTED]Gary Gregory/a + * @author Gary Gregory * @since 1.0 * @version $Id$ */ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang StringUtils.java
ggregory2003/08/20 22:57:21 Modified:lang/src/java/org/apache/commons/lang StringUtils.java Log: Add @since 2.0 tags based on http://www.apache.org/~bayard/commons-lang-2.0/Commons-Lang-1.0.1-to-2.0/missingSinces.txt Revision ChangesPath 1.104 +49 -1 jakarta-commons/lang/src/java/org/apache/commons/lang/StringUtils.java Index: StringUtils.java === RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/StringUtils.java,v retrieving revision 1.103 retrieving revision 1.104 diff -u -r1.103 -r1.104 --- StringUtils.java 19 Aug 2003 00:11:20 - 1.103 +++ StringUtils.java 21 Aug 2003 05:57:21 - 1.104 @@ -166,6 +166,7 @@ /** * The empty String code/code. + * @since 2.0 */ public static final String EMPTY = ; @@ -252,6 +253,7 @@ * * @param str the String to check, may be null * @return codetrue/code if the String is null, empty or whitespace + * @since 2.0 */ public static boolean isBlank(String str) { int strLen; @@ -280,6 +282,7 @@ * @param str the String to check, may be null * @return codetrue/code if the String is * not empty and not null and not whitespace + * @since 2.0 */ public static boolean isNotBlank(String str) { int strLen; @@ -366,6 +369,7 @@ * @param str the String to be trimmed, may be null * @return the trimmed String, * codenull/code if only chars lt;= 32, empty or null String input + * @since 2.0 */ public static String trimToNull(String str) { String ts = trim(str); @@ -391,6 +395,7 @@ * * @param str the String to be trimmed, may be null * @return the trimmed String, or an empty String if codenull/code input + * @since 2.0 */ public static String trimToEmpty(String str) { return (str == null ? EMPTY : str.trim()); @@ -445,6 +450,7 @@ * @param str the String to be stripped, may be null * @return the stripped String, * codenull/code if whitespace, empty or null String input + * @since 2.0 */ public static String stripToNull(String str) { if (str == null) { @@ -474,6 +480,7 @@ * * @param str the String to be stripped, may be null * @return the trimmed String, or an empty String if codenull/code input + * @since 2.0 */ public static String stripToEmpty(String str) { return (str == null ? EMPTY : strip(str, null)); @@ -733,6 +740,7 @@ * @param searchChar the character to find * @return the first index of the search character, * -1 if no match or codenull/code string input + * @since 2.0 */ public static int indexOf(String str, char searchChar) { if (str == null || str.length() == 0) { @@ -764,6 +772,7 @@ * @param startPos the start position, negative treated as zero * @return the first index of the search character, * -1 if no match or codenull/code string input + * @since 2.0 */ public static int indexOf(String str, char searchChar, int startPos) { if (str == null || str.length() == 0) { @@ -792,6 +801,7 @@ * @param searchStr the String to find, may be null * @return the first index of the search String, * -1 if no match or codenull/code string input + * @since 2.0 */ public static int indexOf(String str, String searchStr) { if (str == null || searchStr == null) { @@ -829,6 +839,7 @@ * @param startPos the start position, negative treated as zero * @return the first index of the search String, * -1 if no match or codenull/code string input + * @since 2.0 */ public static int indexOf(String str, String searchStr, int startPos) { if (str == null || searchStr == null) { @@ -860,6 +871,7 @@ * @param searchChar the character to find * @return the last index of the search character, * -1 if no match or codenull/code string input + * @since 2.0 */ public static int lastIndexOf(String str, char searchChar) { if (str == null || str.length() == 0) { @@ -893,6 +905,7 @@ * @param startPos the start position * @return the last index of the search character, * -1 if no match or codenull/code string input + * @since 2.0 */ public static int lastIndexOf(String str, char searchChar, int startPos) { if (str == null || str.length() == 0) { @@ -921,6 +934,7 @@ * @param searchStr the String to find, may be null * @return the last index of the search String, * -1 if no
RE: Grabbing a header from the server's response
Ah, thank you all. I was looking all over the javadocs, but couldn't find which classes to use. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Tuesday, August 19, 2003 5:48 PM To: 'Commons HttpClient Project' Subject: RE: Grabbing a header from the server's response I do it like this, for example, to get the new URL from the location header: Header header = httpget.getResponseHeader(Location); String newuri = header.getValue(); Ross - get lined up at http://www.careerfish.com -Original Message- From: Mark Castillo [mailto:[EMAIL PROTECTED] Sent: Tuesday, August 19, 2003 7:34 PM To: '[EMAIL PROTECTED]' Subject: Grabbing a header from the server's response After sending a GET request to a server, how to I pick out the name/value of a specific header from the server's response? Thank you. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: newbie questions
On 21/08/2003 9:04 AM, Yue Luo [EMAIL PROTECTED] wrote: Hi, I am new to httpclient. I have a few general questions about the library and wonder if you could help me. I think you've probably already found the stuff on our website, but people who are new to HttpClient should definitely read through the tutorial (http://jakarta.apache.org/commons/httpclient/tutorial.html) before trying to write code that uses HttpClient. 1. HTTP 1.1 standard supports pipelining (RFC2616 section 8.1.2.2). I looked at HttpMethodBase.java. It seems that httpclient does not allow pipelining. Is it true? Is pipelining used in any popular browsers? No, HttpClient does not use pipelining, though it does support connection reuse. There are enough problems with connections being dropped unexpectedly (as allowed by the standard) with persistent connections let alone using pipelining with that. IE does not seem to use pipelining and I think by default mozilla doesn't either though it has recently acquired an option to do so. 2. I did not see httpclient using java.nio package. So I guess that it does not provide asynchronous API either. Is there any plan to take advantage of the nio package and add asynchronous API? HttpClient supports Java 1.2 and above and as such nio is not available. If you need asynchronous downloads you should spawn a separate thread (or utilise a thread pool). 3. The links to mailing lists on the page: http://jakarta.apache.org/commons/httpclient/mail-lists.html does not work. Will anyone put the correct link on the web? The archive links do appear to be broken (though subscribe and unsubscribe seem to be right). I'm not sure what the URL for the official archives are - anyone know? Should we just point to one of the other external archives that are available? Yue Regards, Adrian Sutton. -- Intencha tomorrow's technology today Ph: 38478913 0422236329 Suite 8/29 Oatland Crescent Holland Park West 4121 Australia QLD www.intencha.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]