svn commit: r441916 - /jakarta/commons/proper/io/trunk/pom.xml

2006-09-10 Thread bayard
Author: bayard
Date: Sat Sep  9 23:01:04 2006
New Revision: 441916

URL: http://svn.apache.org/viewvc?view=revrev=441916
Log:
Maven-2 pom for IO so I can mvn install the snapshot locally into my .m2 and 
use it with finder

Added:
jakarta/commons/proper/io/trunk/pom.xml

Added: jakarta/commons/proper/io/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/pom.xml?view=autorev=441916
==
--- jakarta/commons/proper/io/trunk/pom.xml (added)
+++ jakarta/commons/proper/io/trunk/pom.xml Sat Sep  9 23:01:04 2006
@@ -0,0 +1,260 @@
+?xml version=1.0?
+!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the License); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an AS IS BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+--
+project
+xmlns=http://maven.apache.org/POM/4.0.0;
+xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
+xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd;
+  parent
+groupIdorg.apache.commons/groupId
+artifactIdcommons/artifactId
+version1-SNAPSHOT/version
+  /parent
+  modelVersion4.0.0/modelVersion
+  groupIdorg.apache.commons/groupId
+  artifactIdcommons-io/artifactId
+  version1.3-SNAPSHOT/version
+  nameIO/name
+
+  inceptionYear2002/inceptionYear
+  description
+Commons-IO contains utility classes, stream implementations, file 
filters, and endian classes.
+  /description
+
+  urlhttp://jakarta.apache.org/commons/io//url
+
+  organization
+nameThe Apache Software Foundation/name
+urlhttp://jakarta.apache.org/url
+  /organization
+
+  licenses
+license
+  nameThe Apache Software License, Version 2.0/name
+  url/LICENSE.txt/url
+  distributionrepo/distribution
+/license
+  /licenses
+
+  issueManagement
+systemjira/system
+urlhttp://issues.apache.org/jira/browse/IO/url
+  /issueManagement
+
+  scm
+
connectionscm:svn:scm:svn:https://svn.apache.org/repos/asf/jakarta/commons/proper/io/trunk/connection
+
developerConnectionscm:svn:scm:svn:https://svn.apache.org/repos/asf/jakarta/commons/proper/io/trunk/developerConnection
+urlhttp://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/url
+  /scm
+
+  mailingLists
+mailingList
+  nameCommons Dev List/name
+  subscribe[EMAIL PROTECTED]/subscribe
+  unsubscribe[EMAIL PROTECTED]/unsubscribe
+  
archivehttp://mail-archives.apache.org/mod_mbox/jakarta-commons-dev//archive
+/mailingList
+mailingList
+  nameCommons User List/name
+  subscribe[EMAIL PROTECTED]/subscribe
+  unsubscribe[EMAIL PROTECTED]/unsubscribe
+  
archivehttp://mail-archives.apache.org/mod_mbox/jakarta-commons-user//archive
+/mailingList
+  /mailingLists
+
+  developers
+developer
+  nameScott Sanders/name
+  idsanders/id
+  email[EMAIL PROTECTED]/email
+  organization/organization
+  roles
+roleJava Developer/role
+  /roles
+/developer
+developer
+  namedIon Gillard/name
+  iddion/id
+  email[EMAIL PROTECTED]/email
+  organization/organization
+  roles
+roleJava Developer/role
+  /roles
+/developer
+developer
+  nameNicola Ken Barozzi/name
+  idnicolaken/id
+  email[EMAIL PROTECTED]/email
+  organization/organization
+  roles
+roleJava Developer/role
+  /roles
+/developer
+developer
+  nameHenri Yandell/name
+  idbayard/id
+  email[EMAIL PROTECTED]/email
+  organization/organization
+  roles
+roleJava Developer/role
+  /roles
+/developer
+developer
+  nameStephen Colebourne/name
+  idscolebourne/id
+  organization/organization
+  roles
+roleJava Developer/role
+  /roles
+  timezone0/timezone
+/developer
+developer
+  nameJeremias Maerki/name
+  idjeremias/id
+  email[EMAIL PROTECTED]/email
+  organization/
+  roles
+roleJava Developer/role
+  /roles
+  timezone+1/timezone
+/developer
+developer
+  nameMatthew Hawthorne/name
+  idmatth/id
+  email[EMAIL PROTECTED]/email
+  organization/
+  roles
+roleJava Developer/role
+  /roles
+/developer
+developer
+  nameMartin Cooper/name
+  idmartinc/id

svn commit: r441918 - /jakarta/commons/proper/cli/trunk/pom.xml

2006-09-10 Thread bayard
Author: bayard
Date: Sat Sep  9 23:13:41 2006
New Revision: 441918

URL: http://svn.apache.org/viewvc?view=revrev=441918
Log:
Finder is also going to want to use CLI, so creating an m2 pom for it as well

Added:
jakarta/commons/proper/cli/trunk/pom.xml

Added: jakarta/commons/proper/cli/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/cli/trunk/pom.xml?view=autorev=441918
==
--- jakarta/commons/proper/cli/trunk/pom.xml (added)
+++ jakarta/commons/proper/cli/trunk/pom.xml Sat Sep  9 23:13:41 2006
@@ -0,0 +1,175 @@
+?xml version=1.0 encoding=UTF-8?
+!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the License); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an AS IS BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+--
+project
+xmlns=http://maven.apache.org/POM/4.0.0;
+xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
+xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd;
+  parent
+groupIdorg.apache.commons/groupId
+artifactIdcommons/artifactId
+version1-SNAPSHOT/version
+  /parent
+  modelVersion4.0.0/modelVersion
+  groupIdorg.apache.commons/groupId
+  artifactIdcommons-cli/artifactId
+  version2.0-SNAPSHOT/version
+  nameCLI/name
+
+  inceptionYear2002/inceptionYear
+  description
+Commons CLI provides a simple API for presenting, processing and
+validating a command line interface.
+  /description
+
+  urlhttp://jakarta.apache.org/commons/cli//url
+
+  organization
+nameApache Software Foundation/name
+urlhttp://www.apache.org/url
+  /organization
+
+  licenses
+license
+  nameThe Apache Software License, Version 2.0/name
+  url/LICENSE.txt/url
+  distributionrepo/distribution
+/license
+  /licenses
+
+  issueManagement
+systemjira/system
+urlhttp://issues.apache.org/jira/browse/CLI/url
+  /issueManagement
+
+  scm
+
connectionscm:svn:scm:svn:https://svn.apache.org/repos/asf/jakarta/commons/proper/cli/trunk/connection
+
developerConnectionscm:svn:scm:svn:https://svn.apache.org/repos/asf/jakarta/commons/proper/cli/trunk/developerConnection
+urlhttp://svn.apache.org/viewvc/jakarta/commons/proper/cli/trunk/url
+  /scm
+
+  developers
+developer
+  nameJames Strachan/name
+  idjstrachan/id
+  email[EMAIL PROTECTED]/email
+  organizationSpiritSoft, Inc./organization
+/developer
+developer
+  nameBob McWhirter/name
+  idbob/id
+  email[EMAIL PROTECTED]/email
+  organizationWerken/organization
+  roles
+rolecontributed ideas and code from werken.opt/role
+  /roles
+/developer
+developer
+  nameJohn Keyes/name
+  idjkeyes/id
+  email[EMAIL PROTECTED]/email
+  organizationintegral Source/organization
+  roles
+rolecontributed ideas and code from Optz/role
+  /roles
+/developer
+developer
+  nameRob Oxspring/name
+  idroxspring/id
+  email[EMAIL PROTECTED]/email
+  organizationIndigo Stone/organization
+  roles
+roledesigned CLI2/role
+  /roles
+/developer
+  /developers
+
+  contributors
+contributor
+  namePeter Donald/name
+  roles
+rolecontributed ideas and code from Avalon Excalibur's cli 
package/role
+  /roles
+/contributor
+contributor
+  nameBerin Loritsch/name
+  email[EMAIL PROTECTED]/email
+  roles
+rolehelped in the Avalon CLI merge/role
+  /roles
+/contributor
+contributor
+  namePeter Maddocks/name
+  email[EMAIL PROTECTED]/email
+  organizationHewlett-Packard/organization
+  roles
+rolesupplied patch/role
+  /roles
+/contributor
+  /contributors
+
+  dependencies
+
+!-- used in PatternOptionBuilder --
+dependency
+  groupIdcommons-lang/groupId
+  artifactIdcommons-lang/artifactId
+  version2.1/version
+/dependency
+
+!-- used for unit tests --
+dependency
+  groupIdjunit/groupId
+  artifactIdjunit/artifactId
+  version3.8.1/version
+  scopetest/scope
+/dependency
+
+!-- used for unit tests --
+dependency
+  groupIdjdepend/groupId
+  artifactIdjdepend/artifactId
+  version2.5/version
+  scopetest/scope
+/dependency
+
+  /dependencies
+

