Re: [vfs] LRUFilesCache safe for production use? Google App Engine/Java plug-in

2009-05-26 Thread Ralph Goers


On May 25, 2009, at 7:10 PM, Vince Bonfanti wrote:

I'm working on a Google App Engine/Java (GAE/J) plug-in for VFS  
(it's almost

done) and have a few questions:

1. Is the LRUFilesCache safe for production use? GAE/J won't allow  
using
the default SoftRefFilesCache because it doesn't allow background  
threads.
I've found a few really old messages saying things like  
SoftRefFilesCache
is the only implementation suitable for production use and other  
file

cache implementation might cause resouce leaks, etc.


To be honest, I've only glanced over these classes.




2. I might be interested in contributing my implementation, either  
as a 3rd
party plug-in or to be included with the standard VFS package, but  
don't
know how to go about this. Is there someone currently in charge of  
VFS?




This is an Apache project. The Apache Commons PMC manages all the  
Commons projects, but it is up to the committers to collectively make  
decisions. The normal route of contributing is to create a Jira issue  
and attach a patch. One of the VFS committers will review it and then  
comment on it one way or another. However, as this is a completely  
volunteer organization it is unpredictable how long that might take.  
If you continue to contribute and participate on this list the  
community will take notice and at some point might offer commit  
rights. See http://www.apache.org/foundation/how-it-works.html#meritocracy 
.


Ralph


-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



RE: [vfs] LRUFilesCache safe for production use? Google App Engine/Java plug-in

2009-05-26 Thread Mario Ivankovits
Hi!

 1. Is the LRUFilesCache safe for production use? GAE/J won't allow using
 the default SoftRefFilesCache because it doesn't allow background threads.
 I 've found a few really old messages saying things like SoftRefFilesCache
 is the only implementation suitable for production use and other file
 cache implementation might cause resouce leaks, etc.

Yes, these messages are still true. Sad to say that, but I realized that too 
late and planned to fix this, which is not that easy.

Using any thing else than the SoftRefFilesChache will introduce memory leaks as 
the file-system object will not be discarded. You have to call close() on the 
filesystem, or even better call close on the DefaultFileSystemManager at all 
and do not use the VFS.getManager() singleton approach.
That will also ensure that each and every resource used by the underlaying 
libraries are closed then too.


Ciao,
Mario

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [vfs] LRUFilesCache safe for production use? Google App Engine/Java plug-in

2009-05-26 Thread Ralph Goers


On May 25, 2009, at 11:28 PM, Mario Ivankovits wrote:


Hi!

1. Is the LRUFilesCache safe for production use? GAE/J won't allow  
using
the default SoftRefFilesCache because it doesn't allow background  
threads.
I 've found a few really old messages saying things like  
SoftRefFilesCache
is the only implementation suitable for production use and other  
file

cache implementation might cause resouce leaks, etc.


Yes, these messages are still true. Sad to say that, but I realized  
that too late and planned to fix this, which is not that easy.


Using any thing else than the SoftRefFilesChache will introduce  
memory leaks as the file-system object will not be discarded. You  
have to call close() on the filesystem, or even better call close on  
the DefaultFileSystemManager at all and do not use the  
VFS.getManager() singleton approach.
That will also ensure that each and every resource used by the  
underlaying libraries are closed then too.


Actually, I commented out the call to filesystemclose in  
SoftRelFilesCache. While looking at the FileSystem implementation I  
realized that the way close is implemented is not thread safe and  
can't be called while the system is running.  I believe the fix for  
this is non-trivial.


Ralph


-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[Commons Wiki] Update of CLI by EmmanuelBourg

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by EmmanuelBourg:
http://wiki.apache.org/commons/CLI

The comment on the change is:
Updated the URL of the project

--
  = About the Commons CLI Library =
  
  This wiki site is used for discussion of topics associated with the
- commons-cli project whose home page is http://jakarta.apache.org/commons/cli
+ commons-cli project whose home page is http://commons.apache.org/cli
  
  
  
@@ -79, +79 @@

  
  The above code will not work in all cases, hence I discarded it. The problem 
is that the Activator.CreateInstance method's second parameter requires either 
a null value for a parameterless constructor, or a parameter array to pass to 
the constructor of the type you are attempting to create. As seen in 
OptionTest.java (and now OptionTest.cs), the DefaultOption class that extends 
Option does not implement a parameterless constructor, and in fact does not 
even override all of  Option's constructors, just one. So, while using the 
CreateInstance method *would* result in the proper object type once cloned, it 
is cumbersome (although possible) to know the right constructor parameters to 
pass to the CreateInstance method. Even if you do figure out the parameters 
needed, you still have the task of cloning the new Option's properties, some of 
which are not publicly scoped.
  