[cli][configuration][convert] Architecting our overlaps

2006-09-10 Thread Henri Yandell

So I'm using [cli] in [finder] to see if I can mimic the command line
interface for the unix find command. I'm using the cli2 version - lots
of thought, but very painful to use. Here are the 30 lines of code to
add a single option:

code
   public static void main(String[] args) throws OptionException {
   DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
   ArgumentBuilder abuilder = new ArgumentBuilder();
   GroupBuilder gbuilder = new GroupBuilder();

   Option type =
   obuilder
   .withShortName(type)
   .withDescription(True if the file is of the specified type.)
   .withArgument(
   abuilder
   .withName(type-flag)
   .withMinimum(1)
   .withMaximum(1)
   .create()
   )
   .create();

   Group options =
   gbuilder
   .withName(options)
   .withOption(type)
   .create();

   Parser parser = new Parser();
   parser.setGroup(options);
   CommandLine cl = parser.parse(args);

   if(cl.hasOption(type)) {
   System.out.println(USE TYPE:  + cl.getValue(type));
   }
   }
/code

Obviously a second flag wouldn't double it or anything, but it's still
a lot. So my first thought is wondering how the API can be simpler for
simple cases. Power is good, power when it's not needed is
unmanageable.

Perusing the CLI2 javadoc, my second thought is that it overlaps with
Configuration a lot. You can have Properties and Preferences command
lines; and Configuration lacks a CLI style way to input data.

A third thought is that the CLI2 CommandLine API for the data itself
rests on a getValue(Option);Object method, which implies some
conversion is going on but I've not seen how yet by looking at the
API. Configuration also does conversion of String to various objects.
BeanUtils does that too, which gave rise to an overmodelled [convert]
package that we've talked about restarting as something simpler.

--

Any of that kick off any thoughts?

Hen

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: r441922 - in /jakarta/commons/sandbox/finder/trunk: pom.xml src/java/org/apache/commons/finder/Find.java

2006-09-10 Thread bayard
Author: bayard
Date: Sun Sep 10 00:40:29 2006
New Revision: 441922

URL: http://svn.apache.org/viewvc?view=revrev=441922
Log:
Adding dependency on commons-cli for the purpose of a command line find 
implementation, and a Find class to put said implementation in, though it 
barely has anything in it to start with. 

Added:

jakarta/commons/sandbox/finder/trunk/src/java/org/apache/commons/finder/Find.java
Modified:
jakarta/commons/sandbox/finder/trunk/pom.xml

Modified: jakarta/commons/sandbox/finder/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/sandbox/finder/trunk/pom.xml?view=diffrev=441922r1=441921r2=441922
==
--- jakarta/commons/sandbox/finder/trunk/pom.xml (original)
+++ jakarta/commons/sandbox/finder/trunk/pom.xml Sun Sep 10 00:40:29 2006
@@ -14,9 +14,14 @@
   
   dependencies
 dependency
-  groupIdcommons-io/groupId
+  groupIdorg.apache.commons/groupId
   artifactIdcommons-io/artifactId
-  versionSNAPSHOT/version
+  version1.3-SNAPSHOT/version
+/dependency
+dependency
+  groupIdorg.apache.commons/groupId
+  artifactIdcommons-cli/artifactId
+  version2.0-SNAPSHOT/version
 /dependency
 dependency
   groupIdjunit/groupId

Added: 
jakarta/commons/sandbox/finder/trunk/src/java/org/apache/commons/finder/Find.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/sandbox/finder/trunk/src/java/org/apache/commons/finder/Find.java?view=autorev=441922
==
--- 
jakarta/commons/sandbox/finder/trunk/src/java/org/apache/commons/finder/Find.java
 (added)
+++ 
jakarta/commons/sandbox/finder/trunk/src/java/org/apache/commons/finder/Find.java
 Sun Sep 10 00:40:29 2006
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.finder;
+
+import org.apache.commons.cli2.*;
+import org.apache.commons.cli2.builder.*;
+import org.apache.commons.cli2.commandline.Parser;
+
+public class Find {
+
+public static void main(String[] args) throws OptionException {
+DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
+ArgumentBuilder abuilder = new ArgumentBuilder();
+GroupBuilder gbuilder = new GroupBuilder();
+
+Option type =
+obuilder
+.withShortName(type)
+.withDescription(True if the file is of the specified type.)
+.withArgument(
+abuilder
+.withName(type-flag)
+.withMinimum(1)
+.withMaximum(1)
+.create()
+)
+.create();
+
+Group options =
+gbuilder
+.withName(options)
+.withOption(type)
+.create();
+
+Parser parser = new Parser();
+parser.setGroup(options);
+CommandLine cl = parser.parse(args);
+
+if(cl.hasOption(type)) {
+System.out.println(USE TYPE:  + cl.getValue(type));
+}
+}
+
+}



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: r441924 - /jakarta/commons/proper/lang/trunk/xdocs/userguide.xml

2006-09-10 Thread bayard
Author: bayard
Date: Sun Sep 10 00:55:54 2006
New Revision: 441924

URL: http://svn.apache.org/viewvc?view=revrev=441924
Log:
Update the text section - though not with much of value. Need to talk about the 
classes here. 

Modified:
jakarta/commons/proper/lang/trunk/xdocs/userguide.xml

Modified: jakarta/commons/proper/lang/trunk/xdocs/userguide.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/xdocs/userguide.xml?view=diffrev=441924r1=441923r2=441924
==
--- jakarta/commons/proper/lang/trunk/xdocs/userguide.xml (original)
+++ jakarta/commons/proper/lang/trunk/xdocs/userguide.xml Sun Sep 10 00:55:54 
2006
@@ -223,9 +223,14 @@
 
section name=lang.text.*
!--
-   Interpolation
-   MappedMessageFormat
+   CompositeFormat
+   StrLookup
+   StrSubstitutor
+   StrBuilder
+   StrMatcher
+   StrTokenizer
--
+   pThe text package was added in Lang 2.2. /p
/section
 
section name=Next version of Lang



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: r441925 - /jakarta/commons/proper/lang/trunk/xdocs/userguide.xml

2006-09-10 Thread bayard
Author: bayard
Date: Sun Sep 10 00:56:35 2006
New Revision: 441925

URL: http://svn.apache.org/viewvc?view=revrev=441925
Log:
Killing the 'next version' part of the user guide. It's the wrong place for 
that kind of information I think

Modified:
jakarta/commons/proper/lang/trunk/xdocs/userguide.xml

Modified: jakarta/commons/proper/lang/trunk/xdocs/userguide.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/xdocs/userguide.xml?view=diffrev=441925r1=441924r2=441925
==
--- jakarta/commons/proper/lang/trunk/xdocs/userguide.xml (original)
+++ jakarta/commons/proper/lang/trunk/xdocs/userguide.xml Sun Sep 10 00:56:35 
2006
@@ -233,9 +233,5 @@
pThe text package was added in Lang 2.2. /p
/section
 
-   section name=Next version of Lang
-pThe next version of Lang is a work in progress. /p
-   /section
-
 /body
 /document



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: r441929 - in /jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang: enum/ValuedEnum.java enums/ValuedEnum.java

2006-09-10 Thread bayard
Author: bayard
Date: Sun Sep 10 01:04:17 2006
New Revision: 441929

URL: http://svn.apache.org/viewvc?view=revrev=441929
Log:
Fixed javadoc typo as mentioned in #LANG-258

Modified:

jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enum/ValuedEnum.java

jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/ValuedEnum.java

Modified: 
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enum/ValuedEnum.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enum/ValuedEnum.java?view=diffrev=441929r1=441928r2=441929
==
--- 
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enum/ValuedEnum.java
 (original)
+++ 
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enum/ValuedEnum.java
 Sun Sep 10 01:04:17 2006
@@ -73,7 +73,7 @@
  * pThe above class could then be used as follows:/p
  *
  * pre
- * public void doSomething(JavaVersion ver) {
+ * public void doSomething(JavaVersionEnum ver) {
  *   switch (ver.getValue()) {
  * case JAVA1_0_VALUE:
  *   // ...

Modified: 
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/ValuedEnum.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/ValuedEnum.java?view=diffrev=441929r1=441928r2=441929
==
--- 
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/ValuedEnum.java
 (original)
+++ 
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/ValuedEnum.java
 Sun Sep 10 01:04:17 2006
@@ -78,7 +78,7 @@
  * pThe above class could then be used as follows:/p
  *
  * pre
- * public void doSomething(JavaVersion ver) {
+ * public void doSomething(JavaVersionEnum ver) {
  *   switch (ver.getValue()) {
  * case JAVA1_0_VALUE:
  *   // ...



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[jira] Commented: (LANG-258) Enum JavaDoc: 1) outline 5.0 native Enum migration 2) warn not to use the switch() , 3) point out approaches for persistence and gui

2006-09-10 Thread Henri Yandell (JIRA)
[ 
http://issues.apache.org/jira/browse/LANG-258?page=comments#action_12433677 ] 

Henri Yandell commented on LANG-258:


Fixed the doSomething javado typo in r441929. Will go with 2.2.

 Enum JavaDoc: 1) outline 5.0 native Enum migration 2) warn not to use the 
 switch() , 3) point out approaches for persistence and gui
 

 Key: LANG-258
 URL: http://issues.apache.org/jira/browse/LANG-258
 Project: Commons Lang
  Issue Type: Improvement
Affects Versions: 2.1
 Environment: all
Reporter: Ralf Hauser
 Fix For: 2.3


 http://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/enums/Enum.html
  is great!
 Now that Jdk5.0 has its own approach for type-safe enums, would it be great 
 to provide a few sentences 
 - whether they simply should co-habit?
 - how one would best migrate?
 - where the concepts are different
 Also, it would be great to provide some hints how to work on the with a 
 MVC/GUI framework - see SB-20.
 also, 
 http://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/enums/ValuedEnum.html
   has a minor typo
it says doSomething(JavaVersion, but should say 
 doSomething(JavaVersionEnum
 also, it should contain a big warning that by using switch(), one opens up 
 for type-unsafety!

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[lang] LANG-262

2006-09-10 Thread Henri Yandell

Any thoughts on this issue?

https://issues.apache.org/jira/browse/LANG-262

Says that the cEnumClasses Hashmap in the Enum class is keeping a
ClassLoader from being garbage collected and that switching it to a
WeakHashMap should fix it.

Seems fair to me, and an easy fix for 2.2; but not something I can
think of simple ways to unit test.

Any thoughts?

Hen

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: r441940 - /jakarta/commons/proper/httpclient/trunk/release_notes.txt

2006-09-10 Thread olegk
Author: olegk
Date: Sun Sep 10 04:14:12 2006
New Revision: 441940

URL: http://svn.apache.org/viewvc?view=revrev=441940
Log:
HTTPCLIENT-597

Modified:
jakarta/commons/proper/httpclient/trunk/release_notes.txt

Modified: jakarta/commons/proper/httpclient/trunk/release_notes.txt
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/httpclient/trunk/release_notes.txt?view=diffrev=441940r1=441939r2=441940
==
--- jakarta/commons/proper/httpclient/trunk/release_notes.txt (original)
+++ jakarta/commons/proper/httpclient/trunk/release_notes.txt Sun Sep 10 
04:14:12 2006
@@ -1,6 +1,10 @@
 ---
 Changes since Release 3.1 Alpha 1:
 
+* [HTTPCLIENT-597] - Improved handling of idle connections in the 
multithreaded HTTP connection 
+   manager. 
+   Contributed by Michael Becke mbecke at apache.org
+
 * [HTTPCLIENT-593] - Fixed problem with #equals() and #hashCode() methods in 
subclasses of 
DefaultProtocolSocketFactory and SSLProtocolSocketFactory
Contributed by Chris Audley chrisaudley at yahoo.com



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Rory Winston

Hey guys

An interesting discussion here. I'll try to address some of the points 
raised and give my take on the issue.


* As far as [net] specifically is concerned, there are very few things 
that 1.5 makes possible that you really can't do on 1.3 (One of these is 
asynchronous I/O and a select()-based thread notification model). 
However, 1.5 does make a *ton* of things much cleaner. For instance, 
regex support is now on a par with [oro], so we lose our only external 
dependency, making [net] a self-contained single jar download. We can 
also support secure FTP without having to install a separate JSSE jar, 
as SSL/TLS support is now integral in JCE. Apart from that, there are 
many, many, smaller enhancements that we can make. See


http://people.apache.org/~rwinston/commons-net-2.0/site/changes-report.html#2.0

for a few.

* As far as I am concerned, the ideal scenario for a project like [net] 
is that 1.5+ support continues on a different version line. It may be 
the trunk, it may be a branch. So for [net], the 1.x line is for JDK 
1.4.x and below, and the 2.0 line is 1.5+. It doesn't in any way mean 
that support is suddenly dropped for pre-Tiger releases. But sooner or 
later, 2.0 is the main development version, and that's where the effort 
should go.


* I don't like the concept of a .net5 package name. Does this mean 
that we need a .net6 package space when JDK 6 is released? It doesn't 
feel elegant, and it loses one of the big advantages that the current 
system has : a user can upgrade their JDK from 1.3 to 5.0 overnight, 
download a new [net] 2.0 jar, and their FTPClient-based code should 
*just work* (with a 90% probability ;)).


* I agree with Henri's comment below about Commons being a maintenance 
vs. development space. JDK 5.0 has been officially released for around 
two years. In my opinion, there shouldn't even be a debate. It should be 
taken advantage of, and supported, although not at the expense of 
existing users on older versions.


Cheers
Rory



Henri Yandell wrote:

On 9/9/06, Stephen Colebourne [EMAIL PROTECTED] wrote:

Steve Cohen wrote:
 I am not ready to vote yet on this until there is a discussion about
 what this release means.  Will commons-net-2.0 become the official
 release, with previous versions relegated to backward compatibility
 support?  If so, this may be premature as Sun is still supporting
 JDK-1.4.2-x.

 But I don't think we should stand in the way of progress either.  
Rory,

 can you comment on what are the specific new features that demand JDK
 5.0 support?

 How have other jakarta-commons projects handled this?  Are there any
 official versions that require 1.5?  Are there projects that have two
 official releases?

I see this as a positive step (a JDK 1.5 only release).
I also see this as the right jump (from JDK 1.2/1.3 to 1.5).


I'm a strong +1 for JDK 1.5 dependence.

The way I see it is that while we're supporting 1.2-1.4, new
development happens on 1.5 so the only time we need to worry about
older JVMs is for critical bugfixes on maintenance systems - not for
new development.

Trying to focus on old JVMs makes us a maintenance project, not a
development project and that's damaging for the project health.

Lang 2.2 is in a limbo state because I can't get 1.2 for my Mac, I
need to dig into Ubuntu to try and get it to work there and I can't
even figure out how to get it to work on Windows at the moment (JDK
1.6 appears to be taking over the JAVA_HOME and PATH, but it's not
defined in the user's environment variables).

Another reason is that Lang has tests that fail to pass on 1.2 and
1.3; possibly due to bugs in the JVM (time crap). Even once I can make
a 1.2/1.3 build, I'm not sure if I should.

Plus other reasons, such as being without a happy laptop at home until
tonight :)


However, I believe that commons holds an almost unique place in Java
development being the lowest layer in many many open source projects. As
such making an incompatible major version change is a *very* big deal.

[PROPOSAL]
As such, I would like to propose that projects creating a JDK1.5 only
release should use a new package name. Thus, in this case, the release
would use the package  org.apache.commons.net5.*.


-1 for a slew of reasons.

* Lots of source code would have to be touched just to upgrade; big
pain in the arse for something that is quite likely to not involve any
other change to a user's source.

* Building v49 class files is going to explode on a v48 JVM, so people
are going to be stopped pretty quickly from using the net5 on their
old JVM. We don't need to protect them via packages.

* Do we do net3 and net4 if we move from 1.2 to 1.3/1.4? Do we do net6?


With this change, a user can have both the old and the new commons-net
jars in their classpath without any conflicts.


Only a JDK 1.5 user (1.6 too I guess). Presuming we make 1.5 targetted
builds and not 1.2-1.4. And then it's nothing to do with 1.4/1.5 and
just the classic problem of package clash 

[EMAIL PROTECTED]: Project commons-jelly-tags-jsl-test (in module commons-jelly) failed

2006-09-10 Thread commons-jelly-tags-jsl development
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 [EMAIL PROTECTED]

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


Full details are available at:

http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-jsl-test/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Dependency on ant exists, no need to add for property 
maven.jar.ant-optional.
 -DEBUG- Dependency on xml-xerces exists, no need to add for property 
maven.jar.xerces.
 -DEBUG- (Gump generated) Maven Properties in: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl/build.properties
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl/project.xml
 -DEBUG- Maven project properties in: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl/project.properties
 -INFO- Project Reports in: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl/target/test-reports



The following work was performed:
http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-jsl-test/gump_work/build_commons-jelly_commons-jelly-tags-jsl-test.html
Work Name: build_commons-jelly_commons-jelly-tags-jsl-test (Type: Build)
Work ended in a state of : Failed
Elapsed: 19 secs
Command Line: maven --offline jar 
[Working Directory: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl]
CLASSPATH: 
/opt/jdk1.5/lib/tools.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/commons-cli-1.0.x/target/commons-cli-10092006.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/target/commons-jelly-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/ant/target/commons-jelly-tags-ant-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/junit/target/commons-jelly-tags-junit-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/log/target/commons-jelly-tags-log-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/target/commons-jelly-tags-xml-10092006.jar:/usr/local/gump/public/workspace/jakarta-commons/jexl/dist/commons-jexl-10092006.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/target/commons-logging-10092006.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/target/commons-logging-api-10092006.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/public/workspace/jaxen/target/jaxen-10092006.jar
-
[junit] at 
org.apache.commons.jelly.tags.junit.AssertTagSupport.fail(AssertTagSupport.java:63)
[junit] at 
org.apache.commons.jelly.tags.junit.AssertTag.doTag(AssertTag.java:58)
[junit] at 
org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262)
[junit] at 
org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
[junit] at 
org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:186)
[junit] at 
org.apache.commons.jelly.impl.StaticTag.doTag(StaticTag.java:65)
[junit] at 
org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:112)
[junit] at 
org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
[junit] at 
org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:186)
[junit] at 
org.apache.commons.jelly.tags.jsl.TemplateTag$1.run(TemplateTag.java:160)
[junit] at org.dom4j.rule.Mode.fireRule(Mode.java:59)
[junit] at org.dom4j.rule.Mode.applyTemplates(Mode.java:80)
[junit] at org.dom4j.rule.RuleManager$1.run(RuleManager.java:171)
[junit] at org.dom4j.rule.Mode.fireRule(Mode.java:59)
[junit] at org.dom4j.rule.Stylesheet.run(Stylesheet.java:102)
[junit] at org.dom4j.rule.Stylesheet.run(Stylesheet.java:91)
[junit] at 