- Instead, I am serializing the object to be cloned and deserialzing it into a 
new copy. Like so:
+ Instead, I am serializing the object to be cloned and deserializing it into a 
new copy. Like so:
  
  {{{
  BinaryFormatter bf = new BinaryFormatter();

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[Commons Wiki] Update of CLI by EmmanuelBourg

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by EmmanuelBourg:
http://wiki.apache.org/commons/CLI

The comment on the change is:
Removed the documentation bugs (obsolete)

--
  
* [http://www.devx.com/Java/Article/30117 Extend the JDK Classes with 
Jakarta Commons, Part III] - Explore Jakarta Commons components that enable you 
to parse arguments in a command-line application, connect to various file 
systems at the same time, allow an application to uniformly access 
configurations loaded from various sources, and pool any object.
  
- = Documentation Bugs =
- 
- The Usage Scenarios documentation shows the PosixParser being used for the 
Ant example. This won't work. Either the BasicParser or GnuParser should be 
used for this example.
- 
- The [http://jakarta.apache.org/commons/cli/usage.html Usage Scenarios] 
documentation gives an API usage example for the Ant '''logfile''' option of:
- 
- {{{Option logfile   = OptionBuilder.withArgName( file )}}}[[BR]]
- {{{.hasArg()}}}[[BR]]
- {{{.withDescription(  use given file for 
log )}}}[[BR]]
- {{{.create( }}}''file''{{{ );}}}
- 
- This should instead be:
- 
- {{{Option logfile   = OptionBuilder.withArgName( file )}}}[[BR]]
- {{{.hasArg()}}}[[BR]]
- {{{.withDescription(  use given file for 
log )}}}[[BR]]
- {{{.create( }}}'''logfile'''{{{ );}}}
- 
- Similarly for the '''find''' option:
- 
- {{{Option find  = OptionBuilder.withArgName( file )}}}[[BR]]
- {{{.hasArg()}}}[[BR]]
- {{{.withDescription(  use given file for 
log )}}}[[BR]]
- {{{.create( }}}'''find'''{{{ );}}}
- 
- 
- The section titled Retrieving the argument value shows an example of 
accessing the getOptionValue() method of Options. This is actually a method of 
CommandLine.
- 
- {{{// get c option value}}}[[BR]]
- {{{String countryCode = }}}''options''{{{.getOptionValue(c);}}} // (Wrong 
if options is an instance of Options)
- 
- This should instead be:
- 
- {{{// get c option value}}}[[BR]]
- {{{String countryCode = }}}'''cmd'''{{{.getOptionValue(c);}}} // (Here cmd 
is an instance of CommandLine)
- 

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[Commons Wiki] Update of CLI by EmmanuelBourg

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by EmmanuelBourg:
http://wiki.apache.org/commons/CLI

The comment on the change is:
Removed the mention of CLI 2 being almost finished

--
  
  There has only been minimal bug testing performed on the port, as it was 
ported to serve a particular need. Please 
[http://code.lostcreations.com/newticket?id=code/newticketowner=akutzpriority=minorcomponent=CLI
 submit bug reports] as you find them, or 
[http://code.lostcreations.com/report/16 view a list of outstanding issues].
  
+ 
  == Release 2.0 - Update ==
- We are currently working on the final touches of releasing the 2.0 release.  
The tasks that remain are to improve code coverage, review and complete 
javadoc, and complete user documentation.
+ CLI2 has been moved to the sandbox and becomes a separate project. 
Contributions are welcome!
+ 
   
  == Bad 1.0 release on Ibiblio (Maven) ==
  

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[Commons Wiki] Update of CLI/Projects by EmmanuelBourg

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by EmmanuelBourg:
http://wiki.apache.org/commons/CLI/Projects

The comment on the change is:
Updated the version used by Groovy

--
-  * [http://groovy.codehaus.org/ Groovy] version 1.?
+  * [http://groovy.codehaus.org/ Groovy] version 1.2
   * [http://azureus.sourceforge.net/ Azureus] (optional command line 
interface) version 1.1
   * [http://checkstyle.sourceforge.net/cmdline.html CheckStyle] version 1.0
   * [http://www.nanocontainer.org/ NanoContainer] (Booter component) version 
1.0

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[Commons Wiki] Update of CLI/Projects by RusselWinder

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by RusselWinder:
http://wiki.apache.org/commons/CLI/Projects

--
-  * [http://groovy.codehaus.org/ Groovy] version 1.2
+  * [http://groovy.codehaus.org/ Groovy] version 1.6
   * [http://azureus.sourceforge.net/ Azureus] (optional command line 
interface) version 1.1
   * [http://checkstyle.sourceforge.net/cmdline.html CheckStyle] version 1.0
   * [http://www.nanocontainer.org/ NanoContainer] (Booter component) version 
1.0

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[Commons Wiki] Update of CLI/dotnet by EmmanuelBourg

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by EmmanuelBourg:
http://wiki.apache.org/commons/CLI/dotnet

The comment on the change is:
Created a separate page for the C# port

New page:
.NET CLI is a C# port of the Commons CLI API. The project is hosted on 
SourceForge and maintained by Schley Andrew Kutz.

For more information see http://sf.net/projects/dotnetcli


= News =

== .NET CLI and Object.MemberwiseClone ==

A helpful reader pointed out that .NET '''does''' have a shallow clone method 
defined on the Object class called '''MemberwiseClone'''. I have updated the 
Option class to use this method (that I somehow stupidly forgot about) and 
removed the requirement that anything deriving from Option must implement 
ICloneable or be serializable.

== C# port now referred to as .NET CLI ==

The port is called .NET CLI, and the unix name on SourceForge is dotnetcli. The 
project has a default namespace of net.sf.dotnetcli.

== C# port now hosted on SourceForge ==

The URL is http://sf.net/projects/dotnetcli/.

== Updates on C# port - Unit testing almost complete, and changes ==

The unit tests from 1.1 of CLI have almost all been ported to the C# version. I 
am happy to say that the port passes 45/45 of the tests ported so far. The 
following additional changes have been implemented in the C# port:

- In C# you cannot access a static method, field, or property accessor from an 
instance reference (static or otherwise), hence the following code is illegal:

{{{
Option timeLimit = OptionBuilder
.withLongOpt(limit)
.hasArg()
.withValueSeparator()
.withDescription(Set time limit for execution, in mintues)
.create(l);
}}}

So, in order to maintain elegance I have come up with a solution. I have 
changed OptionBuilder's static methods to instance methods, but created a 
static property accessor called 'Factory'. Factory is defined as such:

{{{
/// summary
/// Returns a static instance of OptionBuilder.
/// /summary
public static OptionBuilder Factory
{
get { return instance; }
}
}}}

So the original code now works with one small variation:

{{{
Option timeLimit = OptionBuilder.Factory
.withLongOpt(limit)
.hasArg()
.withValueSeparator()
.withDescription(Set time limit for execution, in mintues)
.create(l);
}}}

- In C# all classes derive from Object, just like Java. Even primitive types 
are automatically boxed and unboxed into Object-derived subclasses, just like 
Java. For a class to be cloneable it must implement the interface ICloneable 
and the method 'public object Clone()', just like Java. However, unlike Java, 
Object does not implement a shallow clone method. This means that the logic you 
implement in your own clone method cannot call the super (or base as it is in 
C#) class's Clone method to get a typed, shallow clone. This would not 
necessarily be a big deal as you could just create a new class that you are 
attempting to clone, but if you do this you would have to be able to clone its 
properties (assuming they are publicly accessible or can be set via a 
constructor) manually -- a cumbersome task.

'''check this.MemberwiseClone()'''

You see the problem. Option is cloneable, and it relies on the Object's clone 
method. I toyed around porting this functionality via two methods. The first 
method looked like this:

{{{
object clone = Activator.CreateInstance( this.GetType(), null );
( clone as Option ).m_alist_values = new Liststring( m_alist_values );
return clone;
}}}

The above code will not work in all cases, hence I discarded it. The problem is 
that the Activator.CreateInstance method's second parameter requires either a 
null value for a parameterless constructor, or a parameter array to pass to the 
constructor of the type you are attempting to create. As seen in 
OptionTest.java (and now OptionTest.cs), the DefaultOption class that extends 
Option does not implement a parameterless constructor, and in fact does not 
even override all of  Option's constructors, just one. So, while using the 
CreateInstance method *would* result in the proper object type once cloned, it 
is cumbersome (although possible) to know the right constructor parameters to 
pass to the CreateInstance method. Even if you do figure out the parameters 
needed, you still have the task of cloning the new Option's properties, some of 
which are not publicly scoped.

Instead, I am serializing the object to be cloned and deserializing it into a 
new copy. Like so:

{{{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream memStream = new MemoryStream();
bf.Serialize( memStream, this );
memStream.Flush();
memStream.Position = 0;
object clone = ( bf.Deserialize( memStream ) );
( clone as Option ).m_alist_values = new Liststring( m_alist_values );
return clone;
}}}

This method is certainly not as efficient as a simple 

[Commons Wiki] Update of CLI by EmmanuelBourg

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by EmmanuelBourg:
http://wiki.apache.org/commons/CLI

The comment on the change is:
Removed the news about .NET CLI and added a link to the project in the resources

--
  
  
  = News =
- 
- == .NET CLI and Object.MemberwiseClone ==
- 
- A helpful reader pointed out that .NET '''does''' have a shallow clone method 
defined on the Object class called '''MemberwiseClone'''. I have updated the 
Option class to use this method (that I somehow stupidly forgot about) and 
removed the requirement that anything deriving from Option must implement 
ICloneable or be serializable.
- 
- == C# port now referred to as .NET CLI ==
- 
- The port is called .NET CLI, and the unix name on SourceForge is dotnetcli. 
The project has a default namespace of net.sf.dotnetcli.
- 
- == C# port now hosted on SourceForge ==
- 
- The URL is http://sf.net/projects/dotnetcli/.
- 
- == Updates on C# port - Unit testing almost complete, and changes ==
- 
- The unit tests from 1.1 of CLI have almost all been ported to the C# version. 
I am happy to say that the port passes 45/45 of the tests ported so far. The 
following additional changes have been implemented in the C# port:
- 
- - In C# you cannot access a static method, field, or property accessor from 
an instance reference (static or otherwise), hence the following code is 
illegal:
- 
- {{{
- Option timeLimit = OptionBuilder
-   .withLongOpt(limit)
-   .hasArg()
-   .withValueSeparator()
-   .withDescription(Set time limit for execution, in mintues)
-   .create(l);
- }}}
- 
- So, in order to maintain elegance I have come up with a solution. I have 
changed OptionBuilder's static methods to instance methods, but created a 
static property accessor called 'Factory'. Factory is defined as such:
- 
- {{{
- /// summary
- ///   Returns a static instance of OptionBuilder.
- /// /summary
- public static OptionBuilder Factory
- {
-   get { return instance; }
- }
- }}}
- 
- So the original code now works with one small variation:
- 
- {{{
- Option timeLimit = OptionBuilder.Factory
-   .withLongOpt(limit)
-   .hasArg()
-   .withValueSeparator()
-   .withDescription(Set time limit for execution, in mintues)
-   .create(l);
- }}}
- 
- - In C# all classes derive from Object, just like Java. Even primitive types 
are automatically boxed and unboxed into Object-derived subclasses, just like 
Java. For a class to be cloneable it must implement the interface ICloneable 
and the method 'public object Clone()', just like Java. However, unlike Java, 
Object does not implement a shallow clone method. This means that the logic you 
implement in your own clone method cannot call the super (or base as it is in 
C#) class's Clone method to get a typed, shallow clone. This would not 
necessarily be a big deal as you could just create a new class that you are 
attempting to clone, but if you do this you would have to be able to clone its 
properties (assuming they are publicly accessible or can be set via a 
constructor) manually -- a cumbersome task.
- 
- '''check this.MemberwiseClone()'''
- 
- You see the problem. Option is cloneable, and it relies on the Object's clone 
method. I toyed around porting this functionality via two methods. The first 
method looked like this:
- 
- {{{
- object clone = Activator.CreateInstance( this.GetType(), null );
- ( clone as Option ).m_alist_values = new Liststring( m_alist_values );
- return clone;
- }}}
- 
- The above code will not work in all cases, hence I discarded it. The problem 
is that the Activator.CreateInstance method's second parameter requires either 
a null value for a parameterless constructor, or a parameter array to pass to 
the constructor of the type you are attempting to create. As seen in 
OptionTest.java (and now OptionTest.cs), the DefaultOption class that extends 
Option does not implement a parameterless constructor, and in fact does not 
even override all of  Option's constructors, just one. So, while using the 
CreateInstance method *would* result in the proper object type once cloned, it 
is cumbersome (although possible) to know the right constructor parameters to 
pass to the CreateInstance method. Even if you do figure out the parameters 
needed, you still have the task of cloning the new Option's properties, some of 
which are not publicly scoped.
- 
- Instead, I am serializing the object to be cloned and deserializing it into a 
new copy. Like so:
- 
- {{{
- BinaryFormatter bf = new BinaryFormatter();
- MemoryStream memStream = new MemoryStream();
- bf.Serialize( memStream, this );
- memStream.Flush();
- memStream.Position = 0;
- object clone = ( bf.Deserialize( memStream ) );
- ( clone as Option ).m_alist_values = new Liststring( m_alist_values );
- return clone;
- 

[g...@vmgump]: Project commons-configuration-test (in module apache-commons) failed

2009-05-26 Thread Gump
To whom it may engage...

This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at gene...@gump.apache.org.

Project commons-configuration-test has an issue affecting its community 
integration.
This issue affects 1 projects,
 and has been outstanding for 99 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- commons-configuration-test :  Apache Commons


Full details are available at:

http://vmgump.apache.org/gump/public/apache-commons/commons-configuration-test/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -WARNING- Overriding Maven2 settings: 
[/srv/gump/public/workspace/apache-commons/configuration/gump_mvn_settings.xml]
 -DEBUG- (Gump generated) Maven2 Settings in: 
/srv/gump/public/workspace/apache-commons/configuration/gump_mvn_settings.xml
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: 
/srv/gump/public/workspace/apache-commons/configuration/pom.xml
 -INFO- Project Reports in: 
/srv/gump/public/workspace/apache-commons/configuration/target/surefire-reports



The following work was performed:
http://vmgump.apache.org/gump/public/apache-commons/commons-configuration-test/gump_work/build_apache-commons_commons-configuration-test.html
Work Name: build_apache-commons_commons-configuration-test (Type: Build)
Work ended in a state of : Failed
Elapsed: 1 min 40 secs
Command Line: mvn --batch-mode --settings 
/srv/gump/public/workspace/apache-commons/configuration/gump_mvn_settings.xml 
test 
[Working Directory: /srv/gump/public/workspace/apache-commons/configuration]
CLASSPATH: 
/usr/lib/jvm/java-6-sun/lib/tools.jar:/srv/gump/public/workspace/apache-commons/configuration/target/commons-configuration-1.7-SNAPSHOT.jar
-
  testAddNodesCopy(org.apache.commons.configuration.TestXMLConfiguration)
  testInitCopy(org.apache.commons.configuration.TestXMLConfiguration)
  testSetRootAttribute(org.apache.commons.configuration.TestXMLConfiguration)
  testLoadAndSaveFromFile(org.apache.commons.configuration.TestXMLConfiguration)
  testSaveToURL(org.apache.commons.configuration.TestXMLConfiguration)
  testSaveToStream(org.apache.commons.configuration.TestXMLConfiguration)
  testAutoSave(org.apache.commons.configuration.TestXMLConfiguration)
  testSaveAttributes(org.apache.commons.configuration.TestXMLConfiguration)
  testCloneWithSave(org.apache.commons.configuration.TestXMLConfiguration)
  testEmptyElements(org.apache.commons.configuration.TestXMLConfiguration)
  testSaveWithEncoding(org.apache.commons.configuration.TestXMLConfiguration)
  
testSaveWithNullEncoding(org.apache.commons.configuration.TestXMLConfiguration)
  testSaveWithDoctype(org.apache.commons.configuration.TestXMLConfiguration)
  testSaveWithDoctypeIDs(org.apache.commons.configuration.TestXMLConfiguration)
  testSubsetWithReload(org.apache.commons.configuration.TestXMLConfiguration)
  
testConfigurationAtWithReload(org.apache.commons.configuration.TestXMLConfiguration)
  
testConfigurationsAtWithReload(org.apache.commons.configuration.TestXMLConfiguration)
  testGetKeysWithReload(org.apache.commons.configuration.TestXMLConfiguration)
  testSetTextRootElement(org.apache.commons.configuration.TestXMLConfiguration)
  
testClearTextRootElement(org.apache.commons.configuration.TestXMLConfiguration)
  
testAutoSaveWithSubnodeConfig(org.apache.commons.configuration.TestXMLConfiguration)
  
testAutoSaveWithSubSubnodeConfig(org.apache.commons.configuration.TestXMLConfiguration)
  
testSaveDelimiterParsingDisabled(org.apache.commons.configuration.TestXMLConfiguration)
  
testSaveDelimiterParsingDisabledAttrs(org.apache.commons.configuration.TestXMLConfiguration)
  
testMultipleAttrValuesEscaped(org.apache.commons.configuration.TestXMLConfiguration)
  
testAutoSaveWithReloadingStrategy(org.apache.commons.configuration.TestXMLConfiguration)
  testAutoSaveAddNodes(org.apache.commons.configuration.TestXMLConfiguration)
  testAddNodesAndSave(org.apache.commons.configuration.TestXMLConfiguration)
  testRegisterEntityId(org.apache.commons.configuration.TestXMLConfiguration)
  
testSaveAfterCreateWithCopyConstructor(org.apache.commons.configuration.TestXMLConfiguration)
  testCopyRootName(org.apache.commons.configuration.TestXMLConfiguration)
  
testCopyRootNameNoDocument(org.apache.commons.configuration.TestXMLConfiguration)
  testSaveWithValidation(org.apache.commons.configuration.TestXMLConfiguration)
  
testSaveWithValidationFailure(org.apache.commons.configuration.TestXMLConfiguration)

Tests run: 1419, Failures: 0, Errors: 52, Skipped: 0

[INFO] 
[ERROR] BUILD FAILURE
[INFO] 

[Commons Wiki] Update of FrontPage by EmmanuelBourg

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by EmmanuelBourg:
http://wiki.apache.org/commons/FrontPage

The comment on the change is:
Added a link to the CLI2 page

--
  TheSandbox is an open workspace for jakarta committers. This is also divided 
into components.
  
  On this wiki:
+ 
+  * [:CLI2] - An experimental rewrite of the Commons CLI API
+  * [:CommonsCsv] - Proposed new component
   * [:Id] - Generators for identifiers
-  * [:CommonsCsv] - Proposed new component
   * [:ME] - Provides JaveME helpers, and implementations of JavaSE 
functionality that JavaME lacks but programmers want
   * [:Metadata] - Proposed new component which provides a class metadata API 
similar to that of JDK5
+ 
  
  
  

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[Commons Wiki] Update of CLI/Projects by EmmanuelBourg

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by EmmanuelBourg:
http://wiki.apache.org/commons/CLI/Projects

The comment on the change is:
Projects displayed in a table, and links to the Maven dependencies

--
+ This is a list of projects using Commons CLI :
-  * [http://groovy.codehaus.org/ Groovy] version 1.6
-  * [http://azureus.sourceforge.net/ Azureus] (optional command line 
interface) version 1.1
-  * [http://checkstyle.sourceforge.net/cmdline.html CheckStyle] version 1.0
-  * [http://www.nanocontainer.org/ NanoContainer] (Booter component) version 
1.0
-  * [http://xsite.codehaus.org/ XSite] version 1.0
  
+ || '''Project'''  
 || '''Version''' || '''CLI''' ||
+ || [http://groovy.codehaus.org/ Groovy]   
 || 1.6.1 || 1.2   ||
+ || [http://checkstyle.sourceforge.net/cmdline.html CheckStyle]
 || 5.0   || 1.0   ||
+ || [http://www.nanocontainer.org/ NanoContainer] (Booter component)   
 || ? || 1.0   ||
+ || [http://azureus.sourceforge.net/ Azureus] (optional command line 
interface) || ? || 1.1   ||
+ || [http://xsite.codehaus.org/ XSite] 
 || ? || 1.0   ||
+ 
+ Projects using CLI can also be tracked from the MVNrepository site:
+ 
+  * CLI 1.2  http://mvnrepository.com/artifact/commons-cli/commons-cli/1.2
+  * CLI 1.1  http://mvnrepository.com/artifact/commons-cli/commons-cli/1.1
+  * CLI 1.0  http://mvnrepository.com/artifact/commons-cli/commons-cli/1.0
+ 

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[vfs] caching (was: [vfs] LRUFilesCache safe for production use? Google App Engine/Java plug-in)

2009-05-26 Thread Mario Ivankovits
Hi!


 Actually, I commented out the call to filesystemclose in  
 SoftRelFilesCache. While looking at the FileSystem implementation I  
 realized that the way close is implemented is not thread safe and  
 can't be called while the system is running.  I believe the fix for  
 this is non-trivial.

That is strange, there should be no real problem if it is not thread safe as no 
other thread is holding a reference to a fileObject any more.

Anyway, I think (and I had this on my todo to discuss this earlier, but my work 
load is still way too high :-( ) all this needs a major refactoring.

First of all, instead of FileManager.resolveFile() we should introduce 
FileManager.mount(path) FileManager.unmount(FileObject).

mount will always create a new file-system which will be kept only within the 
FileObject.

A file-system then will go away when the last FileObject is out of scope, or 
when one calls FileManager.unmount(FileObject).

All the synchronization stuff might be possible to be removed and leaf to the 
user application. I'd say, 90% of the use-case of VFS do not need 
synchronization as there is no need to reuse the same instance of the 
FileObject between threads. But probably I get this wrong.

Given we keep the FileManager.resolveFile() (which then routes to .mount(path)) 
the side effect would be:

1) VFS.getManager().resolveFile(/tmp) != VFS.getManager().resolveFile(/tmp)
2) VFS.getManager().mount(/tmp) != VFS.getManager().mount(/tmp)

3) FileObject fo = VFS.getManager().mount(/tmp);
fo.resolveFile(a) == fo.resolveFile(a)

4) FileObject fo2 = VFS.getManager().mount(/tmp);
fo2.resolveFile(a) == fo2.resolveFile(a)
fo.resolveFile(a) != fo2.resolveFile(a)


If we could argue that, the internals of VFS might become much easier again, 
and stuff like LRUFilesCache or even NullFilesCache might start to work.
Sure, with a NullFilesCache then even 3 is not true, but this is expected then.


H  If we would like to go that way I might try to spent a night or two 
to implement it. With VFS 2.0 it is THE time to do it, but yes, it might delay 
the release again. This is something which happend with VFS always, probably a 
bad spell - or just me ;-)


Ciao,
Mario


-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org


-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[vfs] Dependency to compress

2009-05-26 Thread Christian Grobmeier
Hi,

before ages VFS included the compress classes with own namespace,
cause compress wasn't released and VFS had to go ahead. It was planned
to replace those vfs.compress classes with a dependency to commons
compress. If this is still the plan, I will create an issue for it and
would do it straight after my holidays next week :-), if it doesn't
conflict with the release of the planned version 2.0.

Cheers,
Christian

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [vfs] LRUFilesCache safe for production use? Google App Engine/Java plug-in

2009-05-26 Thread Vince Bonfanti
My code will always run within a servlet, so I can close() the filesystem
when the servlet is destroyed. In this case, I should be OK using
LRUFilesCache?

Thanks,

Vince
On Tue, May 26, 2009 at 2:28 AM, Mario Ivankovits ma...@ops.co.at wrote:

 Hi!

  1. Is the LRUFilesCache safe for production use? GAE/J won't allow using
  the default SoftRefFilesCache because it doesn't allow background
 threads.
  I 've found a few really old messages saying things like
 SoftRefFilesCache
  is the only implementation suitable for production use and other file
  cache implementation might cause resouce leaks, etc.

 Yes, these messages are still true. Sad to say that, but I realized that
 too late and planned to fix this, which is not that easy.

 Using any thing else than the SoftRefFilesChache will introduce memory
 leaks as the file-system object will not be discarded. You have to call
 close() on the filesystem, or even better call close on the
 DefaultFileSystemManager at all and do not use the VFS.getManager()
 singleton approach.
 That will also ensure that each and every resource used by the underlaying
 libraries are closed then too.


 Ciao,
 Mario




RE: [vfs] LRUFilesCache safe for production use? Google App Engine/Java plug-in

2009-05-26 Thread Mario Ivankovits
Yes, I think so.


-Original Message-
From: Vince Bonfanti [mailto:vbonfa...@gmail.com] 
Sent: Tuesday, May 26, 2009 1:14 PM
To: Commons Developers List
Subject: Re: [vfs] LRUFilesCache safe for production use? Google App 
Engine/Java plug-in

My code will always run within a servlet, so I can close() the filesystem
when the servlet is destroyed. In this case, I should be OK using
LRUFilesCache?

Thanks,

Vince
On Tue, May 26, 2009 at 2:28 AM, Mario Ivankovits ma...@ops.co.at wrote:

 Hi!

  1. Is the LRUFilesCache safe for production use? GAE/J won't allow using
  the default SoftRefFilesCache because it doesn't allow background
 threads.
  I 've found a few really old messages saying things like
 SoftRefFilesCache
  is the only implementation suitable for production use and other file
  cache implementation might cause resouce leaks, etc.

 Yes, these messages are still true. Sad to say that, but I realized that
 too late and planned to fix this, which is not that easy.

 Using any thing else than the SoftRefFilesChache will introduce memory
 leaks as the file-system object will not be discarded. You have to call
 close() on the filesystem, or even better call close on the
 DefaultFileSystemManager at all and do not use the VFS.getManager()
 singleton approach.
 That will also ensure that each and every resource used by the underlaying
 libraries are closed then too.


 Ciao,
 Mario



-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



RE: [vfs] Dependency to compress

2009-05-26 Thread Mario Ivankovits
 before ages VFS included the compress classes with own namespace,
 cause compress wasn't released and VFS had to go ahead. It was planned
 to replace those vfs.compress classes with a dependency to commons
 compress. If this is still the plan, I will create an issue for it and
 would do it straight after my holidays next week :-), if it doesn't
 conflict with the release of the planned version 2.0.

I think, best would be to start in VFS sandbox a _writeable_ zip/whatever impl 
using commons-compress. Once it works, we can drop the old impl and the copied 
classes.

Ciao,
Mario


[Commons Wiki] Update of CLI/Projects by EmmanuelBourg

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by EmmanuelBourg:
http://wiki.apache.org/commons/CLI/Projects

The comment on the change is:
Added JOTM

--
  This is a list of projects using Commons CLI :
  
- || '''Project'''  
 || '''Version''' || '''CLI''' ||
+ || '''Project'''  
 || '''Version''' || '''CLI''' ||
- || [http://groovy.codehaus.org/ Groovy]   
 || 1.6.1 || 1.2   ||
+ || [http://groovy.codehaus.org Groovy]
 || 1.6.1 || 1.2   ||
- || [http://checkstyle.sourceforge.net/cmdline.html CheckStyle]
 || 5.0   || 1.0   ||
+ || [http://checkstyle.sourceforge.net/cmdline.html CheckStyle]
 || 5.0   || 1.0   ||
- || [http://www.nanocontainer.org/ NanoContainer] (Booter component)   
 || ? || 1.0   ||
+ || [http://nanocontainer.org NanoContainer] (Booter component)
 || ? || 1.0   ||
- || [http://azureus.sourceforge.net/ Azureus] (optional command line 
interface) || ? || 1.1   ||
+ || [http://azureus.sourceforge.net Azureus/Vuze] (optional command line 
interface) || 4.2   || 1.1   ||
- || [http://xsite.codehaus.org/ XSite] 
 || ? || 1.0   ||
+ || [http://xsite.codehaus.org XSite]  
 || 1.0   || 1.1   ||
+ || [http://jotm.ow2.org JOTM - Java Open Transaction Manager] 
 || 2.1.4 || 1.1   ||
  
  Projects using CLI can also be tracked from the MVNrepository site:
  

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[Commons Wiki] Update of CLI/Projects by RusselWinder

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by RusselWinder:
http://wiki.apache.org/commons/CLI/Projects

--
  This is a list of projects using Commons CLI :
  
  || '''Project'''  
 || '''Version''' || '''CLI''' ||
- || [http://groovy.codehaus.org Groovy]
 || 1.6.1 || 1.2   ||
+ || [http://groovy.codehaus.org Groovy]
 || 1.6.3 || 1.2   ||
  || [http://checkstyle.sourceforge.net/cmdline.html CheckStyle]
 || 5.0   || 1.0   ||
  || [http://nanocontainer.org NanoContainer] (Booter component)
 || ? || 1.0   ||
  || [http://azureus.sourceforge.net Azureus/Vuze] (optional command line 
interface) || 4.2   || 1.1   ||

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[Commons Wiki] Update of CLI/Projects by RusselWinder

2009-05-26 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Commons Wiki for 
change notification.

The following page has been changed by RusselWinder:
http://wiki.apache.org/commons/CLI/Projects

--
  
  || '''Project'''  
 || '''Version''' || '''CLI''' ||
  || [http://groovy.codehaus.org Groovy]
 || 1.6.3 || 1.2   ||
+ || [http://gant.codehaus.org Gant]
 || 1.6.1 || 1.2   ||
  || [http://checkstyle.sourceforge.net/cmdline.html CheckStyle]
 || 5.0   || 1.0   ||
  || [http://nanocontainer.org NanoContainer] (Booter component)
 || ? || 1.0   ||
  || [http://azureus.sourceforge.net Azureus/Vuze] (optional command line 
interface) || 4.2   || 1.1   ||

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [compress] Two issues with releasing the release

2009-05-26 Thread Jim Jagielski

+1. The release was/is fine :)

On May 21, 2009, at 4:58 PM, Christian Grobmeier wrote:


Thanks Rainer.
I did the fix and wait for the mirroring now. Hopefully everything  
works then.

I don't think this does require a new vote, RC, etc. since it was just
a broker link... right guys?

Thanks again,
Christian


Concerning the download page:

I think you need to add the cgi page named download_compress.cgi too.
The contents of the file do now depend on the project, and you will  
find

an example in the neighbouring directories, like collections, or
configration.

The link to the download page has to point to the cgi file, not the
html. The cgi file will load the html one and replace the tags.

Some of the commons projects seem to put their download pages in the
downloads directory (and add them to the index.html there), some  
seem to

prefer to keep it under the project directory.

Regards,

Rainer

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org




-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org




-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [pool] Exception in GKOP allocate()

2009-05-26 Thread Phil Steitz
Note that clearOldest() (called in the middle of allocate()) itself
calls allocate().  That could explain it.

Phil

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [pool] Exception in GKOP allocate()

2009-05-26 Thread Mark Thomas
Phil Steitz wrote:
 Note that clearOldest() (called in the middle of allocate()) itself
 calls allocate().  That could explain it.

Good catch. That will be it :)

clearOldest() also needs to be moved outside of any syncs to prevent
possible deadlocks.

I'm just setting up commons-performance to make sure I can reproduce the
failures and then I'll take a stab at a fix.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [pool] Exception in GKOP allocate()

2009-05-26 Thread Mark Thomas
Mark Thomas wrote:
 Phil Steitz wrote:
 Note that clearOldest() (called in the middle of allocate()) itself
 calls allocate().  That could explain it.
 
 Good catch. That will be it :)
 
 clearOldest() also needs to be moved outside of any syncs to prevent
 possible deadlocks.
 
 I'm just setting up commons-performance to make sure I can reproduce the
 failures and then I'll take a stab at a fix.

Fixed. Unit tests and performance test pass without errors.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[all] Source jars for released components

2009-05-26 Thread Phil Steitz
POOL-141 is asking for source jars for old versions of [pool] to be 
pushed to maven central.  I think we talked about this before in 
relation to another component, but I can't find the thread and can't 
recall the resolution.


Have we done this before?  If so, did we use the source distro or the 
tag to build the jar and how exactly did we do it (left to my own 
devices I would add an m2 pom to the sources and just use the source 
plugin)?  Do we need to VOTE?


Thanks!

Phil

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[continuum] BUILD SUCCESSFUL: Commons - Commons Pool -

2009-05-26 Thread contin...@vmbuild.apache.org
Online report : 
http://vmbuild.apache.org/continuum/buildResult.action?buildId=193296projectId=116

Build statistics:
  State: Ok
  Previous State: Failed
  Started at: Tue 26 May 2009 22:38:36 -0700
  Finished at: Tue 26 May 2009 22:40:48 -0700
  Total time: 2m 11s
  Build Trigger: Schedule
  Build Number: 71
  Exit code: 0
  Building machine hostname: vmbuild.apache.org
  Operating system : Linux(unknown)
  Java Home version : 
  java version 1.6.0_06
  Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
  Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)

  Builder version :
  Maven version: 2.0.9
  Java version: 1.6.0_06
  OS name: linux version: 2.6.24-23-server arch: i386 Family: 
unix


SCM Changes:

Changed: psteitz @ Mon 25 May 2009 11:53:50 -0700
Comment: Prepared for release notes.
Files changed:
  /commons/proper/pool/trunk/pom.xml ( 778467 )
  /commons/proper/pool/trunk/src/template ( 778467 )
  /commons/proper/pool/trunk/src/template/pool-release-notes.vm ( 778467 )
  /commons/proper/pool/trunk/xdocs/changes.xml ( 778467 )

Changed: psteitz @ Mon 25 May 2009 12:33:31 -0700
Comment: Moved test case up in the file.
Files changed:
  
/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java
 ( 778479 )

Changed: psteitz @ Mon 25 May 2009 12:34:55 -0700
Comment: Javadoc fixes.
Files changed:
  
/commons/proper/pool/trunk/src/java/org/apache/commons/pool/KeyedObjectPool.java
 ( 778480 )
  
/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/EvictionTimer.java
 ( 778480 )

Changed: psteitz @ Mon 25 May 2009 19:50:59 -0700
Comment: Dropped maven 1 build.
Files changed:
  /commons/proper/pool/trunk/maven.xml ( 778554 )
  /commons/proper/pool/trunk/project.properties ( 778554 )
  /commons/proper/pool/trunk/project.xml ( 778554 )
  /commons/proper/pool/trunk/release-notes.jsl ( 778554 )
  /commons/proper/pool/trunk/src/assembly/src.xml ( 778554 )

Changed: markt @ Tue 26 May 2009 13:33:57 -0700
Comment: Fix two issues that, oddly, had the same fix.
1. clearOldest() was called from inside a sync block. clearOldest() uses 
factory methods so must not be called from inside a sync block to prevent 
possible deadlocks.
2. clearOldest() calls allocate which set up a recursive call to allocate() 
which in turn emptied the allocation queue. This caused breakage as the 
recursive call unwound and items expected to be in the allocation queue were no 
longer there.
Files changed:
  
/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java
 ( 778875 )

Changed: markt @ Tue 26 May 2009 13:46:22 -0700
Comment: Fix POOL-139. Make StackKeyedObjectPool._totActive thread safe
Files changed:
  
/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java
 ( 778880 )

Changed: psteitz @ Tue 26 May 2009 17:25:34 -0700
Comment: Added POOL-139.
Files changed:
  /commons/proper/pool/trunk/xdocs/changes.xml ( 778934 )

Changed: psteitz @ Tue 26 May 2009 19:14:27 -0700
Comment: Prepare for 1.5-RC1.
Files changed:
  /commons/proper/pool/trunk/pom.xml ( 778963 )


Dependencies Changes:

No dependencies changed



Build Definition:

POM filename: pom.xml
Goals: clean deploy   
Arguments: --batch-mode 
-DaltDeploymentRepository=vmbuild.repo::default::file://localhost/home/continuum/data/commons
 -Pci
Build Fresh: false
Always Build: false
Default Build Definition: true
Schedule: COMMONS_SCHEDULE
Profile Name: JDK 6
Description: 


Test Summary:

Tests: 239
Failures: 0
Errors: 0
Success Rate: 100
Total time: 101.145





-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org