[EMAIL PROTECTED]: Project commons-jelly-tags-jsl-test (in module commons-jelly) failed

2006-09-10 Thread commons-jelly-tags-jsl development
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 [EMAIL PROTECTED]

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


Full details are available at:

http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-jsl-test/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Dependency on ant exists, no need to add for property 
maven.jar.ant-optional.
 -DEBUG- Dependency on xml-xerces exists, no need to add for property 
maven.jar.xerces.
 -DEBUG- (Gump generated) Maven Properties in: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl/build.properties
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl/project.xml
 -DEBUG- Maven project properties in: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl/project.properties
 -INFO- Project Reports in: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl/target/test-reports



The following work was performed:
http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-jsl-test/gump_work/build_commons-jelly_commons-jelly-tags-jsl-test.html
Work Name: build_commons-jelly_commons-jelly-tags-jsl-test (Type: Build)
Work ended in a state of : Failed
Elapsed: 19 secs
Command Line: maven --offline jar 
[Working Directory: 
/usr/local/gump/public/workspace/commons-jelly/jelly-tags/jsl]
CLASSPATH: 
/opt/jdk1.5/lib/tools.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/commons-cli-1.0.x/target/commons-cli-10092006.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/target/commons-jelly-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/ant/target/commons-jelly-tags-ant-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/junit/target/commons-jelly-tags-junit-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/log/target/commons-jelly-tags-log-10092006.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/target/commons-jelly-tags-xml-10092006.jar:/usr/local/gump/public/workspace/jakarta-commons/jexl/dist/commons-jexl-10092006.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/target/commons-logging-10092006.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/target/commons-logging-api-10092006.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/public/workspace/jaxen/target/jaxen-10092006.jar
-
[junit] at 
org.apache.commons.jelly.tags.junit.AssertTagSupport.fail(AssertTagSupport.java:63)
[junit] at 
org.apache.commons.jelly.tags.junit.AssertTag.doTag(AssertTag.java:58)
[junit] at 
org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262)
[junit] at 
org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
[junit] at 
org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:186)
[junit] at 
org.apache.commons.jelly.impl.StaticTag.doTag(StaticTag.java:65)
[junit] at 
org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:112)
[junit] at 
org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
[junit] at 
org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:186)
[junit] at 
org.apache.commons.jelly.tags.jsl.TemplateTag$1.run(TemplateTag.java:160)
[junit] at org.dom4j.rule.Mode.fireRule(Mode.java:59)
[junit] at org.dom4j.rule.Mode.applyTemplates(Mode.java:80)
[junit] at org.dom4j.rule.RuleManager$1.run(RuleManager.java:171)
[junit] at org.dom4j.rule.Mode.fireRule(Mode.java:59)
[junit] at org.dom4j.rule.Stylesheet.run(Stylesheet.java:102)
[junit] at org.dom4j.rule.Stylesheet.run(Stylesheet.java:91)
[junit] at 

[nightly build] finder failed.

2006-09-10 Thread psteitz
Failed build logs:
http://people.apache.org/~psteitz/commons-nightlies/20060910/finder.log

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Steve Cohen

Continuing the discussion:

1.  Regex support is in 1.4.  It's only because we were trying to stay 1.2/1.3 
compatible that we couldn't use it.  That's a small point.  I doubt we want to 
have (say) a 1.4.2 branch that requires 1.4 after having supported 1.2/1.3 for 
all these years, if our soon-to-be target is 1.5.  I do agree that the oro 
dependency has been a very annoying pebble in the shoe.


2.  I'm not comfortable with the .net5 package name.  I see a cvs nightmare down 
that road.  I guess SVN can handle that but it's still ugly.  It makes upgrade 
for clients of net a maintenance nightmare.


3.   JDK 5.0 has been officially released for around
 two years. In my opinion, there shouldn't even be a debate. It should be
 taken advantage of, and supported, although not at the expense of
 existing users on older versions.

No, there unfortunately does need to be this debate.  Sun has not end-of-lifed 
1.4.2.  That is important.  They continue to release new subreleases of 1.4.2. 
Why?  Important clients are still not ready to use 5.0.  My employer, a very 
large corporation, now mandates the use of 5.0 but is forced immediately to 
relent on this mandate for some of its most important projects because it also 
still uses a lot of Websphere which still does not support 5.0 (and won't until 
WebSphere 7 is released and even then it will be some time before the server 
teams are ready to make that switch - they dragged their feet on Websphere 6 
until recently).  So Sun has to support 1.4 (and continues to have to make new 
subreleases of 1.4.2 for reasons such as the new daylight savings time start/end 
dates).  The world marches on even when corporate java clients do not.


Backward compatibility's a bitch, but if Sun has to worry about this, I think we 
do too.  I don't think jakarta-commons has ever downgraded a version of java 
that Sun considers live.


And yet, as Rory says, there are some compelling reasons to do so. I'd love to 
use JDK 5.0.  It hasn't been a possibility for me yet.  Even outside of work, 
for a long time Eclipse did not support 5.0 although I don't think it is anymore.


So what is the solution?  What does it mean to say not at the expense of 
existing users on older versions? I think we'd need to modify the site to have 
full support for two release branches, with some easy switch between them. 
There should be navigation menu items on the 2.0 site that point back to the 
1.4.x site and vice versa as is the case with Tomcat and other projects.  We 
can't just say all new development will be on 2.0, we'll continue to make 1.4.1 
available for those who can't make the move.  We may want to say that, but I 
don't think our user base will let us.  Until Sun EOL's 1.4.x, I think our 
policy must be that every change that can be supported on pre-2.0 will be 
supported there.


I also wonder if this should be a jakarta-commons-wide policy and not just 
something that net does.



Rory Winston wrote:

Hey guys

An interesting discussion here. I'll try to address some of the points 
raised and give my take on the issue.


* As far as [net] specifically is concerned, there are very few things 
that 1.5 makes possible that you really can't do on 1.3 (One of these is 
asynchronous I/O and a select()-based thread notification model). 
However, 1.5 does make a *ton* of things much cleaner. For instance, 
regex support is now on a par with [oro], so we lose our only external 
dependency, making [net] a self-contained single jar download. We can 
also support secure FTP without having to install a separate JSSE jar, 
as SSL/TLS support is now integral in JCE. Apart from that, there are 
many, many, smaller enhancements that we can make. See


http://people.apache.org/~rwinston/commons-net-2.0/site/changes-report.html#2.0 



for a few.

* As far as I am concerned, the ideal scenario for a project like [net] 
is that 1.5+ support continues on a different version line. It may be 
the trunk, it may be a branch. So for [net], the 1.x line is for JDK 
1.4.x and below, and the 2.0 line is 1.5+. It doesn't in any way mean 
that support is suddenly dropped for pre-Tiger releases. But sooner or 
later, 2.0 is the main development version, and that's where the effort 
should go.


* I don't like the concept of a .net5 package name. Does this mean 
that we need a .net6 package space when JDK 6 is released? It doesn't 
feel elegant, and it loses one of the big advantages that the current 
system has : a user can upgrade their JDK from 1.3 to 5.0 overnight, 
download a new [net] 2.0 jar, and their FTPClient-based code should 
*just work* (with a 90% probability ;)).


* I agree with Henri's comment below about Commons being a maintenance 
vs. development space. JDK 5.0 has been officially released for around 
two years. In my opinion, there shouldn't even be a debate. It should be 
taken advantage of, and supported, although not at the expense of 
existing users on older versions.


Cheers
Rory



Henri 

Re: [VOTE] Release [net] version 2.0

2006-09-10 Thread Rahul Akolkar

On 9/9/06, Steve Cohen [EMAIL PROTECTED] wrote:
snip/


I am not ready to vote yet on this until there is a discussion about what this
release means.  Will commons-net-2.0 become the official release, with
previous versions relegated to backward compatibility support?  If so, this
may be premature as Sun is still supporting JDK-1.4.2-x.


snap/

I see this has spawned the necessary discussion, and I'm unlikely to
vote until that discussion reaches some semblance of completion.

-Rahul



But I don't think we should stand in the way of progress either.  Rory, can you
comment on what are the specific new features that demand JDK 5.0 support?

How have other jakarta-commons projects handled this?  Are there any official
versions that require 1.5?  Are there projects that have two official 
releases?

Steve Cohen



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [cli][configuration][convert] Architecting our overlaps

2006-09-10 Thread Oliver Heger

Henri Yandell wrote:

So I'm using [cli] in [finder] to see if I can mimic the command line
interface for the unix find command. I'm using the cli2 version - lots
of thought, but very painful to use. Here are the 30 lines of code to
add a single option:

snip/
Must learn more about the CLI API before I can comment on this.


Perusing the CLI2 javadoc, my second thought is that it overlaps with
Configuration a lot. You can have Properties and Preferences command
There is an enhancement request for [configuration] for a command line 
configuration: http://issues.apache.org/jira/browse/CONFIGURATION-211

This also shows that there is overlap.


lines; and Configuration lacks a CLI style way to input data.

Not sure what you mean by this.


A third thought is that the CLI2 CommandLine API for the data itself
rests on a getValue(Option);Object method, which implies some
conversion is going on but I've not seen how yet by looking at the
API. Configuration also does conversion of String to various objects.
BeanUtils does that too, which gave rise to an overmodelled [convert]
package that we've talked about restarting as something simpler.
In [configuration] there are many conversion functions to different data 
types. Especially the conversions that deal with arrays and lists are a 
pain IMHO: There is a huge amount of code that implements these 
conversions in a structural very similar way. It would be really cool 
(except for an additional dependency) if this code could be dropped or 
significantly be simplified by making use of a special [convert] 
project. There is surely a need for such a conversion library.


Oliver



--

Any of that kick off any thoughts?

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]



Re: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Rahul Akolkar

On 9/10/06, Steve Cohen [EMAIL PROTECTED] wrote:

Continuing the discussion:

1.  Regex support is in 1.4.  It's only because we were trying to stay 1.2/1.3
compatible that we couldn't use it.  That's a small point.  I doubt we want to
have (say) a 1.4.2 branch that requires 1.4 after having supported 1.2/1.3 for
all these years, if our soon-to-be target is 1.5.  I do agree that the oro
dependency has been a very annoying pebble in the shoe.

2.  I'm not comfortable with the .net5 package name.  I see a cvs nightmare down
that road.  I guess SVN can handle that but it's still ugly.  It makes upgrade
for clients of net a maintenance nightmare.

3.   JDK 5.0 has been officially released for around
  two years. In my opinion, there shouldn't even be a debate. It should be
  taken advantage of, and supported, although not at the expense of
  existing users on older versions.

No, there unfortunately does need to be this debate.  Sun has not end-of-lifed
1.4.2.  That is important.  They continue to release new subreleases of 1.4.2.
Why?  Important clients are still not ready to use 5.0.  My employer, a very
large corporation, now mandates the use of 5.0 but is forced immediately to
relent on this mandate for some of its most important projects because it also
still uses a lot of Websphere which still does not support 5.0 (and won't until
WebSphere 7 is released and even then it will be some time before the server
teams are ready to make that switch - they dragged their feet on Websphere 6
until recently).  So Sun has to support 1.4 (and continues to have to make new
subreleases of 1.4.2 for reasons such as the new daylight savings time start/end
dates).  The world marches on even when corporate java clients do not.

Backward compatibility's a bitch, but if Sun has to worry about this, I think we
do too.  I don't think jakarta-commons has ever downgraded a version of java
that Sun considers live.

And yet, as Rory says, there are some compelling reasons to do so. I'd love to
use JDK 5.0.  It hasn't been a possibility for me yet.  Even outside of work,
for a long time Eclipse did not support 5.0 although I don't think it is 
anymore.

So what is the solution?  What does it mean to say not at the expense of
existing users on older versions? I think we'd need to modify the site to have
full support for two release branches, with some easy switch between them.
There should be navigation menu items on the 2.0 site that point back to the
1.4.x site and vice versa as is the case with Tomcat and other projects.  We
can't just say all new development will be on 2.0, we'll continue to make 1.4.1
available for those who can't make the move.  We may want to say that, but I
don't think our user base will let us.  Until Sun EOL's 1.4.x, I think our
policy must be that every change that can be supported on pre-2.0 will be
supported there.

I also wonder if this should be a jakarta-commons-wide policy and not just
something that net does.


snip/

Mostly agree to Steve's note above. IMO:

* New projects have a choice to start off with 1.4 (the least version
that hasn't begun the EOL process) -- as did SCXML. Unless ofcourse,
the central concept of the component itself is based on a 1.5 (or
higher) feature.

* Older projects need to atleast support 1.4 (with active development
as in ports back from a 1.5 branch where possible etc.) until 1.4
begins to be EOL'ed. Again, above caveat will apply.

Having said that, I've been a proponent of 1.5 branches (and now
releases, as long as they're preceded by suitable discussion).

As a sidebar, Hen -- I feel your pain about having to go =1.2 for
certain releases. Personally, I won't even think about RM'ing anything
that needs those. In the end, if its causing much grief that hampers
releases, perhaps that baseline may need revisiting.

-Rahul

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Rory Winston
I agree with the major points that Steve has made below. I would think 
that a logical way to go (at least for [net]} would be :


* Version 2.0 (JDK 5.0+) becomes the main development branch, and the 
focal point for new features;
* Version 1.x continues to be supported, in that fixes and new features 
are backported where possible, and code submitted by the community 
targeted at the 1.x branch can still be applied.


I think this is a pretty reasonable way of moving forward, encouraging 
new development on a codebase free of the shackles of legacy 
limitations, whilst still being able to service users with more 
conservative requirements.



Rory



Steve Cohen wrote:

Continuing the discussion:

1.  Regex support is in 1.4.  It's only because we were trying to stay 
1.2/1.3 compatible that we couldn't use it.  That's a small point.  I 
doubt we want to have (say) a 1.4.2 branch that requires 1.4 after 
having supported 1.2/1.3 for all these years, if our soon-to-be target 
is 1.5.  I do agree that the oro dependency has been a very annoying 
pebble in the shoe.


2.  I'm not comfortable with the .net5 package name.  I see a cvs 
nightmare down that road.  I guess SVN can handle that but it's still 
ugly.  It makes upgrade for clients of net a maintenance nightmare.


3.   JDK 5.0 has been officially released for around
 two years. In my opinion, there shouldn't even be a debate. It 
should be

 taken advantage of, and supported, although not at the expense of
 existing users on older versions.

No, there unfortunately does need to be this debate.  Sun has not 
end-of-lifed 1.4.2.  That is important.  They continue to release new 
subreleases of 1.4.2. Why?  Important clients are still not ready to 
use 5.0.  My employer, a very large corporation, now mandates the use 
of 5.0 but is forced immediately to relent on this mandate for some of 
its most important projects because it also still uses a lot of 
Websphere which still does not support 5.0 (and won't until WebSphere 
7 is released and even then it will be some time before the server 
teams are ready to make that switch - they dragged their feet on 
Websphere 6 until recently).  So Sun has to support 1.4 (and continues 
to have to make new subreleases of 1.4.2 for reasons such as the new 
daylight savings time start/end dates).  The world marches on even 
when corporate java clients do not.


Backward compatibility's a bitch, but if Sun has to worry about this, 
I think we do too.  I don't think jakarta-commons has ever 
downgraded a version of java that Sun considers live.


And yet, as Rory says, there are some compelling reasons to do so. I'd 
love to use JDK 5.0.  It hasn't been a possibility for me yet.  Even 
outside of work, for a long time Eclipse did not support 5.0 although 
I don't think it is anymore.


So what is the solution?  What does it mean to say not at the expense 
of existing users on older versions? I think we'd need to modify the 
site to have full support for two release branches, with some easy 
switch between them. There should be navigation menu items on the 2.0 
site that point back to the 1.4.x site and vice versa as is the case 
with Tomcat and other projects.  We can't just say all new development 
will be on 2.0, we'll continue to make 1.4.1 available for those who 
can't make the move.  We may want to say that, but I don't think our 
user base will let us.  Until Sun EOL's 1.4.x, I think our policy must 
be that every change that can be supported on pre-2.0 will be 
supported there.


I also wonder if this should be a jakarta-commons-wide policy and not 
just something that net does.



Rory Winston wrote:

Hey guys

An interesting discussion here. I'll try to address some of the 
points raised and give my take on the issue.


* As far as [net] specifically is concerned, there are very few 
things that 1.5 makes possible that you really can't do on 1.3 (One 
of these is asynchronous I/O and a select()-based thread notification 
model). However, 1.5 does make a *ton* of things much cleaner. For 
instance, regex support is now on a par with [oro], so we lose our 
only external dependency, making [net] a self-contained single jar 
download. We can also support secure FTP without having to install a 
separate JSSE jar, as SSL/TLS support is now integral in JCE. Apart 
from that, there are many, many, smaller enhancements that we can 
make. See


http://people.apache.org/~rwinston/commons-net-2.0/site/changes-report.html#2.0 



for a few.

* As far as I am concerned, the ideal scenario for a project like 
[net] is that 1.5+ support continues on a different version line. It 
may be the trunk, it may be a branch. So for [net], the 1.x line is 
for JDK 1.4.x and below, and the 2.0 line is 1.5+. It doesn't in any 
way mean that support is suddenly dropped for pre-Tiger releases. But 
sooner or later, 2.0 is the main development version, and that's 
where the effort should go.


* I don't like the concept of a .net5 package 

[math] Mantissa inclusion and copyright issues

2006-09-10 Thread Luc Maisonobe

Hello,

As mentioned a few times on this list, I have proposed to donate the 
Mantissa (http://www.spaceroots.org/software/mantissa/index.html) code 
to Apache and continue maintaining it here along with commons math.


Almost everything has been both designed and coded by me, so I was able 
to sign a Software Grant myself for everything except one class already 
identified since the beginning. However, after some checks, four 
additional Mantissa classes could induce some copyright issues and I am 
seeking for advices for these classes.


org.spaceroots.mantissa.estimation.LevenbergMarquardtEstimator:

This class is an implementation of the Levenberg-Marquardt algorithm. 
The internal code is a translation in Java of the 1980 fortran lmder, 
lmpar and qrsolv  routines (http://www.netlib.org/minpack/lmder.f, 
http://www.netlib.org/minpack/lmpar.f, 
http://www.netlib.org/minpack/qrsolv.f) which are distributed as part of 
minpack under the following license: 
http://www.netlib.org/minpack/disclaimer. The code I want to donate 
includes the following changes from minpack:


  - complete translation of all code in Java
  - complete redesign of the interface to fit
with the existing Mantissa Estimator interface
  - complete rewrite of the Q.R decomposition part
to use another implementation derived from a textbook
  - adaptation of the upper-level code (calling the Q.R
decomposition) to the lower-level implementation changes
(calls, indices and columns reordering handling)

The implementation of the estimate (lmder), determineLMParameter (lmpar) 
and determineLMDirection (qrsolv) are the parts that come from Minpack, 
their origin are advertised (as required by Minpack license) and only 
the translation in Java and the adaptation are new. All the rest of the 
class (interface, all other methods including qrDecomposition) is 
original work.


From a users perspective, it is a very important algorithm and a clear 
improvement for commons math. It also seems that most (if not all) 
implementations of the algorithm are indeed translations of these 
minpack routines. It seems difficult to ask for the original authors to 
provide a software grant to Apache. Is this class acceptable in commons 
math or should it be dropped (it would be difficult to reimplement the 
three methods directly translated from minpack) ?


org.spaceroots.mantissa.ode.GraggBulirschStoerIntegrator and 
org.spaceroots.mantissa.ode.GraggBulirschStoerInterpolator


These classes are an implementation of the Gragg-Bulirsch-Stoer 
integrator. The internal code is a translation in Java of the fortran 
odex code by E. Hairer and G. Wanner 
(http://www.unige.ch/math/folks/hairer/prog/nonstiff/odex.f) distributed 
under the following license (BSD type):

http://www.unige.ch/~hairer/prog/licence.txt

The algorithm is described in the well known Hairer, Norsett and Wanner 
textbook Solving Differential Equations (part I, nonstiff problems).


The code I want to donate includes the following changes from odex:

  - complete translation of all code in Java
  - complete redesign of the interface to fit
with the existing Mantissa FirstOrderIntegrator interface

From a users perspective, this integrator could be omitted. It is one 
of the best integrators available for nonstiff problems, of course, but 
Mantissa also includes the Dormand-Prince 8(5,3) which is another very 
good integrator, and which was implemented from scratch and shares the 
design of other Runge-Kutta-Fehlberg integrators. Should these two 
classes be included in commons math ?


org.spaceroots.mantissa.random.MersenneTwister:

This class is an implementation of the Mersenne twister pseudo-random 
generator. It is a translation of the Makoto Matsumoto and Takuji 
Nishimura c code.


As there is already an implementation of the Mersenne twister in commons 
math, it seems irrelevant to include this new implementation.


Luc

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Steve Cohen
I think we are in agreement.  I would be available to do some of the backporting 
work if we go down this path.


Does anyone have anything to say about making the site a dual site (something 
like Tomcat does)?  How difficult is that?  Does Maven 2 aid in such a process,
can it build a site from two different SVN branches at once?  Or is it really 
just two sites that link to one another?



Rory Winston wrote:
I agree with the major points that Steve has made below. I would think 
that a logical way to go (at least for [net]} would be :


* Version 2.0 (JDK 5.0+) becomes the main development branch, and the 
focal point for new features;
* Version 1.x continues to be supported, in that fixes and new features 
are backported where possible, and code submitted by the community 
targeted at the 1.x branch can still be applied.


I think this is a pretty reasonable way of moving forward, encouraging 
new development on a codebase free of the shackles of legacy 
limitations, whilst still being able to service users with more 
conservative requirements.



Rory



Steve Cohen wrote:

Continuing the discussion:

1.  Regex support is in 1.4.  It's only because we were trying to stay 
1.2/1.3 compatible that we couldn't use it.  That's a small point.  I 
doubt we want to have (say) a 1.4.2 branch that requires 1.4 after 
having supported 1.2/1.3 for all these years, if our soon-to-be target 
is 1.5.  I do agree that the oro dependency has been a very annoying 
pebble in the shoe.


2.  I'm not comfortable with the .net5 package name.  I see a cvs 
nightmare down that road.  I guess SVN can handle that but it's still 
ugly.  It makes upgrade for clients of net a maintenance nightmare.


3.   JDK 5.0 has been officially released for around
 two years. In my opinion, there shouldn't even be a debate. It 
should be

 taken advantage of, and supported, although not at the expense of
 existing users on older versions.

No, there unfortunately does need to be this debate.  Sun has not 
end-of-lifed 1.4.2.  That is important.  They continue to release new 
subreleases of 1.4.2. Why?  Important clients are still not ready to 
use 5.0.  My employer, a very large corporation, now mandates the use 
of 5.0 but is forced immediately to relent on this mandate for some of 
its most important projects because it also still uses a lot of 
Websphere which still does not support 5.0 (and won't until WebSphere 
7 is released and even then it will be some time before the server 
teams are ready to make that switch - they dragged their feet on 
Websphere 6 until recently).  So Sun has to support 1.4 (and continues 
to have to make new subreleases of 1.4.2 for reasons such as the new 
daylight savings time start/end dates).  The world marches on even 
when corporate java clients do not.


Backward compatibility's a bitch, but if Sun has to worry about this, 
I think we do too.  I don't think jakarta-commons has ever 
downgraded a version of java that Sun considers live.


And yet, as Rory says, there are some compelling reasons to do so. I'd 
love to use JDK 5.0.  It hasn't been a possibility for me yet.  Even 
outside of work, for a long time Eclipse did not support 5.0 although 
I don't think it is anymore.


So what is the solution?  What does it mean to say not at the expense 
of existing users on older versions? I think we'd need to modify the 
site to have full support for two release branches, with some easy 
switch between them. There should be navigation menu items on the 2.0 
site that point back to the 1.4.x site and vice versa as is the case 
with Tomcat and other projects.  We can't just say all new development 
will be on 2.0, we'll continue to make 1.4.1 available for those who 
can't make the move.  We may want to say that, but I don't think our 
user base will let us.  Until Sun EOL's 1.4.x, I think our policy must 
be that every change that can be supported on pre-2.0 will be 
supported there.


I also wonder if this should be a jakarta-commons-wide policy and not 
just something that net does.



Rory Winston wrote:

Hey guys

An interesting discussion here. I'll try to address some of the 
points raised and give my take on the issue.


* As far as [net] specifically is concerned, there are very few 
things that 1.5 makes possible that you really can't do on 1.3 (One 
of these is asynchronous I/O and a select()-based thread notification 
model). However, 1.5 does make a *ton* of things much cleaner. For 
instance, regex support is now on a par with [oro], so we lose our 
only external dependency, making [net] a self-contained single jar 
download. We can also support secure FTP without having to install a 
separate JSSE jar, as SSL/TLS support is now integral in JCE. Apart 
from that, there are many, many, smaller enhancements that we can 
make. See


http://people.apache.org/~rwinston/commons-net-2.0/site/changes-report.html#2.0 



for a few.

* As far as I am concerned, the ideal scenario for a project like 
[net] 

Re: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Jochen Wiedmann

May I point out, that tools like retroweaver or retrotranslator can be
used to write code with most 1.5 features while still compiling for
1.4? I don't know whether this applies to the commons-net project, but
for most projects I know, this should still be fine.


Jochen

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [math] Mantissa inclusion and copyright issues

2006-09-10 Thread Henri Yandell

It looks like the Minpack license is a BSD license with an extended
warranty and liability section. I'll ping the legal-discuss mailing
list about it, but it looks fine to me. Just some government
boilerplate tacked onto a BSD license I think.

The Hairer license is as you say, a BSD-like license, so that's fine.

For both cases, we don't need software grants. Instead we put the
information in the NOTICE.txt file. I presume the original files you
took the code from had copyright statements at the top?


Hen

On 9/10/06, Luc Maisonobe [EMAIL PROTECTED] wrote:

Hello,

As mentioned a few times on this list, I have proposed to donate the
Mantissa (http://www.spaceroots.org/software/mantissa/index.html) code
to Apache and continue maintaining it here along with commons math.

Almost everything has been both designed and coded by me, so I was able
to sign a Software Grant myself for everything except one class already
identified since the beginning. However, after some checks, four
additional Mantissa classes could induce some copyright issues and I am
seeking for advices for these classes.

org.spaceroots.mantissa.estimation.LevenbergMarquardtEstimator:

This class is an implementation of the Levenberg-Marquardt algorithm.
The internal code is a translation in Java of the 1980 fortran lmder,
lmpar and qrsolv  routines (http://www.netlib.org/minpack/lmder.f,
http://www.netlib.org/minpack/lmpar.f,
http://www.netlib.org/minpack/qrsolv.f) which are distributed as part of
minpack under the following license:
http://www.netlib.org/minpack/disclaimer. The code I want to donate
includes the following changes from minpack:

   - complete translation of all code in Java
   - complete redesign of the interface to fit
 with the existing Mantissa Estimator interface
   - complete rewrite of the Q.R decomposition part
 to use another implementation derived from a textbook
   - adaptation of the upper-level code (calling the Q.R
 decomposition) to the lower-level implementation changes
 (calls, indices and columns reordering handling)

The implementation of the estimate (lmder), determineLMParameter (lmpar)
and determineLMDirection (qrsolv) are the parts that come from Minpack,
their origin are advertised (as required by Minpack license) and only
the translation in Java and the adaptation are new. All the rest of the
class (interface, all other methods including qrDecomposition) is
original work.

 From a users perspective, it is a very important algorithm and a clear
improvement for commons math. It also seems that most (if not all)
implementations of the algorithm are indeed translations of these
minpack routines. It seems difficult to ask for the original authors to
provide a software grant to Apache. Is this class acceptable in commons
math or should it be dropped (it would be difficult to reimplement the
three methods directly translated from minpack) ?

org.spaceroots.mantissa.ode.GraggBulirschStoerIntegrator and
org.spaceroots.mantissa.ode.GraggBulirschStoerInterpolator

These classes are an implementation of the Gragg-Bulirsch-Stoer
integrator. The internal code is a translation in Java of the fortran
odex code by E. Hairer and G. Wanner
(http://www.unige.ch/math/folks/hairer/prog/nonstiff/odex.f) distributed
under the following license (BSD type):
http://www.unige.ch/~hairer/prog/licence.txt

The algorithm is described in the well known Hairer, Norsett and Wanner
textbook Solving Differential Equations (part I, nonstiff problems).

The code I want to donate includes the following changes from odex:

   - complete translation of all code in Java
   - complete redesign of the interface to fit
 with the existing Mantissa FirstOrderIntegrator interface

 From a users perspective, this integrator could be omitted. It is one
of the best integrators available for nonstiff problems, of course, but
Mantissa also includes the Dormand-Prince 8(5,3) which is another very
good integrator, and which was implemented from scratch and shares the
design of other Runge-Kutta-Fehlberg integrators. Should these two
classes be included in commons math ?

org.spaceroots.mantissa.random.MersenneTwister:

This class is an implementation of the Mersenne twister pseudo-random
generator. It is a translation of the Makoto Matsumoto and Takuji
Nishimura c code.

As there is already an implementation of the Mersenne twister in commons
math, it seems irrelevant to include this new implementation.

Luc

-
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: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Henri Yandell

How does that work exactly? Can we happily write 1.5 stuff and then
let the user take the 1.5 jar and retroweave it before using it, or do
we have to integrate retroweaver into our builds (though not our
sources I hope?)?

Hen

On 9/10/06, Jochen Wiedmann [EMAIL PROTECTED] wrote:

May I point out, that tools like retroweaver or retrotranslator can be
used to write code with most 1.5 features while still compiling for
1.4? I don't know whether this applies to the commons-net project, but
for most projects I know, this should still be fine.


Jochen

-
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: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Brett Porter
You'd integrate it into your builds. However, this doesn't help with  
missing APIs (though I believe retrotranslator does take care of some  
of these). It's a pretty good solution for providing JDK 5 binaries  
for JDK 1.4.


However, I don't think this addresses the issue being faced - and it  
isn't entirely a JDK 5 related one, but something that is faced  
whenever a component might want an extreme makeover.


IMO, this is the best pattern to follow:
- keep the maintenance branches going for the previous release, and  
bump trunk to the next major version
- if new functionality can be isolated to a new package or a separate  
module, do that (eg, some libraries like xwork have an xwork-tiger  
module for jdk5 related code)
- if the update can remain api compatible, then there is no need to  
change package names (eg, the JDK added generics to a lot of the  
runtime without making incompatible changes to the public interfaces)
- if the update must change the api, consider changing the package  
name (but only do so if there is a need to use both versions of the  
jar in a single classloader, for example lucene was able to safely  
overhaul their api for 2.0 because it would be unlikely both would be  
in the same classloader)


Obviously, the final one is a last resort and should be avoided -  
especially since that case would be quite prevalent for commons. If  
it really really really was needed for some reason, I'd call it  
o.a.c.net2 (or hopefully something better) rather than net5,  
reflecting the API not the JDK it is designed for because that'll  
quickly be outdated as JDK 6 comes out.


I think these are all general principles to apply to API evolution,  
not just for JDK 5 related changes. Didn't collections go through  
this (backwards-incompatible API change, not a JDK5-ification) Îin  
the past for 3.0? Any experiences that can be learned from there?


HTH,
Brett

On 11/09/2006, at 7:16 AM, Henri Yandell wrote:


How does that work exactly? Can we happily write 1.5 stuff and then
let the user take the 1.5 jar and retroweave it before using it, or do
we have to integrate retroweaver into our builds (though not our
sources I hope?)?

Hen

On 9/10/06, Jochen Wiedmann [EMAIL PROTECTED] wrote:
May I point out, that tools like retroweaver or retrotranslator  
can be

used to write code with most 1.5 features while still compiling for
1.4? I don't know whether this applies to the commons-net project,  
but

for most projects I know, this should still be fine.


Jochen

-
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: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Stephen Colebourne

Brett Porter wrote:
Didn't collections go through  this 
(backwards-incompatible API change, not a JDK5-ification) Îin  the past 
for 3.0? Any experiences that can be learned from there?


[collections] 3.0 has been FUDed with the backwards incompatible tag 
ever since it was released, but it was never exactly true. The release 
rewrote many classes, and tidied many APIs, but did so by moving them 
into new packages. The original classes were deprecated, so no problems...


...except that one backwards incompatible change did sneak in - where 
the return type of a constant was changed. The clirr tool would have 
caught it, but didn't exist then.


Stephen

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[PROPOSAL] Commons and API change

2006-09-10 Thread Stephen Colebourne
Some interesting points have been made so far. I believe I should 
restate my proposal based on feedback (especially as the original was 
written just after a weeks holiday...):


[PROPOSAL]
Whenever a project performs a backwards incompatible API change, two 
things must happen:

a) the major version is increased, eg. from 1.2 to 2.0
b) the package name is changed from o.a.c.foo to o.a.c.foo2, or 
alternatively to a completely new name, eg. o.a.c.bar

[/PROPOSAL]

Thus, this isn't really a JDK5 issue, but a basic issue of dependency 
management. And hence, as poined out, the API version number should be used.


Note however that it is possible to go up a major version without the 
proposed rule being enforced *if* and only if there are no backwards 
incompatible changes (removal of deprecations allowed).


Now, I would suggest that many projects going from a JDK1.2/3/4 base to 
a JDK1.5 base will want to (and should!) make API changes (also, because 
of generics et al its difficult to know if you *have* actually made a 
backwards incompatible change!) As such, I would expect these 1.5 
projects to be subject to the rule in the proposal.


I understand that this is a bit of a pain for end users, but its a pain 
because of the lack of a module system as per JSR277. I would argue that 
changing a package name to migrate is infinitely preferable when dealing 
with a library to coming up against an insoluble jar hell scenario.


Remember, [collections] took one small human error to cause an 
incredible amount of FUD and bad press about commons, that still reduces 
our user-base today. *Every* jar-hell scenario that is created worsens 
this. AFAIK, package renaming is the best, most-viable solution to 
backwards incompatible change in Java today.


Stephen


Henri Yandell wrote:

[PROPOSAL]
As such, I would like to propose that projects creating a JDK1.5 only
release should use a new package name. Thus, in this case, the release
would use the package  org.apache.commons.net5.*.


-1 for a slew of reasons.

* Lots of source code would have to be touched just to upgrade; big
pain in the arse for something that is quite likely to not involve any
other change to a user's source.

* Building v49 class files is going to explode on a v48 JVM, so people
are going to be stopped pretty quickly from using the net5 on their
old JVM. We don't need to protect them via packages.

* Do we do net3 and net4 if we move from 1.2 to 1.3/1.4? Do we do net6?


With this change, a user can have both the old and the new commons-net
jars in their classpath without any conflicts.


Only a JDK 1.5 user (1.6 too I guess). Presuming we make 1.5 targetted
builds and not 1.2-1.4. And then it's nothing to do with 1.4/1.5 and
just the classic problem of package clash within dependencies.

Note that these users may be different OSS projects, which may upgrade 
at different times.


Users wishing to migrate from one version to another can simply do a
global search and replace on the package name.

We must not underestimate the significance of the low-level position of
commons in the Java OSS, and proprietry, communities. A clear and
planned migration strategy for all our modules is needed.



I accept that by its nature Commons is going to cause problems every
time they release. We're going to be a frequent location for classpath
clash problems. It's not JVM relevant though, it happens every time we
release anything so the version you would need in the package name is
the Commons major version, not the jdk version.

I think we should declare that new development will be on 1.5 -
building 1.5 only jars. Anyone trying to use them on 1.4 and before is
going to get a nice error and we can start exploring new JDK features
like regular expressions *sarc :) *. Then we can stick with it until
1.8 is in beta or something.

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]



Re: [PROPOSAL] Commons and JDK5, was VOTE Release [net] version 2.0

2006-09-10 Thread Brett Porter
oops! Thanks for the clarification - I'd never had any problems  
myself, but I thought I'd gotten that indication from the release  
notes/web site. Long while ago now, obviously my memory isn't so good.


- Brett

On 11/09/2006, at 7:55 AM, Stephen Colebourne wrote:


Brett Porter wrote:
Didn't collections go through  this (backwards-incompatible API  
change, not a JDK5-ification) Îin  the past for 3.0? Any  
experiences that can be learned from there?


[collections] 3.0 has been FUDed with the backwards incompatible  
tag ever since it was released, but it was never exactly true. The  
release rewrote many classes, and tidied many APIs, but did so by  
moving them into new packages. The original classes were  
deprecated, so no problems...


...except that one backwards incompatible change did sneak in -  
where the return type of a constant was changed. The clirr tool  
would have caught it, but didn't exist then.


Stephen

-
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: [math] Mantissa inclusion and copyright issues

2006-09-10 Thread Luc Maisonobe

Henri Yandell wrote :

It looks like the Minpack license is a BSD license with an extended
warranty and liability section. I'll ping the legal-discuss mailing
list about it, but it looks fine to me. Just some government
boilerplate tacked onto a BSD license I think.


Thanks. I'm not subscribed to the legal-discuss list, could you tell me 
when you'll have an answer ?



The Hairer license is as you say, a BSD-like license, so that's fine.


Fine.


For both cases, we don't need software grants. Instead we put the
information in the NOTICE.txt file. I presume the original files you
took the code from had copyright statements at the top?


No, there was no formal copyright statements, just authors lists like 
you would find in a mathematical paper. In fact I had to dig around in 
the sites in order to find the licences. In Mantissa, I put the text of 
theses licenses in the Javadoc at class level and displayed the original 
authors names in @author statements.


Luc

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]