Re: [collections] idea for quick map creation method(s)

2003-09-17 Thread Stephen Colebourne
[lang]  ArrayUtils.toMap()

Stephen

- Original Message -
From: Janek Bogucki [EMAIL PROTECTED]
To: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Friday, September 12, 2003 10:55 PM
Subject: Re: idea for quick map creation method(s)


 On Fri, 2003-09-12 at 18:36, __matthewHawthorne wrote:
  One thing that I've always wanted is the ability to create a Map in one
  line of code.  For example, it would allow initialization of a static
  Map without having to resort to static blocks of code.
 
 
  I'm thinking of something like:
 
   createMap(Object[][])
   createMap(Map.Entry[])
 

 There was some discussion about this a while back. I'm not sure how it
 concluded but here's part of the relevant thread:

 http://marc.theaimsgroup.com/?l=jakarta-commons-devm=103426665022869w=2

 -Janek


 -
 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]



DO NOT REPLY [Bug 23159] - [collections][PATCH] makes code easier to understand

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23159.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23159

[collections][PATCH] makes code easier to understand





--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 08:13 ---
OK, I didn't write this class! The strange thing is that the code says I did, 
so someone is being done a dis-service here. I probably created the decorators, 
but this was based on code from elsewhere.

In design terms, I suggest making changes if you are agreed that they make 
sense. Threading issues cause me headaches ;-)

One thing I can say is that the lock variable is used by collection views, such 
as subList(), headSet() and tailSet(). So lock!=this is possible in some 
collections.

This collection is unreleased, so changes can be made. We must just document 
very clearly the intent of the classes.

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



cvs commit: jakarta-commons/collections project.xml

2003-09-17 Thread scolebourne
scolebourne2003/09/17 01:33:14

  Modified:collections project.xml
  Log:
  Update maven script to process all the tests
  
  Revision  ChangesPath
  1.14  +1 -1  jakarta-commons/collections/project.xml
  
  Index: project.xml
  ===
  RCS file: /home/cvs/jakarta-commons/collections/project.xml,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- project.xml   5 Sep 2003 01:58:48 -   1.13
  +++ project.xml   17 Sep 2003 08:33:14 -  1.14
  @@ -249,7 +249,7 @@
 build
   unitTest
 includes
  -includeorg/apache/commons/collections/TestAll.java/include
  +includeorg/apache/commons/collections/TestAllPackages.java/include
 /includes
   /unitTest
 /build
  
  
  

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



DO NOT REPLY [Bug 23155] - [collections][PATCH] increase number of tests run from 2484 to 7429

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23155.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23155

[collections][PATCH] increase number of tests run from 2484 to 7429

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 08:36 ---
Should be fixed now, thanks

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



cvs commit: jakarta-commons/collections/src/java/org/apache/commons/collections/comparators FixedOrderComparator.java TransformingComparator.java ComparatorChain.java

2003-09-17 Thread scolebourne
scolebourne2003/09/17 01:38:59

  Modified:collections/src/java/org/apache/commons/collections/comparators
FixedOrderComparator.java
TransformingComparator.java ComparatorChain.java
  Log:
  Javadoc fixes
  bug 23087, from Janek Bogucki
  
  Revision  ChangesPath
  1.6   +3 -3  
jakarta-commons/collections/src/java/org/apache/commons/collections/comparators/FixedOrderComparator.java
  
  Index: FixedOrderComparator.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/comparators/FixedOrderComparator.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FixedOrderComparator.java 31 Aug 2003 17:25:49 -  1.5
  +++ FixedOrderComparator.java 17 Sep 2003 08:38:59 -  1.6
  @@ -99,7 +99,7 @@
   
   /** 
* Behavior when comparing unknown Objects:
  - * unknown objects compare as before known Objects.
  + * unknown objects compare as after known Objects.
*/
   public static final int UNKNOWN_AFTER = 1;
   
  
  
  
  1.5   +2 -2  
jakarta-commons/collections/src/java/org/apache/commons/collections/comparators/TransformingComparator.java
  
  Index: TransformingComparator.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/comparators/TransformingComparator.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  
  
  
  1.14  +3 -3  
jakarta-commons/collections/src/java/org/apache/commons/collections/comparators/ComparatorChain.java
  
  Index: ComparatorChain.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/comparators/ComparatorChain.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ComparatorChain.java  31 Aug 2003 17:25:49 -  1.13
  +++ ComparatorChain.java  17 Sep 2003 08:38:59 -  1.14
  @@ -206,7 +206,7 @@
* @param index  index of the Comparator to replace
* @param comparator Comparator to place at the given index
* @exception IndexOutOfBoundsException
  - *   if index lt; 0 or index gt; size()
  + *   if index lt; 0 or index gt;= size()
*/
   public void setComparator(int index, Comparator comparator) 
   throws IndexOutOfBoundsException {
  
  
  

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



DO NOT REPLY [Bug 23087] - [collections][PATCH] JavaDoc fixes for iterators

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23087.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23087

[collections][PATCH] JavaDoc fixes for iterators

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 08:42 ---
You meant comparators package of course...
Thanks

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



DO NOT REPLY [Bug 23087] - [collections][PATCH] JavaDoc fixes for iterators

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23087.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23087

[collections][PATCH] JavaDoc fixes for iterators





--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 09:03 ---
...yes I did! Thanks!

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



RE: [HiveMind] Extension to adder example

2003-09-17 Thread Howard M. Lewis Ship
Right on the money ... except that I probably would not both defining the service 
model for Adder
and Subtractor; the default (deferred) is less efficient, but less trouble as well. 
Making those
services singletons (rather than deferred singletons) is a premature optimization.

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com

 -Original Message-
 From: Harish Krishnaswamy [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, September 16, 2003 7:31 PM
 To: Jakarta Commons Developers List
 Subject: Re: [HiveMind] Extension to adder example
 
 
 You wouldn't believe, I had done the very same thing except 
 called it a 
 Calculator!
 
 Here are my modules...
 
 Service point module:
 
 ?xml version=1.0?
 
 module id=hivemind.examples version=1.0.0
 
   service id=Adder interface=hivemind.examples.Adder 
 model=singleton/
 
   service id=Subtracter interface=hivemind.examples.Subtracter 
 model=singleton/
  
   service id=Calculator interface=hivemind.examples.Calculator 
 model=singleton
 invoke-factory service-id=hivemind.BuilderFactory
 construct
 class=hivemind.examples.impl.CalculatorImpl

 set-service property=adder service-id=Adder/
 set-service property=subtracter 
 service-id=Subtracter/
 /construct
 /invoke-factory
   /service
 
 /module
 
 Service module:
 ?xml version=1.0?
 
 module id=hivemind.examples.impl version=1.0.0
 
   extend-service service-id=hivemind.examples.Adder
   create-instance class=hivemind.examples.impl.AdderImpl/
   /extend-service
 
   extend-service service-id=hivemind.examples.Subtracter
   create-instance class=hivemind.examples.impl.SubtracterImpl/
   /extend-service
 
 /module
 
 Client module:
 ?xml version=1.0?
 
 module id=hivemind.examples.log version=1.0.0
 
   extend-service service-id=hivemind.examples.Adder
 interceptor service-id=hivemind.LoggingInterceptor order=10/
   /extend-service
 
 /module
 
 And the rest is Hivemind! I am really liking it a lot. I 
 can't wait for 
 Tapestry 3.1!
 
 -Harish
 
 Bill Lear wrote:
 
 What I'd like to do is to define a service analogous to the Adder, 
 Subtracter.
 
 Then, I'd like to define a service, Math that uses the Adder and 
 Subtracter modules to provide the following interface:
 
 public interface Math {
 int add(int arg0, int arg1);
 int subtract(int arg0, int arg1);
 }
 
 with implementation:
 
 package hivemind.examples.impl;
 
 import hivemind.examples.Math;
 import hivemind.examples.Adder;
 import hivemind.examples.Subtracter;
 
 public class MathImpl implements Math {
 private Adder adder;
 
 public void setAdder(Adder adder) {
 this.adder = adder;
 }
 
 private Subtracter subtracter;
 
 public void setSubtracter(Subtracter subtracter) {
 this.subtracter = subtracter;
 }
 
 public int add(int arg0, int arg1) {
 return adder.add(arg0, arg1);
 }
 
 public int subtract(int arg0, int arg1) {
 return subtracter.add(arg0, arg1);
 }
 }
 
 and call it from code thus (after appropriate registry construction,
 etc.):
 
 Math math = (Math) 
 registry.getService(hivemind.examples.Math,
Math.class);
 
 System.out.println(Result of add:  + math.add(arg0, arg1));
 System.out.println(Result of subtract:  + 
 math.subtract(arg0, 
  arg1));
 
 I'm a bit confused as to how to tie all of this together.  Could 
 someone provide some pointers?
 
 Thanks.
 
 
 Bill
 
 -
 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: [HIVEMIND] Examples Please?

2003-09-17 Thread Howard M. Lewis Ship
We're working on the docs and are setup now to provide more and better examples.

HiveMind is very, very new.  If it looks polished, that's a compliment ... and 
reflects that many of
the ideas in HiveMind gestated inside Tapestry over the last couple of years.

I'm using HiveMind at work ... I think of it largely as a refactoring tool.  Case 
study #1 is based
on one usage of HiveMind.  However, its a proprietary application and completely huge.

A module maps to a jar; you'll have multple packages in the jar but only a single 
HiveMind module.
If that's a problem, one solution is to refactor your code into more small modules.  
HiveMind really
supports this well, since it (effectively) adds a late binding, where module A defines 
the
interface, and module B supplies the implementation.

Due to our current build process, we have a similar issue: multiple logical modules 
that are
packaged together as a single JAR. In an ideal world, there would be a
ClassLoader.getTResourceInFolder(/META-INF/hivemind) ... but there isn't.  Instead, 
we have
external descriptors, a directory under WebLogic where we store the extra class 
loaders; our
servlet's registry bootstrap code processes all the XML files there as well as those 
found normally.
It works well, but is not quite ideal for a clustered EAR deployment; we'll want to 
graft something
together for that soon. Possibly, our build system will write a catalog of these 
external
descriptors into a central file.

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com

 -Original Message-
 From: James Carman [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, September 16, 2003 9:46 PM
 To: [EMAIL PROTECTED]
 Subject: [HIVEMIND] Examples Please?
 
 
 Does anyone have a good example application (very simple, 
 please) for HiveMind?  I would like to start using it and I 
 just need a little nudge to get me going.  Like, how do I 
 obtain a handle to a Registry object in the first place to 
 set it as the default?  And, how many of these hivemind.xml 
 files am I going to have to have floating around?  It appears 
 as if I need one for each package in my project, but only one 
 can be in my jar file located at /META-INF/hivemind.xml?  Is 
 this true?  If so, packaging an application could turn out to 
 be rather tedious if I do indeed plan to separate things out 
 into these small, testable modules.  I may be 
 misunderstanding the documentation, though.  Anyway, if 
 anyone has a good starter application (maybe even with the 
 entire project set up with an Ant build script), I would be 
 very appreciative.  I sure wish I would have known about 
 hivemind before.  It looks as if it does everything (and 
 more) that my little business object factory framework
 (http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory
.html) does. 



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



Re: [Fwd: Re: [HIVEMIND] Examples Please?]]

2003-09-17 Thread Harish Krishnaswamy
Did you get all the jars I mentioned, looks like you don't have the 
HiveMind jar.

[EMAIL PROTECTED] wrote:

Am I doing something wrong?  When I tried to run your example, I got 
the output contained in the attached file. 

- Original Message -
From: Harish Krishnaswamy mailto:[EMAIL PROTECTED]
To: [EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 9:43 AM
Subject: [Fwd: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]
Apparently this was sent to myself :-(

 Original Message 
Subject:Re: [Fwd: Re: [HIVEMIND] Examples Please?]
Date:   Tue, 16 Sep 2003 23:40:23 -0400
From:   Harish Krishnaswamy [EMAIL PROTECTED]
To: Harish Krishnaswamy [EMAIL PROTECTED]
References: [EMAIL PROTECTED]


Trying again without HiveMind.jar. So you will have to download
HiveMind.jar also.
Harish Krishnaswamy wrote:

I had to strip out the jars 'cause of the size and apache servers
would n't let it go through, I kept the HiveMind jar though. So
you would want to download the following jars to the lib folder.
commons-beanutils-1.6.1.jar
commons-collections-2.1.jar
commons-lang-2.0.jar
commons-logging-1.0.2.jar
javassist-2.5.1.jar
log4j-1.2.6.jar
xercesImpl.jar
xmlParserAPIs.jar
-Harish

 Original Message 
Subject:Re: [HIVEMIND] Examples Please?
Date:   Tue, 16 Sep 2003 23:17:21 -0400
From:   Harish Krishnaswamy [EMAIL PROTECTED]
To: Jakarta Commons Developers List
[EMAIL PROTECTED]
References: [EMAIL PROTECTED]


James Carman wrote:

Does anyone have a good example application (very simple, please) for
HiveMind?
Unzip the attached zip to a folder and run target run. Its a very 
simple Calculator service pretty much the same that would find on the 
website with two functions/services - add and subtract!

 I would like to start using it and I just need a little nudge to
get me going.  Like, how do I obtain a handle to a Registry object in the
first place to set it as the default?  And, how many of these hivemind.xml
files am I going to have to have floating around?
As many as you want. You can in fact bundle up everything in one mumbo 
module if you like!

 It appears as if I need
one for each package in my project, but only one can be in my jar file
located at /META-INF/hivemind.xml?  Is this true?
No, you need one hivemodule.xml per module and a module can be anything 
you want like I said before.

 If so, packaging an
application could turn out to be rather tedious if I do indeed plan to
separate things out into these small, testable modules.  I may be
misunderstanding the documentation, though.  Anyway, if anyone has a good
starter application (maybe even with the entire project set up with an Ant
build script), I would be very appreciative.  I sure wish I would have known
about hivemind before.  It looks as if it does everything (and more) that my
little business object factory framework
(http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory.html) does. 

 

 


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


Buildfile: build.xml

compile:
   [mkdir] Created dir: C:\Java\projects\HivemindExample\target\classes
   [javac] Compiling 7 source files to C:\Java\projects\HivemindExample\target\classes
jar:
 [jar] Building jar: 
C:\Java\projects\HivemindExample\target\hivemind-examples-service.jar
 [jar] Building jar: 
C:\Java\projects\HivemindExample\target\hivemind-examples-service-impl.jar
 [jar] Building jar: 
C:\Java\projects\HivemindExample\target\hivemind-examples-main.jar
run:
[echo] Adding 11 and 23, should get 34.
[java] 0 ServiceTranslator [ERROR] Error resolving service hivemind.ClassFactory (in element construct/set-service at jar:file:/C:/Java/projects/HivemindExample/lib/commons-hivemind-1.0-alpha-2.jar!/META-INF/hivemodule.xml, line 143): Unable to construct service hivemind.ClassFactory: Could not load class org.apache.commons.hivemind.service.impl.ClassFactoryImpl from [EMAIL PROTECTED]: javassist/ClassPath - 
[java] org.apache.commons.hivemind.ApplicationRuntimeException: Unable to construct service hivemind.ClassFactory: Could not load class org.apache.commons.hivemind.service.impl.ClassFactoryImpl from [EMAIL PROTECTED]: javassist/ClassPath
[java] 	at org.apache.commons.hivemind.impl.ServiceExtensionPointImpl.constructNewServiceImplementation(ServiceExtensionPointImpl.java:266)
[java] 	at org.apache.commons.hivemind.impl.ServiceExtensionPointImpl.constructServiceImplementation(ServiceExtensionPointImpl.java:195)
[java] 	at 

Re: [Fwd: Re: [HIVEMIND] Examples Please?]]

2003-09-17 Thread Harish Krishnaswamy
Oops, that's not it, something else, my bad, sorry. Let me take another 
look,

Harish Krishnaswamy wrote:

Did you get all the jars I mentioned, looks like you don't have the 
HiveMind jar.

[EMAIL PROTECTED] wrote:

Am I doing something wrong?  When I tried to run your example, I got 
the output contained in the attached file.
- Original Message -
From: Harish Krishnaswamy mailto:[EMAIL PROTECTED]
To: [EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 9:43 AM
Subject: [Fwd: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]

Apparently this was sent to myself :-(

 Original Message 
Subject: Re: [Fwd: Re: [HIVEMIND] Examples Please?]
Date: Tue, 16 Sep 2003 23:40:23 -0400
From: Harish Krishnaswamy [EMAIL PROTECTED]
To: Harish Krishnaswamy [EMAIL PROTECTED]
References: [EMAIL PROTECTED]


Trying again without HiveMind.jar. So you will have to download
HiveMind.jar also.
Harish Krishnaswamy wrote:

I had to strip out the jars 'cause of the size and apache servers
would n't let it go through, I kept the HiveMind jar though. So
you would want to download the following jars to the lib folder.
commons-beanutils-1.6.1.jar
commons-collections-2.1.jar
commons-lang-2.0.jar
commons-logging-1.0.2.jar
javassist-2.5.1.jar
log4j-1.2.6.jar
xercesImpl.jar
xmlParserAPIs.jar
-Harish

 Original Message 
Subject: Re: [HIVEMIND] Examples Please?
Date: Tue, 16 Sep 2003 23:17:21 -0400
From: Harish Krishnaswamy [EMAIL PROTECTED]
To: Jakarta Commons Developers List
[EMAIL PROTECTED]
References: [EMAIL PROTECTED]


James Carman wrote:

Does anyone have a good example application (very simple, please) for
HiveMind?
Unzip the attached zip to a folder and run target run. Its a very 
simple Calculator service pretty much the same that would find on 
the website with two functions/services - add and subtract!

 I would like to start using it and I just need a little nudge to
get me going.  Like, how do I obtain a handle to a Registry object 
in the
first place to set it as the default?  And, how many of these 
hivemind.xml
files am I going to have to have floating around?

As many as you want. You can in fact bundle up everything in one 
mumbo module if you like!

 It appears as if I need
one for each package in my project, but only one can be in my jar file
located at /META-INF/hivemind.xml?  Is this true?
No, you need one hivemodule.xml per module and a module can be 
anything you want like I said before.

 If so, packaging an
application could turn out to be rather tedious if I do indeed plan to
separate things out into these small, testable modules.  I may be
misunderstanding the documentation, though.  Anyway, if anyone has 
a good
starter application (maybe even with the entire project set up with 
an Ant
build script), I would be very appreciative.  I sure wish I would 
have known
about hivemind before.  It looks as if it does everything (and 
more) that my
little business object factory framework
(http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory.html) 
does.

 

 




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



Buildfile: build.xml

compile:
   [mkdir] Created dir: C:\Java\projects\HivemindExample\target\classes
   [javac] Compiling 7 source files to 
C:\Java\projects\HivemindExample\target\classes

jar:
 [jar] Building jar: 
C:\Java\projects\HivemindExample\target\hivemind-examples-service.jar
 [jar] Building jar: 
C:\Java\projects\HivemindExample\target\hivemind-examples-service-impl.jar 

 [jar] Building jar: 
C:\Java\projects\HivemindExample\target\hivemind-examples-main.jar

run:
[echo] Adding 11 and 23, should get 34.
[java] 0 ServiceTranslator [ERROR] Error resolving service 
hivemind.ClassFactory (in element construct/set-service at 
jar:file:/C:/Java/projects/HivemindExample/lib/commons-hivemind-1.0-alpha-2.jar!/META-INF/hivemodule.xml, 
line 143): Unable to construct service hivemind.ClassFactory: Could 
not load class 
org.apache.commons.hivemind.service.impl.ClassFactoryImpl from 
[EMAIL PROTECTED]: javassist/ClassPath - 
[java] org.apache.commons.hivemind.ApplicationRuntimeException: 
Unable to construct service hivemind.ClassFactory: Could not load 
class org.apache.commons.hivemind.service.impl.ClassFactoryImpl from 
[EMAIL PROTECTED]: javassist/ClassPath
[java] at 
org.apache.commons.hivemind.impl.ServiceExtensionPointImpl.constructNewServiceImplementation(ServiceExtensionPointImpl.java:266) 

[java] at 

RE: [HiveMind] Extension to adder example

2003-09-17 Thread Howard M. Lewis Ship

 Could you share with me how to build the Adder.jar and 
 Subtracter.jar (if indeed there is any difference between the 
 current example), and then how to use them?  If all I have to 
 do is build the jars, and put them in the classpath, then 
 follow your example, very cool, I'm 100% of the way there!
 
 Thanks Harish.

Yep, that's the whole point ... build the two jars and you have Adder and Subtractor 
ready to go.
HiveMind will locate and parse
all the hivemodule.xml's into one consistent registry.  If you get 
hivemind.examples.Adder it will
combine the interface from the first jar with the implementaion contributed by the 
second jar.

So ... obviously I've been failing on getting the message out about what HiveMind does 
if this is
coming as a surprise now.

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com


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



RE: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]

2003-09-17 Thread Howard M. Lewis Ship
Looks like you don't have the javassist-2.6.jar on the classpath.
 
This is why Maven is cool ... it will download the jar for you; you can see then when 
you get the
HiveMInd source, which is built using Maven.
 
http://maven.apache.org
 
 
 
 

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com http://javatapestry.blogspot.com/  

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 17, 2003 9:59 AM
To: [EMAIL PROTECTED]
Subject: Re: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]


Am I doing something wrong?  When I tried to run your example, I got the output 
contained in the
attached file.  

- Original Message - 
From: Harish Krishnaswamy mailto:[EMAIL PROTECTED]  
To: [EMAIL PROTECTED] 
Sent: Wednesday, September 17, 2003 9:43 AM
Subject: [Fwd: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]

Apparently this was sent to myself :-( 


 Original Message  
Subject:Re: [Fwd: Re: [HIVEMIND] Examples Please?]  
Date:   Tue, 16 Sep 2003 23:40:23 -0400 
From:   Harish Krishnaswamy  mailto:[EMAIL PROTECTED] [EMAIL PROTECTED]   
To: Harish Krishnaswamy  mailto:[EMAIL PROTECTED] [EMAIL PROTECTED]   
References:  mailto:[EMAIL PROTECTED] [EMAIL PROTECTED]   


Trying again without HiveMind.jar. So you will have to download HiveMind.jar also.

Harish Krishnaswamy wrote:


I had to strip out the jars 'cause of the size and apache servers would n't let it go 
through, I
kept the HiveMind jar though. So you would want to download the following jars to the 
lib folder.

commons-beanutils-1.6.1.jar
commons-collections-2.1.jar
commons-lang-2.0.jar
commons-logging-1.0.2.jar
javassist-2.5.1.jar
log4j-1.2.6.jar
xercesImpl.jar
xmlParserAPIs.jar

-Harish

 Original Message  
Subject:Re: [HIVEMIND] Examples Please? 
Date:   Tue, 16 Sep 2003 23:17:21 -0400 
From:   Harish Krishnaswamy  mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] 
To: Jakarta Commons Developers List  mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED] 
References: [EMAIL PROTECTED] 


James Carman wrote:



Does anyone have a good example application (very simple, please) for

HiveMind?



Unzip the attached zip to a folder and run target run. Its a very 

simple Calculator service pretty much the same that would find on the 

website with two functions/services - add and subtract!



  I would like to start using it and I just need a little nudge to

get me going.  Like, how do I obtain a handle to a Registry object in the

first place to set it as the default?  And, how many of these hivemind.xml

files am I going to have to have floating around?



As many as you want. You can in fact bundle up everything in one mumbo 

module if you like!



  It appears as if I need

one for each package in my project, but only one can be in my jar file

located at /META-INF/hivemind.xml?  Is this true?



No, you need one hivemodule.xml per module and a module can be anything 

you want like I said before.



  If so, packaging an

application could turn out to be rather tedious if I do indeed plan to

separate things out into these small, testable modules.  I may be

misunderstanding the documentation, though.  Anyway, if anyone has a good

starter application (maybe even with the entire project set up with an Ant

build script), I would be very appreciative.  I sure wish I would have known

about hivemind before.  It looks as if it does everything (and more) that my

little business object factory framework

(http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory.html) does. 





  





  



  _  




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



RE: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]

2003-09-17 Thread Bill Lear
On Wednesday, September 17, 2003 at 10:09:57 (-0400) Howard M. Lewis Ship writes:
Looks like you don't have the javassist-2.6.jar on the classpath.
 
This is why Maven is cool ... it will download the jar for you; you can see then when 
you get the
HiveMInd source, which is built using Maven.
 
http://maven.apache.org

If Maven holds up to its promise, I think it and HiveMind would
work together very nicely.


Bill

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



RE: [HiveMind] Extension to adder example

2003-09-17 Thread Bill Lear
On Wednesday, September 17, 2003 at 10:08:14 (-0400) Howard M. Lewis Ship writes:
...
Yep, that's the whole point ... build the two jars and you have Adder
and Subtractor ready to go.  HiveMind will locate and parse all the
hivemodule.xml's into one consistent registry.  If you get
hivemind.examples.Adder it will combine the interface from the first
jar with the implementaion contributed by the second jar.

So ... obviously I've been failing on getting the message out about
what HiveMind does if this is coming as a surprise now.

I think the issue is very simple: programming in this paradigm
is a radical departure for us not used to it.  I'm not used to
gluing things together with such little effort.  Not only are
the concepts different, but, as one might expect, the language
one uses to convey the concepts is altogether new.  In such cases,
it's not so much a question of being clear, as providing concrete
examples that cover the initial case, and then the initial case
plus one --- sort of teaching by induction, if you will (prove
case 1, then prove if case N is true, case N+1 is true, etc.).

So, I don't think you have missed wildly (failing); I think that
the examples could encompass this (and, critically, I think examples
need to be *structured*, starting from simple to simple + 1); and,
finally, I think a tweak to the language, as we have discussed,
would also help.

By having structured examples, it allows intellectual movement
from simple cases to those beyond, which is what learning new
things like this is all about.

[Just a thought: why service, service point?  I realize that
service is a useful term, but why not interface and
implementation?  Those terms seem to be broad enough and easy to
understand...]


Bill

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



Re: [HiveMind] Extension to adder example

2003-09-17 Thread Harish Krishnaswamy
I would agree with Bill here that there is only so much words can 
convey. I had the same problem until the bootstrapping example was 
published, that's when everything clicked in place. I always like the 
illustration kind of documents (and hence my Illustrating Tapestry!) 
which is always concrete and leaves little room for ambiguity.

As far as the names go, I am still with service and service-point. 
An interface would tend to imply that this is the definition of the 
interface which it is not and the same applies to implementation.

-Harish

Bill Lear wrote:

On Wednesday, September 17, 2003 at 10:08:14 (-0400) Howard M. Lewis Ship writes:
 

...
Yep, that's the whole point ... build the two jars and you have Adder
and Subtractor ready to go.  HiveMind will locate and parse all the
hivemodule.xml's into one consistent registry.  If you get
hivemind.examples.Adder it will combine the interface from the first
jar with the implementaion contributed by the second jar.
So ... obviously I've been failing on getting the message out about
what HiveMind does if this is coming as a surprise now.
   

I think the issue is very simple: programming in this paradigm
is a radical departure for us not used to it.  I'm not used to
gluing things together with such little effort.  Not only are
the concepts different, but, as one might expect, the language
one uses to convey the concepts is altogether new.  In such cases,
it's not so much a question of being clear, as providing concrete
examples that cover the initial case, and then the initial case
plus one --- sort of teaching by induction, if you will (prove
case 1, then prove if case N is true, case N+1 is true, etc.).
So, I don't think you have missed wildly (failing); I think that
the examples could encompass this (and, critically, I think examples
need to be *structured*, starting from simple to simple + 1); and,
finally, I think a tweak to the language, as we have discussed,
would also help.
By having structured examples, it allows intellectual movement
from simple cases to those beyond, which is what learning new
things like this is all about.
[Just a thought: why service, service point?  I realize that
service is a useful term, but why not interface and
implementation?  Those terms seem to be broad enough and easy to
understand...]
Bill

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



RE: [HiveMind] Extension to adder example

2003-09-17 Thread Howard M. Lewis Ship
service -- interface
extend-service -- implementation

I like that, except that service is a super-element of implementation and I want 
to keep it
that way, since that's the normal usage.  That is, you can define a service and 
provide the
implementation (core service impl plus interceptors) all in one go.  And that loops me 
back to
service-point and extend-service.  contribute-service?

I think many people only give lip-service to OO ... they still think in terms of 
massive, central
brain objects with a bunch of helpers attached. I tend to think in terms of lots of 
smaller
objects, peers, working together ... and HiveMind lets me structure it all that way.

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com

 -Original Message-
 From: Bill Lear [mailto:[EMAIL PROTECTED] 
 Sent: Wednesday, September 17, 2003 10:34 AM
 To: Jakarta Commons Developers List
 Subject: RE: [HiveMind] Extension to adder example
 
 
 On Wednesday, September 17, 2003 at 10:08:14 (-0400) Howard 
 M. Lewis Ship writes:
 ...
 Yep, that's the whole point ... build the two jars and you 
 have Adder 
 and Subtractor ready to go.  HiveMind will locate and parse all the 
 hivemodule.xml's into one consistent registry.  If you get 
 hivemind.examples.Adder it will combine the interface from the first 
 jar with the implementaion contributed by the second jar.
 
 So ... obviously I've been failing on getting the message out about 
 what HiveMind does if this is coming as a surprise now.
 
 I think the issue is very simple: programming in this 
 paradigm is a radical departure for us not used to it.  I'm 
 not used to gluing things together with such little effort.  
 Not only are the concepts different, but, as one might 
 expect, the language one uses to convey the concepts is 
 altogether new.  In such cases, it's not so much a question 
 of being clear, as providing concrete examples that cover the 
 initial case, and then the initial case plus one --- sort of 
 teaching by induction, if you will (prove case 1, then prove 
 if case N is true, case N+1 is true, etc.).
 
 So, I don't think you have missed wildly (failing); I think 
 that the examples could encompass this (and, critically, I 
 think examples need to be *structured*, starting from simple 
 to simple + 1); and, finally, I think a tweak to the 
 language, as we have discussed, would also help.
 
 By having structured examples, it allows intellectual 
 movement from simple cases to those beyond, which is what 
 learning new things like this is all about.
 
 [Just a thought: why service, service point?  I realize 
 that service is a useful term, but why not interface and 
 implementation?  Those terms seem to be broad enough and 
 easy to understand...]
 
 
 Bill
 
 -
 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: [HiveMind] Suggestion for Bootstrap documentation addition / naming!

2003-09-17 Thread Howard M. Lewis Ship

 
 I am still thinking...
 
 service -- service-point
 extend-service -- service
 extension-point -- configuration-point
 extension -- configuration
 
  

I like this, except that I would keep extend-service as is. I think the typical use 
of
extend-service is to provide additional interceptors to an existing service (even 
though you can
occasinally provide a service implementation as well).

Perhaps the more verbose extend-configuration would be good too? I think even Bill 
initially
missed that all the extension's for an extension-point are cumulative ... would
extend-configuration make that more clear?

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com


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



Re: [HiveMind] Extension to adder example

2003-09-17 Thread Harish Krishnaswamy


Howard M. Lewis Ship wrote:

service -- interface
extend-service -- implementation
I like that, except that service is a super-element of implementation and I want 
to keep it
that way, since that's the normal usage.  That is, you can define a service and 
provide the
implementation (core service impl plus interceptors) all in one go.  And that loops me 
back to
service-point and extend-service.  contribute-service?
Exactly what I intended to say, you said it better. But why don't you 
like service for extend-service?

I think many people only give lip-service to OO ... they still think in terms of 
massive, central
brain objects with a bunch of helpers attached. I tend to think in terms of lots of 
smaller
objects, peers, working together ... and HiveMind lets me structure it all that way.
--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com
 

-Original Message-
From: Bill Lear [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 17, 2003 10:34 AM
To: Jakarta Commons Developers List
Subject: RE: [HiveMind] Extension to adder example

On Wednesday, September 17, 2003 at 10:08:14 (-0400) Howard 
M. Lewis Ship writes:
   

...
Yep, that's the whole point ... build the two jars and you 
 

have Adder 
   

and Subtractor ready to go.  HiveMind will locate and parse all the 
hivemodule.xml's into one consistent registry.  If you get 
hivemind.examples.Adder it will combine the interface from the first 
jar with the implementaion contributed by the second jar.

So ... obviously I've been failing on getting the message out about 
what HiveMind does if this is coming as a surprise now.
 

I think the issue is very simple: programming in this 
paradigm is a radical departure for us not used to it.  I'm 
not used to gluing things together with such little effort.  
Not only are the concepts different, but, as one might 
expect, the language one uses to convey the concepts is 
altogether new.  In such cases, it's not so much a question 
of being clear, as providing concrete examples that cover the 
initial case, and then the initial case plus one --- sort of 
teaching by induction, if you will (prove case 1, then prove 
if case N is true, case N+1 is true, etc.).

So, I don't think you have missed wildly (failing); I think 
that the examples could encompass this (and, critically, I 
think examples need to be *structured*, starting from simple 
to simple + 1); and, finally, I think a tweak to the 
language, as we have discussed, would also help.

By having structured examples, it allows intellectual 
movement from simple cases to those beyond, which is what 
learning new things like this is all about.

[Just a thought: why service, service point?  I realize 
that service is a useful term, but why not interface and 
implementation?  Those terms seem to be broad enough and 
easy to understand...]

Bill

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



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



cvs commit: jakarta-commons-sandbox/chain PROPOSAL.html

2003-09-17 Thread husted
husted  2003/09/17 08:03:47

  Modified:chainPROPOSAL.html
  Log:
  Closing parentheses
  
  Revision  ChangesPath
  1.3   +1 -1  jakarta-commons-sandbox/chain/PROPOSAL.html
  
  Index: PROPOSAL.html
  ===
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/PROPOSAL.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PROPOSAL.html 12 Aug 2003 19:33:56 -  1.2
  +++ PROPOSAL.html 17 Sep 2003 15:03:47 -  1.3
  @@ -31,7 +31,7 @@
   used in either a Servlet or Portlet, without being tied directly to the API
   contracts of either of these environments).  For commands that need to allocate
   resources prior to delegation, and then release them upon return (even if a
  -delegated-to command throws an exception, the filter extension to command
  +delegated-to command throws an exception), the filter extension to command
   provides a codepostprocess()/code method for this cleanup.  Finally,
   commands can be stored and looked up in a catalog to allow deferral of the
   decision on which command (or chain) is actually executed./p
  
  
  

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



Re: [HiveMind] Suggestion for Bootstrap documentation addition / naming!

2003-09-17 Thread Harish Krishnaswamy
You read my mind, I just asked you about this in my other mail!

But a service is both the core implementation and all its interceptors 
put together, right? Extend was always confusing for me right from the 
start because of its established presence in OO, I guess.

-Harish

Howard M. Lewis Ship wrote:

I am still thinking...

service -- service-point
extend-service -- service
extension-point -- configuration-point
extension -- configuration
   

I like this, except that I would keep extend-service as is. I think the typical 
use of
extend-service is to provide additional interceptors to an existing service (even 
though you can
occasinally provide a service implementation as well).
Perhaps the more verbose extend-configuration would be good too? I think even Bill 
initially
missed that all the extension's for an extension-point are cumulative ... would
extend-configuration make that more clear?
--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 



Re: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]

2003-09-17 Thread james
That did it!  That's why I was unable to run it!  Thanks.

- Original Message - 
From: Howard M. Lewis Ship [EMAIL PROTECTED]
To: 'Jakarta Commons Developers List' [EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 10:09 AM
Subject: RE: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]


 Looks like you don't have the javassist-2.6.jar on the classpath.

 This is why Maven is cool ... it will download the jar for you; you can
see then when you get the
 HiveMInd source, which is built using Maven.

 http://maven.apache.org





 --
 Howard M. Lewis Ship
 Creator, Tapestry: Java Web Components
 http://jakarta.apache.org/tapestry
 http://jakarta.apache.org/commons/sandbox/hivemind/
 http://javatapestry.blogspot.com http://javatapestry.blogspot.com/

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, September 17, 2003 9:59 AM
 To: [EMAIL PROTECTED]
 Subject: Re: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]


 Am I doing something wrong?  When I tried to run your example, I got the
output contained in the
 attached file.

 - Original Message - 
 From: Harish Krishnaswamy mailto:[EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Wednesday, September 17, 2003 9:43 AM
 Subject: [Fwd: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]

 Apparently this was sent to myself :-(


  Original Message  
 Subject: Re: [Fwd: Re: [HIVEMIND] Examples Please?]
 Date: Tue, 16 Sep 2003 23:40:23 -0400
 From: Harish Krishnaswamy  mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED]
 To: Harish Krishnaswamy  mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED]
 References:  mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED]


 Trying again without HiveMind.jar. So you will have to download
HiveMind.jar also.

 Harish Krishnaswamy wrote:


 I had to strip out the jars 'cause of the size and apache servers would
n't let it go through, I
 kept the HiveMind jar though. So you would want to download the following
jars to the lib folder.

 commons-beanutils-1.6.1.jar
 commons-collections-2.1.jar
 commons-lang-2.0.jar
 commons-logging-1.0.2.jar
 javassist-2.5.1.jar
 log4j-1.2.6.jar
 xercesImpl.jar
 xmlParserAPIs.jar

 -Harish

  Original Message  
 Subject: Re: [HIVEMIND] Examples Please?
 Date: Tue, 16 Sep 2003 23:17:21 -0400
 From: Harish Krishnaswamy  mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED]
 To: Jakarta Commons Developers List
mailto:[EMAIL PROTECTED]
 [EMAIL PROTECTED]
 References: [EMAIL PROTECTED]


 James Carman wrote:



 Does anyone have a good example application (very simple, please) for

 HiveMind?

 

 Unzip the attached zip to a folder and run target run. Its a very

 simple Calculator service pretty much the same that would find on the

 website with two functions/services - add and subtract!



   I would like to start using it and I just need a little nudge to

 get me going.  Like, how do I obtain a handle to a Registry object in the

 first place to set it as the default?  And, how many of these
hivemind.xml

 files am I going to have to have floating around?

 

 As many as you want. You can in fact bundle up everything in one mumbo

 module if you like!



   It appears as if I need

 one for each package in my project, but only one can be in my jar file

 located at /META-INF/hivemind.xml?  Is this true?

 

 No, you need one hivemodule.xml per module and a module can be anything

 you want like I said before.



   If so, packaging an

 application could turn out to be rather tedious if I do indeed plan to

 separate things out into these small, testable modules.  I may be

 misunderstanding the documentation, though.  Anyway, if anyone has a good

 starter application (maybe even with the entire project set up with an
Ant

 build script), I would be very appreciative.  I sure wish I would have
known

 about hivemind before.  It looks as if it does everything (and more) that
my

 little business object factory framework

 (http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory.html)
does.

 

 

 

 







   _




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




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



cvs commit: jakarta-commons-sandbox/chain PROPOSAL.html

2003-09-17 Thread husted
husted  2003/09/17 08:06:04

  Modified:chainPROPOSAL.html
  Log:
  Apply Tidy to markup. No content changes.
  
  Revision  ChangesPath
  1.4   +231 -187  jakarta-commons-sandbox/chain/PROPOSAL.html
  
  Index: PROPOSAL.html
  ===
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/PROPOSAL.html,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PROPOSAL.html 17 Sep 2003 15:03:47 -  1.3
  +++ PROPOSAL.html 17 Sep 2003 15:06:04 -  1.4
  @@ -1,195 +1,239 @@
  -html
  +!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
  +http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd;
  +
  +html xmlns=http://www.w3.org/1999/xhtml;
   head
  -titleProposal for Chain of Responsibility Package/title
  +  meta name=generator content=
  +  HTML Tidy for Windows (vers 1st July 2003), see www.w3.org /
  +
  +  titleProposal for Chain of Responsibility Package/title
   /head
  -body bgcolor=white
   
  -div align=center
  -h1Proposal for emChain of Responsibility/em Package/h1
  -/div
  -
  -h3(0) Rationale/h3
  -
  -pA popular technique for organizing the execution of complex processing
  -flows is the Chain of Responsibility pattern, as described (among many
  -other places) in the classic Gang of Four design patterns book.  Although
  -the fundamental API contracts required to implement this design patten are
  -extremely simple, it is useful to have a base API that facilitates using
  -the pattern, and (more importantly) encouraging composition of command
  -implementations from multiple diverse sources./p
  -
  -pTowards that end, the proposed API models a computation as a series of
  -commands that can be combined into a chain.  The API for a command
  -consists of a single method (codeexecute()/code), which is passed a
  -context parameter containing the dynamic state of the computation, and
  -whose return value is a boolean that determines whether or not processing
  -for the current chain has been completed (true), or whether processing
  -should be delegated to the next command in the chain (false)./p
  -
  -pThe context abstraction is designed to isolate command implementations
  -from the environment in which they are run (such as a command that can be
  -used in either a Servlet or Portlet, without being tied directly to the API
  -contracts of either of these environments).  For commands that need to allocate
  -resources prior to delegation, and then release them upon return (even if a
  -delegated-to command throws an exception), the filter extension to command
  -provides a codepostprocess()/code method for this cleanup.  Finally,
  -commands can be stored and looked up in a catalog to allow deferral of the
  -decision on which command (or chain) is actually executed./p
  -
  -pTo maximize the usefulness of the Chain of Responsibility pattern APIs,
  -the fundamental interface contracts are defined in a manner with zero
  -dependencies other than an appropriate JDK.  Convenience base class
  -implementations of these APIs are provided, as well as more specialized (but
  -optional) implementations for the web environment (i.e. servlets and portlets).
  -However, conditional compilation in the build script allows graceful creation
  -of the underlying API JAR file even in the absence of the optional dependencies.
  -/p
  -
  -pGiven that command implementations are designed to conform with these
  -recommendations, it should be feasible to utilize the Chain of Responsibility
  -APIs in the front controller of a web application framework (such as Struts),
  -but also be able to use it in the business logic and persistence tiers to
  -model complex computational requirements via composition.  In addition,
  -separation of a computation into discrete commands that operate on a general
  -purpose context allows easier creation of commands that are unit testable,
  -because the impact of executing a command can be directly measured by observing
  -the corresponding state changes in the context that is supplied./p
  -
  -
  -h3(1) Scope of the Package/h3
  -
  -pThe fundamental API contracts of the Chain of Responsibility pattern are
  -encapsulated in the following interfaces in package
  -codeorg.apache.commons.chain/code:/p
  -ul
  -listrongCommand/strong - An individual unit of work whose
  -codeexecute()/code method is called to perform that work./li
  -listrongChain/strong - A set of commands to which work will be
  -delegated, in a well-defined order, until one of the commands indicates
  -that work on a request has been completed.  Note that a codeChain/code
  -is itself a codeCommand/code, so arbitrarily complex hierarchies of
  +body bgcolor=white
  +  div align=center
  +h1Proposal for emChain of Responsibility/em Package/h1
  +  /div
  +
  +  h3(0) Rationale/h3
  +
  +  pA popular technique for organizing the execution of complex
 

[configuration] Change Commons-Configuration getVector to getSet?

2003-09-17 Thread Eric Pugh
Hi all,

I am looking at a chunk of code like this:
 Vector packages = Turbine.getConfiguration()
.getVector(TurbineConstants.MODULE_PACKAGES);

ObjectUtils.addOnce(packages,
GenericLoader.getBasePackage());

from Layout Loader...

And it seems to me that commons-configuration getVector should be deprecated
in favor of getSet().  I can't think why you would want duplicate values, so
getSet() makes more sense then getList().

Then, funky call's like the ObjectUtils.addOnce() wouldn't be needed...

Opinons?  And do we have to deprecate getVector() since we haven't released
from sandbox yet?

Eric Pugh


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



Re: [configuration] Change Commons-Configuration getVector to getSet?

2003-09-17 Thread Emmanuel Bourg
A Set is too restrictive i think, there are valid reasons for preserving 
duplicate configuration entries. I would use a Collection or better, a 
List when the element order matters.

Emmanuel

Eric Pugh wrote:

Hi all,

I am looking at a chunk of code like this:
 Vector packages = Turbine.getConfiguration()
.getVector(TurbineConstants.MODULE_PACKAGES);
ObjectUtils.addOnce(packages,
GenericLoader.getBasePackage());
from Layout Loader...

And it seems to me that commons-configuration getVector should be deprecated
in favor of getSet().  I can't think why you would want duplicate values, so
getSet() makes more sense then getList().
Then, funky call's like the ObjectUtils.addOnce() wouldn't be needed...

Opinons?  And do we have to deprecate getVector() since we haven't released
from sandbox yet?
Eric Pugh

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




smime.p7s
Description: S/MIME Cryptographic Signature


RE: [HIVEMIND] Examples Please?

2003-09-17 Thread Howard M. Lewis Ship
HiveMind really is similar to the framework you described in the article --- honest, I 
never saw
your article before!

For me, HiveMind is about eliminating boring plumbing code, like the static factory 
classes.
HiveMind is the uber-factory.  It's also the inter-jar glue and does all your XML 
parsing for you.

... looks like you have another article to write!  Dion at TSS was looking for an 
article on
HiveMind; perhaps we should hook you guys up (or anyone else who wants to take a 
crack).  My dance
card is full right now.


--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com

 -Original Message-
 From: James Carman [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, September 16, 2003 9:46 PM
 To: [EMAIL PROTECTED]
 Subject: [HIVEMIND] Examples Please?
 
 
 Does anyone have a good example application (very simple, 
 please) for HiveMind?  I would like to start using it and I 
 just need a little nudge to get me going.  Like, how do I 
 obtain a handle to a Registry object in the first place to 
 set it as the default?  And, how many of these hivemind.xml 
 files am I going to have to have floating around?  It appears 
 as if I need one for each package in my project, but only one 
 can be in my jar file located at /META-INF/hivemind.xml?  Is 
 this true?  If so, packaging an application could turn out to 
 be rather tedious if I do indeed plan to separate things out 
 into these small, testable modules.  I may be 
 misunderstanding the documentation, though.  Anyway, if 
 anyone has a good starter application (maybe even with the 
 entire project set up with an Ant build script), I would be 
 very appreciative.  I sure wish I would have known about 
 hivemind before.  It looks as if it does everything (and 
 more) that my little business object factory framework
 (http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory
.html) does. 



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



Re: [HIVEMIND] Examples Please?

2003-09-17 Thread james
I would love to write the article!  When do they want it?
- Original Message - 
From: Howard M. Lewis Ship [EMAIL PROTECTED]
To: 'Jakarta Commons Developers List' [EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 11:12 AM
Subject: RE: [HIVEMIND] Examples Please?


 HiveMind really is similar to the framework you described in the
article --- honest, I never saw
 your article before!

 For me, HiveMind is about eliminating boring plumbing code, like the
static factory classes.
 HiveMind is the uber-factory.  It's also the inter-jar glue and does all
your XML parsing for you.

 ... looks like you have another article to write!  Dion at TSS was looking
for an article on
 HiveMind; perhaps we should hook you guys up (or anyone else who wants to
take a crack).  My dance
 card is full right now.


 --
 Howard M. Lewis Ship
 Creator, Tapestry: Java Web Components
 http://jakarta.apache.org/tapestry
 http://jakarta.apache.org/commons/sandbox/hivemind/
 http://javatapestry.blogspot.com

  -Original Message-
  From: James Carman [mailto:[EMAIL PROTECTED]
  Sent: Tuesday, September 16, 2003 9:46 PM
  To: [EMAIL PROTECTED]
  Subject: [HIVEMIND] Examples Please?
 
 
  Does anyone have a good example application (very simple,
  please) for HiveMind?  I would like to start using it and I
  just need a little nudge to get me going.  Like, how do I
  obtain a handle to a Registry object in the first place to
  set it as the default?  And, how many of these hivemind.xml
  files am I going to have to have floating around?  It appears
  as if I need one for each package in my project, but only one
  can be in my jar file located at /META-INF/hivemind.xml?  Is
  this true?  If so, packaging an application could turn out to
  be rather tedious if I do indeed plan to separate things out
  into these small, testable modules.  I may be
  misunderstanding the documentation, though.  Anyway, if
  anyone has a good starter application (maybe even with the
  entire project set up with an Ant build script), I would be
  very appreciative.  I sure wish I would have known about
  hivemind before.  It looks as if it does everything (and
  more) that my little business object factory framework
  (http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory
 .html) does.



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





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



cvs commit: jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain Context.java

2003-09-17 Thread husted
husted  2003/09/17 08:16:08

  Modified:chain/src/java/org/apache/commons/chain Context.java
  Log:
  JavaDoc update.
  
  Revision  ChangesPath
  1.2   +6 -4  
jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/Context.java
  
  Index: Context.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/Context.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Context.java  11 Aug 2003 04:44:16 -  1.1
  +++ Context.java  17 Sep 2003 15:16:08 -  1.2
  @@ -138,6 +138,8 @@
* of key-value pairs that maintain the state information associated
* with the processing of the transaction that is represented by
* this [EMAIL PROTECTED] Context} instance./p
  + *
  + * @return The state information for this context as a Map
*/
   public Map getAttributes();
   
  
  
  

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



cvs commit: jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/impl ContextBase2.java ContextBaseAttributes.java ContextBase.java

2003-09-17 Thread husted
husted  2003/09/17 08:17:58

  Modified:chain/src/java/org/apache/commons/chain/impl
ContextBaseAttributes.java ContextBase.java
  Added:   chain/src/java/org/apache/commons/chain/impl
ContextBase2.java
  Log:
  *EXPERIMENTAL* change that allows JavaBean properties to use the internal Map for 
storage, rather than defining an external field. I like the concept, but I'm concerned 
about breaking encapsulation.
  
  Revision  ChangesPath
  1.2   +72 -3 
jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/impl/ContextBaseAttributes.java
  
  Index: ContextBaseAttributes.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/impl/ContextBaseAttributes.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContextBaseAttributes.java11 Aug 2003 04:44:17 -  1.1
  +++ ContextBaseAttributes.java17 Sep 2003 15:17:58 -  1.2
  @@ -271,6 +271,75 @@
   }
   
   
  +// - Public Methods
  +
  +
  +/**
  + * pemWARNING: This is an EXPERIMENTAL feature and may be removed at
  + * any time./em/p
  + *
  + * pReturns the value to which the internal map maps the specified key,
  + * bypassing any JavaBean style getters. This method allows a
  + * JavaBean getter to be defined for any additional processing but still
  + * use the internal map for storage, if desired. Since this class is not
  + * public, this method can only be accessed by another member of hte
  + * codeorg.apache.commons.chain.impl/code package./p
  + *
  + * @param key key whose associated value is to be returned.
  + * @return the value to which this map maps the specified key, or
  + *  ttnull/tt if the map contains no mapping for this key.
  + *
  + * @throws ClassCastException if the key is of an inappropriate type for
  + * this map (optional).
  + * @throws NullPointerException key is ttnull/tt and this map does not
  + * not permit ttnull/tt keys (optional).
  + *
  + * @see #get(Object)
  + */
  +public Object getField(Object key) {
  +
  +return attributes.get(key);
  +
  +}
  +
  +/**
  + * pemWARNING: This is an EXPERIMENTAL feature and may be removed at
  + * any time./em/p
  + *
  + * pAssociates the key/value pair within the internal map,
  + * bypassing any JavaBean style getters. This method allows a
  + * JavaBean getter to be defined for any additional processing but still
  + * use the internal map for storage, if desired. Since this class is not
  + * public, this method can only be accessed by another member of hte
  + * codeorg.apache.commons.chain.impl/code package./p
  + *
  + * @param key key with which the specified value is to be associated.
  + * @param value value to be associated with the specified key.
  + * @return previous value associated with specified key, or ttnull/tt
  + *  if there was no mapping for key.  A ttnull/tt return can
  + *  also indicate that the map previously associated ttnull/tt
  + *  with the specified key, if the implementation supports
  + *  ttnull/tt values.
  + *
  + * @throws UnsupportedOperationException if the ttput/tt operation is
  + * not supported by this map.
  + * @throws ClassCastException if the class of the specified key or value
  + * prevents it from being stored in this map.
  + * @throws IllegalArgumentException if some aspect of this key or value
  + * prevents it from being stored in this map.
  + * @throws NullPointerException this map does not permit ttnull/tt
  + *keys or values, and the specified key or value is
  + *ttnull/tt.
  + *
  + * @see #put(Object, Object)
  + */
  +public Object putField(Object key, Object value) {
  +
  +return attributes.put(key,value);
  +
  +}
  +
  +
   //  Private Methods
   
   
  
  
  
  1.3   +22 -12
jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/impl/ContextBase.java
  
  Index: ContextBase.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/impl/ContextBase.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ContextBase.java  12 Aug 2003 20:33:24 -  1.2
  +++ ContextBase.java  17 Sep 2003 15:17:58 -  1.3
  @@ -85,6 +85,23 @@
   public class ContextBase implements Context {
   
   
  

cvs commit: jakarta-commons-sandbox/chain PROPOSAL.html

2003-09-17 Thread husted
husted  2003/09/17 08:19:14

  Modified:chainPROPOSAL.html
  Log:
  Add Husted to the Committers list.
  
  Revision  ChangesPath
  1.5   +1 -0  jakarta-commons-sandbox/chain/PROPOSAL.html
  
  Index: PROPOSAL.html
  ===
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/PROPOSAL.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PROPOSAL.html 17 Sep 2003 15:06:04 -  1.4
  +++ PROPOSAL.html 17 Sep 2003 15:19:14 -  1.5
  @@ -230,6 +230,7 @@
   
 ul
   liCraig R. McClanahan/li
  +liTed Husted/li
   
   liTBD/li
 /ul
  
  
  

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



DO NOT REPLY [Bug 23217] New: - [Messenger] Messenger.dtd's JNDI attributes rules mistakenly require className

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23217.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23217

[Messenger] Messenger.dtd's JNDI attributes rules mistakenly require className

   Summary: [Messenger] Messenger.dtd's JNDI attributes rules
mistakenly require className
   Product: Commons
   Version: Nightly Builds
  Platform: PC
OS/Version: Windows XP
Status: NEW
  Severity: Minor
  Priority: Other
 Component: Sandbox
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


The dtd for a jndi entry states that it requires a className attribute, when
in fact this attribute is optional.

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



DO NOT REPLY [Bug 23217] - [Messenger] Messenger.dtd's JNDI attributes rules mistakenly require className

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23217.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23217

[Messenger] Messenger.dtd's JNDI attributes rules mistakenly require className





--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 16:24 ---
Created an attachment (id=8256)
Patch for messenger.dtd

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



Re: [HiveMind] Registry

2003-09-17 Thread Harish Krishnaswamy


Ole Arndt wrote:

Hello infant HiveMind community,

first a short self-introduction: I am a developer from Germany. For
my pet project, a mud like simulation, inhabited by (more or less) intelligent
agents, I was looking for a framework to use. I knew Avalon from my
job and had heard of pico- and swing container. When I discovered
HiveMind I was equally impressed by the underlying concepts, the
amount of documentation and the clean code. 

Until now I haven't build anything with HiveMind but I have compiled
it, ran the tests and did some source code reading.  I lurked on the
devel list (via gmane) for a few days to learn about the people and
the current status of the project. But now it's time to step forward
with a few questions/remarks. Here we go:
The HiveMind registry is currently static, right?  Once constructed it
can't be changed. 

This is correct.

Due to the potentially very long run times of my
simulation I want to be able to add/remove modules/services on the fly
at any time. If get it right, this is currently only possible by
building an new registry. Correct?
What I want to have in the end is some kind of new service
notification mechanism like in the beancontext API, or with a Jini
lookup service. This does not need to be build into HiveMind, but is
probably only possible/easier with some support from the lower level.
Any plans in this direction or is this out-of-scope for HiveMind?

I think that will depend on the needs of the community, but Howard is 
the best person to answer that.

An easy improvement in this direction would be if the RegistryBuilder
took an old Registry to build upon as a parameter. This would probably
imply that the registry keeps its XML configuration.
Regarding the XML configuration: I agree that the current naming
really isn't very intuitive. I think the best proposal until now is
the one Harish made:
service -- service-point
extend-service -- service
extension-point -- configuration-point
extension -- configuration
There you go..!!

Though, if some native English speaker found a more descriptive word for
`point', like `definition' but not as long, it would be even better :-)
Another issue: There isn't much visual difference between the
following two lines and that makes it hard to read:
extension-point id= /
extension point-id= /
What speaks against calling the id attribute `id' in both cases?

I actually like this as it is more intuitive even if it is visually 
confusing initially. You soon get used to it!

Ole
 



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


DO NOT REPLY [Bug 23218] New: - [patch] small error text patch

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23218.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23218

[patch] small error text patch

   Summary: [patch] small error text patch
   Product: Commons
   Version: 1.0 Alpha
  Platform: Other
OS/Version: Other
Status: NEW
  Severity: Enhancement
  Priority: Other
 Component: CLI
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


Hi, attached is a small patch which makes the 'missing option' text a bit more
printable to users.

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



DO NOT REPLY [Bug 23218] - [patch] small error text patch

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23218.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23218

[patch] small error text patch





--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 16:43 ---
Created an attachment (id=8257)
[patch] attached patch to 'missing option' error

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



[RESULT] Re: [VOTE] New committer - Fredrik Westermarck

2003-09-17 Thread Henri Yandell

5 +1 votes from:

Phil Steitz
Juozas Baliuka
Yoav Shapira
Matthew Hawthorne
Henri Yandell

So Fredrik is in :)

Fredrik, please complete the CLA available at:

http://incubator.apache.org/forms/ASF_Contributor_License_2_form.pdf

and follow instructions contained in it etc.

Once that goes in, you should get an email back from Jim Jagielski
confirming that the CLA has been received. Let me know when this has
happened and I can send a request to root asking for accounts etc to be
made for you.

FYI, http://www.apache.org/dev/pmc.html details the process.

Hen

On Fri, 12 Sep 2003, Henri Yandell wrote:


 I would like to nominate Fredrik Westermarck as an Apache Jakarta Commons
 committer.

 Fredrik has put tons of work into improving the Javadoc for [lang] in the
 latest 2.0 release, in fact, looking at my archives he's offered 13
 patches in the last year [that I saved], many of which were substantial
 [20k+].

 http://marc.theaimsgroup.com/?a=10031948822r=1w=2 appears to show
 the years worth of patches.

 Votes please, closing Monday 15th midnight EST

 Hen

 [ ] +1, let him commit!
 [ ] +0
 [ ] -0
 [ ] -1, no, because






 -
 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]



Commons site: contributors.html

2003-09-17 Thread Henri Yandell

http://jakarta.apache.org/commons/contributors.html is a list of the
participants in Commons. It's not currently up to date.

Anyone not on there who is a Commons committer is welcome to add their
name [note, you have to modify the xdocs, generate the site and commit the
xdocs/docs, then cvs update on minotaur]. Up until now that has meant you
need an account on www.apache.org, but with the unification of the
machines [cvs/www] anyone can do this.

I figure not everyone knew of this :)

Hen


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



RE: [HIVEMIND] Examples Please?

2003-09-17 Thread Johan Lindquist
Not sure if people have had enough of examples, but attached is a zip file 
with a simple (and probably buggy) xdoclet module for hivemind (with 
source) + the calculator example previously discussed implemented using 
it.

Didn't want to inclde all the dependant jars but they are:

- commons-collections-2.1.jar
- commons-logging-1.0.3.jar
- xjavadoc-1.0.jar
- xdoclet-1.2b4.jar
The ant target 'jar' will build all the necessary jars in ./release

Mainly wondering what the interest in a hivemind xdoclet module would be?

Johan

--
you too?

example.zip
Description: Zip compressed data
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

[HiveMind] TSS

2003-09-17 Thread Howard M. Lewis Ship
A couple of ideas I may be pursuing at work ...

Creating interceptors to enforce transaction boundaries.

Creating intreceptors to enforce declarative security.

Creating interceptors that record invocations counts as JMX beans.

HiveMind's take on the DAO factory:  Define a DAO interface and supply several 
implementations (for
different databases or environments) in a configuration point. Have a service factory 
create a
service implementation that delegates to a particular implementation, i.e.

client code -- wrapper service -- actual service

The wrapper service is created at runtime.  Client code only sees the wrapper service, 
never has to
even know that a dynamic selection takes place. Wrapper service is constructed at 
runtime using a
service impl factory ... look at how EJBFactory is implemented to understand this.

Service that creates C#-style delegates for use in Swing apps.  You feed in: object, 
name of public
method (of object), listener interface type ... it spits out delegate object that 
implements the
interface and invokes the public method (possibly, passing the event in). Optional: if 
listener
interface defines multiple methods, you decide which to connect.


--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
 Sent: Wednesday, September 17, 2003 12:16 PM
 To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
 Subject: Re: Hivemind on TSS
 
 
 Well, I don't really have an idea of how I am going to use 
 HiveMind in my example yet, as I am quite a newbie still.  
 However, I plan on giving a talk on HiveMind at our local 
 users group (www.cinjug.org) in November and I would imagine 
 that I could have something together for you guys by the end 
 of November.  I will be playing around with HiveMind over the 
 weekend and I might get a brilliant idea for an example.  
 I'll try to get you an abstract sometime next week.  Will 
 that be okay?
 
 - Original Message - 
 From: Dion Almaer [EMAIL PROTECTED]
 To: 'Howard M. Lewis Ship' [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Sent: Wednesday, September 17, 2003 11:53 AM
 Subject: RE: Hivemind on TSS
 
 
  Hi Howard and James -
 
  Howard: I totally understand both your time requirements, 
 and the idea 
  of having a secondary source providing the info
 
  James: We would love to have you work on the article.  Feel 
 free to be 
  as creative as you would like.  The TSS articles that we 
 publish try 
  to be as hard core as possible, since our audience tends 
 to prefer 
  that.
 
  Maybe you could put together a quick abstract (nothing 
 formal), and a 
  guesstimate of when you feel you could get us an article. 
 Then I will 
  book you into our editorial calendar.
 
  Cheers,
 
  Dion
 
   -Original Message-
   From: Howard M. Lewis Ship [mailto:[EMAIL PROTECTED]
   Sent: Wednesday, September 17, 2003 11:43 AM
   To: 'Dion Almaer'
   Cc: [EMAIL PROTECTED]
   Subject: RE: Hivemind on TSS
  
  
   A fellow by the name of James Carman has started using HiveMind 
   recently as is very enthusiastic. He was recently 
 published in JDJ 
   discussing his own framework, which is something of a subset of 
   HiveMind.
  
   http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory.html
  
   I mentioned to him the possibility of writing a TSS article about 
   HiveMind and he's very enthusiastic. Since TiA is requiring some 
   rewrites, I'm fully booked ... and I think from a 
 marketing HiveMind 
   / marketing Howard Lewis Ship perspective that these articles are 
   received better by the audience when authored by a 
 secondary party, 
   rather than by the subject matter's creator. Of course, 
 I'll be able 
   to spare a few moments to review his work before it goes forward.
  
   --
   Howard M. Lewis Ship
   Creator, Tapestry: Java Web Components 
   http://jakarta.apache.org/tapestry
   http://jakarta.apache.org/commons/sandbox/hivemind/
   http://javatapestry.blogspot.com
  
-Original Message-
From: Dion Almaer [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 10, 2003 9:39 AM
To: 'Howard M. Lewis Ship'
Subject: RE: Hivemind on TSS
   
   
Hi Howard -
   
I am glad to hear that you are up for it!
   
I am also glad to hear that you may almost have 
 something :) After 
you review / tweak the content, send it along.  The 
 more code/hard 
core the better for this audience (as you know).
   
The HiveMind case study would be a great starting point 
 for you to 
write an article. Again, get something to me at your leisure (I 
know you are busy).
   
Manning kinda sends me their book chapters, and I will 
 make sure 
that I get a look at the Tapestry In Action book.  I am 
 excited to 
see how it is, and glad to hear that a full book is 
 devoted to 

Re: [HIVEMIND] Examples Please?

2003-09-17 Thread james
I think an xdoclet module for HiveMind would be WONDERFUL!  That way, you
could describe services, extension-points, interceptors, etc. in the JavaDoc
comments of your class and have your module descriptor file generated for
you automagically!  IMHO, anytime a descriptor file like that needs to be
created, there should be an XDoclet module for it.

- Original Message - 
From: Johan Lindquist [EMAIL PROTECTED]
To: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 12:52 PM
Subject: RE: [HIVEMIND] Examples Please?


 Not sure if people have had enough of examples, but attached is a zip file
 with a simple (and probably buggy) xdoclet module for hivemind (with
 source) + the calculator example previously discussed implemented using
 it.

 Didn't want to inclde all the dependant jars but they are:

 - commons-collections-2.1.jar
 - commons-logging-1.0.3.jar
 - xjavadoc-1.0.jar
 - xdoclet-1.2b4.jar

 The ant target 'jar' will build all the necessary jars in ./release

 Mainly wondering what the interest in a hivemind xdoclet module would be?

 Johan

 -- 
 you too?






 -
 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: [HiveMind] TSS

2003-09-17 Thread james
I think the first idea is PERFECT.  I came up with the idea for my framework
by using JDO in a web application (no transactional support involved).  So,
I used invocation decorators or, in HiveMind, interceptors to begin the
transaction if one didn't exist already (and commit it upon successful
completion of the method).  I think that might be a great idea for an
example.

I also like the DAO idea.  I wrote an article about a new-and-improved DAO
framework (http://www.javaworld.com/javaworld/jw-03-2002/jw-0301-dao.html)
and I wish I had HiveMind around for that!

- Original Message - 
From: Howard M. Lewis Ship [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 1:02 PM
Subject: [HiveMind] TSS


 A couple of ideas I may be pursuing at work ...

 Creating interceptors to enforce transaction boundaries.

 Creating intreceptors to enforce declarative security.

 Creating interceptors that record invocations counts as JMX beans.

 HiveMind's take on the DAO factory:  Define a DAO interface and supply
several implementations (for
 different databases or environments) in a configuration point. Have a
service factory create a
 service implementation that delegates to a particular implementation, i.e.

 client code -- wrapper service -- actual service

 The wrapper service is created at runtime.  Client code only sees the
wrapper service, never has to
 even know that a dynamic selection takes place. Wrapper service is
constructed at runtime using a
 service impl factory ... look at how EJBFactory is implemented to
understand this.

 Service that creates C#-style delegates for use in Swing apps.  You feed
in: object, name of public
 method (of object), listener interface type ... it spits out delegate
object that implements the
 interface and invokes the public method (possibly, passing the event in).
Optional: if listener
 interface defines multiple methods, you decide which to connect.


 --
 Howard M. Lewis Ship
 Creator, Tapestry: Java Web Components
 http://jakarta.apache.org/tapestry
 http://jakarta.apache.org/commons/sandbox/hivemind/
 http://javatapestry.blogspot.com

  -Original Message-
  From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
  Sent: Wednesday, September 17, 2003 12:16 PM
  To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
  Subject: Re: Hivemind on TSS
 
 
  Well, I don't really have an idea of how I am going to use
  HiveMind in my example yet, as I am quite a newbie still.
  However, I plan on giving a talk on HiveMind at our local
  users group (www.cinjug.org) in November and I would imagine
  that I could have something together for you guys by the end
  of November.  I will be playing around with HiveMind over the
  weekend and I might get a brilliant idea for an example.
  I'll try to get you an abstract sometime next week.  Will
  that be okay?
 
  - Original Message - 
  From: Dion Almaer [EMAIL PROTECTED]
  To: 'Howard M. Lewis Ship' [EMAIL PROTECTED]
  Cc: [EMAIL PROTECTED]
  Sent: Wednesday, September 17, 2003 11:53 AM
  Subject: RE: Hivemind on TSS
 
 
   Hi Howard and James -
  
   Howard: I totally understand both your time requirements,
  and the idea
   of having a secondary source providing the info
  
   James: We would love to have you work on the article.  Feel
  free to be
   as creative as you would like.  The TSS articles that we
  publish try
   to be as hard core as possible, since our audience tends
  to prefer
   that.
  
   Maybe you could put together a quick abstract (nothing
  formal), and a
   guesstimate of when you feel you could get us an article.
  Then I will
   book you into our editorial calendar.
  
   Cheers,
  
   Dion
  
-Original Message-
From: Howard M. Lewis Ship [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 11:43 AM
To: 'Dion Almaer'
Cc: [EMAIL PROTECTED]
Subject: RE: Hivemind on TSS
   
   
A fellow by the name of James Carman has started using HiveMind
recently as is very enthusiastic. He was recently
  published in JDJ
discussing his own framework, which is something of a subset of
HiveMind.
   
http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory.html
   
I mentioned to him the possibility of writing a TSS article about
HiveMind and he's very enthusiastic. Since TiA is requiring some
rewrites, I'm fully booked ... and I think from a
  marketing HiveMind
/ marketing Howard Lewis Ship perspective that these articles are
received better by the audience when authored by a
  secondary party,
rather than by the subject matter's creator. Of course,
  I'll be able
to spare a few moments to review his work before it goes forward.
   
--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com
   
 

RE: [HIVEMIND] Examples Please?

2003-09-17 Thread Howard M. Lewis Ship
Another lovely technology I haven't had a chance to investigate.  I know people rave 
about XDoclet;
I had hoped that HiveMind was succinct enough not to need it.  Can this generate a 
single module DD
from many classes that may define configurations and services?

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com

 -Original Message-
 From: Johan Lindquist [mailto:[EMAIL PROTECTED] 
 Sent: Wednesday, September 17, 2003 12:52 PM
 To: Jakarta Commons Developers List
 Subject: RE: [HIVEMIND] Examples Please?
 
 
 Not sure if people have had enough of examples, but attached 
 is a zip file 
 with a simple (and probably buggy) xdoclet module for hivemind (with 
 source) + the calculator example previously discussed 
 implemented using 
 it.
 
 Didn't want to inclde all the dependant jars but they are:
 
 - commons-collections-2.1.jar
 - commons-logging-1.0.3.jar
 - xjavadoc-1.0.jar
 - xdoclet-1.2b4.jar
 
 The ant target 'jar' will build all the necessary jars in ./release
 
 Mainly wondering what the interest in a hivemind xdoclet 
 module would be?
 
 Johan
 
 -- 
 you too?
 


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



Re: [HIVEMIND] Examples Please?

2003-09-17 Thread james
I would imagine.  XDoclet can generate one ejb-jar.xml file from many EJB
implementation bean sources, so I don't see why it couldn't.

- Original Message - 
From: Howard M. Lewis Ship [EMAIL PROTECTED]
To: 'Jakarta Commons Developers List' [EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 1:14 PM
Subject: RE: [HIVEMIND] Examples Please?


 Another lovely technology I haven't had a chance to investigate.  I know
people rave about XDoclet;
 I had hoped that HiveMind was succinct enough not to need it.  Can this
generate a single module DD
 from many classes that may define configurations and services?

 --
 Howard M. Lewis Ship
 Creator, Tapestry: Java Web Components
 http://jakarta.apache.org/tapestry
 http://jakarta.apache.org/commons/sandbox/hivemind/
 http://javatapestry.blogspot.com

  -Original Message-
  From: Johan Lindquist [mailto:[EMAIL PROTECTED]
  Sent: Wednesday, September 17, 2003 12:52 PM
  To: Jakarta Commons Developers List
  Subject: RE: [HIVEMIND] Examples Please?
 
 
  Not sure if people have had enough of examples, but attached
  is a zip file
  with a simple (and probably buggy) xdoclet module for hivemind (with
  source) + the calculator example previously discussed
  implemented using
  it.
 
  Didn't want to inclde all the dependant jars but they are:
 
  - commons-collections-2.1.jar
  - commons-logging-1.0.3.jar
  - xjavadoc-1.0.jar
  - xdoclet-1.2b4.jar
 
  The ant target 'jar' will build all the necessary jars in ./release
 
  Mainly wondering what the interest in a hivemind xdoclet
  module would be?
 
  Johan
 
  -- 
  you too?
 


 -
 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]



[hivemind] Design comparison

2003-09-17 Thread Stephen Colebourne
I have been monitoring hivemind as it is similar to a framework I helped
design for work (not OSS). What interests me is the way that different
groups in Java-land are moving towards the small POJO approach, and away
from dreaded EJBs. I just want to sketch out some features of the framework
I use in case it gives you some ideas.

Similar to hivemind:

Aims to enable a system to be written as a large number of small services.
Each service can call other service in flexible ways.
Each service is defined by an interface.
The interface must have only _one_method.
Each implementation must have no instance variables (singleton).

Differences:
-
1) The first parameter of each interface method must be a Context object
giving access to configuration and connections. Is this IoC?

2) The selection of which implementation to use is performed late. The
selection is based on
- data in the method arguments
- the services in the stack calling this one
- the configuration
lookupGroup interface=blah.TheInterface
 lookup
  caller caller=blah.SomeCallerImplementation /
  process process=blah.ImplIfCallerInStack /
 lookup/
 lookup dataSourceType=Database
  process process=blah.ImplIfParamsWantDB /
 lookup/
 lookup dataSourceType=File
  process process=blah.ImplIfParamsWantFile /
 lookup/
lookupGroup/
I include this to give some idea of what is going on. The process elements
are the implementations, and which is returned will depend on the current
state of the system and the method parameters. It acts like a big if
statement.

The lookup is hidden from callers by a class that simply has all the
interfaces as methods, performs the lookup and then calls the
implementation.

3) We have the concept of interceptors, again bytecode generated. We use
them to open and close connections. Thus there is a doPre() method that
opens the connection and attaches it to the Context, and a doFinally(), that
is called as a finally block, that closes the connection. This obviously
simplifies the service itself, and separates system logic from application
logic. It is very powerful, and could be worth thinking about for hivemind.
(our limitation is that each service can only talk to one datasource).

4) All our configuration is in XML resource bundles. This allows locale
based config for the core server behaviour which we can control on a per
session basis (although we haven't needed to yet). We chose to separate
configuration from the services themselves, different to hivemind. The
system we use allows single Strings, Lists, Maps and raw XML to be loaded
from the resources by the program. There is no auto-bean conversion though
which is nice in hivemind (although it only takes one line in our code).


So, similar ideas in places but different in others :-)

Stephen



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



Re: [HIVEMIND] Examples Please?

2003-09-17 Thread Johan Lindquist
Yeap it does ... As i said, just a first go at it, but if you point it to 
a bunch of classes, it will attempt to extract the services and extensions 
contained in them and bundle that into a module dd ... It needs a lot of 
work - no validation to ensure you are extending a already defined service 
is done yet for example ...

Johan

On Wed, 17 Sep 2003 13:16:43 -0400, [EMAIL PROTECTED] wrote:

I would imagine.  XDoclet can generate one ejb-jar.xml file from many EJB
implementation bean sources, so I don't see why it couldn't.
- Original Message -
From: Howard M. Lewis Ship [EMAIL PROTECTED]
To: 'Jakarta Commons Developers List' [EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 1:14 PM
Subject: RE: [HIVEMIND] Examples Please?

Another lovely technology I haven't had a chance to investigate.  I know
people rave about XDoclet;
I had hoped that HiveMind was succinct enough not to need it.  Can this
generate a single module DD
from many classes that may define configurations and services?

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com
 -Original Message-
 From: Johan Lindquist [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, September 17, 2003 12:52 PM
 To: Jakarta Commons Developers List
 Subject: RE: [HIVEMIND] Examples Please?


 Not sure if people have had enough of examples, but attached
 is a zip file
 with a simple (and probably buggy) xdoclet module for hivemind (with
 source) + the calculator example previously discussed
 implemented using
 it.

 Didn't want to inclde all the dependant jars but they are:

 - commons-collections-2.1.jar
 - commons-logging-1.0.3.jar
 - xjavadoc-1.0.jar
 - xdoclet-1.2b4.jar

 The ant target 'jar' will build all the necessary jars in ./release

 Mainly wondering what the interest in a hivemind xdoclet
 module would be?

 Johan

 --
 you too?

-
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]



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


RE: [hivemind] Design comparison

2003-09-17 Thread Howard M. Lewis Ship

 
 I have been monitoring hivemind as it is similar to a 
 framework I helped design for work (not OSS). What interests 
 me is the way that different groups in Java-land are moving 
 towards the small POJO approach, and away from dreaded EJBs. 
 I just want to sketch out some features of the framework I 
 use in case it gives you some ideas.

I read a great article that, boiled down, said that Enterprise JavaBeans should be 
called
Transactional JavaBeans because that's all you really get.

Bloat, complexity and (due to dependencies on the app server runtime environment) 
limited
testablility is the problem.  All these POJOs (Picocontainer, swing, HiveMind, Avalon) 
are the
reaction.

Lots of HiveMind percolated and gestated in Tapestry.


 
 Similar to hivemind:
 
 Aims to enable a system to be written as a large number of 
 small services. Each service can call other service in 
 flexible ways. Each service is defined by an interface. The 
 interface must have only _one_method. Each implementation 
 must have no instance variables (singleton).

HiveMind services may have any number of methods.

They don't have to be singletons, though singletons are generally sufficient; the 
threaded service
model allows one-instance-per-thread (but mandates that you tell HiveMind when the 
instances may be
discarded).  More service models on the way.


 
 Differences:
 -
 1) The first parameter of each interface method must be a 
 Context object giving access to configuration and 
 connections. Is this IoC?

I would say not; that's configuration information that should be provided by the 
container.


 
 2) The selection of which implementation to use is performed 
 late. The selection is based on
 - data in the method arguments
 - the services in the stack calling this one
 - the configuration
 lookupGroup interface=blah.TheInterface
  lookup
   caller caller=blah.SomeCallerImplementation /
   process process=blah.ImplIfCallerInStack /
  lookup/
  lookup dataSourceType=Database
   process process=blah.ImplIfParamsWantDB /
  lookup/
  lookup dataSourceType=File
   process process=blah.ImplIfParamsWantFile /
  lookup/
 lookupGroup/
 I include this to give some idea of what is going on. The 
 process elements are the implementations, and which is 
 returned will depend on the current state of the system and 
 the method parameters. It acts like a big if statement.

Those almost look like AOP method introductions; this doesn't have a parallel in 
HiveMind per se.

 
 The lookup is hidden from callers by a class that simply has 
 all the interfaces as methods, performs the lookup and then 
 calls the implementation.

I'm not following this; in HiveMind services are represented by interfaces; the 
implementation of
the interface may be a fabricated proxy or interceptor, or a user-supplied core 
implementation (or a
fabricated core implementation).

 
 3) We have the concept of interceptors, again bytecode 
 generated. We use them to open and close connections. Thus 
 there is a doPre() method that opens the connection and 
 attaches it to the Context, and a doFinally(), that is called 
 as a finally block, that closes the connection. This 
 obviously simplifies the service itself, and separates system 
 logic from application logic. It is very powerful, and could 
 be worth thinking about for hivemind. (our limitation is that 
 each service can only talk to one datasource).

HiveMind allows multiple interceptors in a stack. There are examples of them 
performing logging
operations, and more interceptors are on the way.

 
 4) All our configuration is in XML resource bundles. This 
 allows locale based config for the core server behaviour 
 which we can control on a per session basis (although we 
 haven't needed to yet). We chose to separate configuration 
 from the services themselves, different to hivemind. The 
 system we use allows single Strings, Lists, Maps and raw XML 
 to be loaded from the resources by the program. There is no 
 auto-bean conversion though which is nice in hivemind 
 (although it only takes one line in our code).

Having unified module deployment descriptors enahnces the IoC aspects of HiveMind.  
The framework,
as container, can 
set properties of core implementations to configurations or other services.  Proxies 
get in there to
keep unecessary work from occuring
until actually needed, and to defuse cyclic dependencies.

Additionally, having interlationships between modules is very powerful; especially for 
pluggability
reasons.  For example, module A could define a DAO interface and service, and modules 
B and C (only
one available at runtime) would contribute an implementation of the service.

HiveMind also feeds on itself ... services are used to construct other services.  
BuilderFactory is
the IoC engine; it constructs core implementations and can set properties of the 
impl to other
services and configs.  EJBFactory creates a core impl that's a wrapper 

Re: [HiveMind] TSS

2003-09-17 Thread David Graham
James,
There is a Mapper project in the Commons Sandbox which aims to be a simple
DAO abstraction layer.  It's not a lot of code but it's really been quite
useful in my projects and it may be helpful in this discussion.  

BTW, your article (among many others) was part of my research in
developing Mapper.  

http://jakarta.apache.org/commons/sandbox/mapper/

David

--- [EMAIL PROTECTED] wrote:
 I think the first idea is PERFECT.  I came up with the idea for my
 framework
 by using JDO in a web application (no transactional support involved). 
 So,
 I used invocation decorators or, in HiveMind, interceptors to begin
 the
 transaction if one didn't exist already (and commit it upon successful
 completion of the method).  I think that might be a great idea for an
 example.
 
 I also like the DAO idea.  I wrote an article about a new-and-improved
 DAO
 framework
 (http://www.javaworld.com/javaworld/jw-03-2002/jw-0301-dao.html)
 and I wish I had HiveMind around for that!
 
 - Original Message - 
 From: Howard M. Lewis Ship [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Cc: Jakarta Commons Developers List [EMAIL PROTECTED]
 Sent: Wednesday, September 17, 2003 1:02 PM
 Subject: [HiveMind] TSS
 
 
  A couple of ideas I may be pursuing at work ...
 
  Creating interceptors to enforce transaction boundaries.
 
  Creating intreceptors to enforce declarative security.
 
  Creating interceptors that record invocations counts as JMX beans.
 
  HiveMind's take on the DAO factory:  Define a DAO interface and supply
 several implementations (for
  different databases or environments) in a configuration point. Have a
 service factory create a
  service implementation that delegates to a particular implementation,
 i.e.
 
  client code -- wrapper service -- actual service
 
  The wrapper service is created at runtime.  Client code only sees the
 wrapper service, never has to
  even know that a dynamic selection takes place. Wrapper service is
 constructed at runtime using a
  service impl factory ... look at how EJBFactory is implemented to
 understand this.
 
  Service that creates C#-style delegates for use in Swing apps.  You
 feed
 in: object, name of public
  method (of object), listener interface type ... it spits out delegate
 object that implements the
  interface and invokes the public method (possibly, passing the event
 in).
 Optional: if listener
  interface defines multiple methods, you decide which to connect.
 
 
  --
  Howard M. Lewis Ship
  Creator, Tapestry: Java Web Components
  http://jakarta.apache.org/tapestry
  http://jakarta.apache.org/commons/sandbox/hivemind/
  http://javatapestry.blogspot.com
 
   -Original Message-
   From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
   Sent: Wednesday, September 17, 2003 12:16 PM
   To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
   Subject: Re: Hivemind on TSS
  
  
   Well, I don't really have an idea of how I am going to use
   HiveMind in my example yet, as I am quite a newbie still.
   However, I plan on giving a talk on HiveMind at our local
   users group (www.cinjug.org) in November and I would imagine
   that I could have something together for you guys by the end
   of November.  I will be playing around with HiveMind over the
   weekend and I might get a brilliant idea for an example.
   I'll try to get you an abstract sometime next week.  Will
   that be okay?
  
   - Original Message - 
   From: Dion Almaer [EMAIL PROTECTED]
   To: 'Howard M. Lewis Ship' [EMAIL PROTECTED]
   Cc: [EMAIL PROTECTED]
   Sent: Wednesday, September 17, 2003 11:53 AM
   Subject: RE: Hivemind on TSS
  
  
Hi Howard and James -
   
Howard: I totally understand both your time requirements,
   and the idea
of having a secondary source providing the info
   
James: We would love to have you work on the article.  Feel
   free to be
as creative as you would like.  The TSS articles that we
   publish try
to be as hard core as possible, since our audience tends
   to prefer
that.
   
Maybe you could put together a quick abstract (nothing
   formal), and a
guesstimate of when you feel you could get us an article.
   Then I will
book you into our editorial calendar.
   
Cheers,
   
Dion
   
 -Original Message-
 From: Howard M. Lewis Ship [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, September 17, 2003 11:43 AM
 To: 'Dion Almaer'
 Cc: [EMAIL PROTECTED]
 Subject: RE: Hivemind on TSS


 A fellow by the name of James Carman has started using HiveMind
 recently as is very enthusiastic. He was recently
   published in JDJ
 discussing his own framework, which is something of a subset of
 HiveMind.


 http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory.html

 I mentioned to him the possibility of writing a TSS article
 about
 HiveMind and he's very enthusiastic. Since TiA is requiring some
 rewrites, I'm fully booked ... and I think from a
   

Re: [HIVEMIND] Examples Please?

2003-09-17 Thread Johan Lindquist
Realise now that the source for the xdoclet module didn't make it into the 
email ... Will forward it tomorrow if anyone is interested as the zip is 
left at work ...

Johan

On Wed, 17 Sep 2003 18:52:02 +0200, Johan Lindquist [EMAIL PROTECTED] 
wrote:

Not sure if people have had enough of examples, but attached is a zip 
file
with a simple (and probably buggy) xdoclet module for hivemind (with
source) + the calculator example previously discussed implemented using
it.

Didn't want to inclde all the dependant jars but they are:

- commons-collections-2.1.jar
- commons-logging-1.0.3.jar
- xjavadoc-1.0.jar
- xdoclet-1.2b4.jar
The ant target 'jar' will build all the necessary jars in ./release

Mainly wondering what the interest in a hivemind xdoclet module would be?

Johan



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


Re: [hivemind] Design comparison

2003-09-17 Thread Harish Krishnaswamy
Just for my knowledge, how are method introductions different from 
interceptors?

-Harish

Howard M. Lewis Ship wrote:

I have been monitoring hivemind as it is similar to a 
framework I helped design for work (not OSS). What interests 
me is the way that different groups in Java-land are moving 
towards the small POJO approach, and away from dreaded EJBs. 
I just want to sketch out some features of the framework I 
use in case it gives you some ideas.
   

I read a great article that, boiled down, said that Enterprise JavaBeans should 
be called
Transactional JavaBeans because that's all you really get.
Bloat, complexity and (due to dependencies on the app server runtime environment) 
limited
testablility is the problem.  All these POJOs (Picocontainer, swing, HiveMind, Avalon) 
are the
reaction.
Lots of HiveMind percolated and gestated in Tapestry.

 

Similar to hivemind:

Aims to enable a system to be written as a large number of 
small services. Each service can call other service in 
flexible ways. Each service is defined by an interface. The 
interface must have only _one_method. Each implementation 
must have no instance variables (singleton).
   

HiveMind services may have any number of methods.

They don't have to be singletons, though singletons are generally sufficient; the 
threaded service
model allows one-instance-per-thread (but mandates that you tell HiveMind when the 
instances may be
discarded).  More service models on the way.
 

Differences:
-
1) The first parameter of each interface method must be a 
Context object giving access to configuration and 
connections. Is this IoC?
   

I would say not; that's configuration information that should be provided by the container.

 

2) The selection of which implementation to use is performed 
late. The selection is based on
- data in the method arguments
- the services in the stack calling this one
- the configuration
lookupGroup interface=blah.TheInterface
lookup
 caller caller=blah.SomeCallerImplementation /
 process process=blah.ImplIfCallerInStack /
lookup/
lookup dataSourceType=Database
 process process=blah.ImplIfParamsWantDB /
lookup/
lookup dataSourceType=File
 process process=blah.ImplIfParamsWantFile /
lookup/
lookupGroup/
I include this to give some idea of what is going on. The 
process elements are the implementations, and which is 
returned will depend on the current state of the system and 
the method parameters. It acts like a big if statement.
   

Those almost look like AOP method introductions; this doesn't have a parallel in HiveMind per se.

 

The lookup is hidden from callers by a class that simply has 
all the interfaces as methods, performs the lookup and then 
calls the implementation.
   

I'm not following this; in HiveMind services are represented by interfaces; the 
implementation of
the interface may be a fabricated proxy or interceptor, or a user-supplied core 
implementation (or a
fabricated core implementation).
 

3) We have the concept of interceptors, again bytecode 
generated. We use them to open and close connections. Thus 
there is a doPre() method that opens the connection and 
attaches it to the Context, and a doFinally(), that is called 
as a finally block, that closes the connection. This 
obviously simplifies the service itself, and separates system 
logic from application logic. It is very powerful, and could 
be worth thinking about for hivemind. (our limitation is that 
each service can only talk to one datasource).
   

HiveMind allows multiple interceptors in a stack. There are examples of them 
performing logging
operations, and more interceptors are on the way.
 

4) All our configuration is in XML resource bundles. This 
allows locale based config for the core server behaviour 
which we can control on a per session basis (although we 
haven't needed to yet). We chose to separate configuration 
from the services themselves, different to hivemind. The 
system we use allows single Strings, Lists, Maps and raw XML 
to be loaded from the resources by the program. There is no 
auto-bean conversion though which is nice in hivemind 
(although it only takes one line in our code).
   

Having unified module deployment descriptors enahnces the IoC aspects of HiveMind.  The framework,
as container, can 
set properties of core implementations to configurations or other services.  Proxies get in there to
keep unecessary work from occuring
until actually needed, and to defuse cyclic dependencies.

Additionally, having interlationships between modules is very powerful; especially for 
pluggability
reasons.  For example, module A could define a DAO interface and service, and modules 
B and C (only
one available at runtime) would contribute an implementation of the service.
HiveMind also feeds on itself ... services are used to construct other services.  
BuilderFactory is
the IoC engine; it constructs core implementations and can set properties of the 
impl to other

RE: [hivemind] Design comparison

2003-09-17 Thread Howard M. Lewis Ship
I'm not an aspect guru (not yet), but I believe a method introduction (at least in 
AspectJ) can take
into account who the caller is. 

So, the interceptor could make the method operate different dependeing on whether, for 
example, the
method was invoked be test code, by the container, or by the object itself 
(recursively).

With HiveMind, the interceptor is more simply a wrapper, and makes no decision about 
the caller.

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com

 -Original Message-
 From: Harish Krishnaswamy [mailto:[EMAIL PROTECTED] 
 Sent: Wednesday, September 17, 2003 1:51 PM
 To: Jakarta Commons Developers List
 Subject: Re: [hivemind] Design comparison
 
 
 Just for my knowledge, how are method introductions different from 
 interceptors?
 
 -Harish
 
 Howard M. Lewis Ship wrote:
 
 I have been monitoring hivemind as it is similar to a
 framework I helped design for work (not OSS). What interests 
 me is the way that different groups in Java-land are moving 
 towards the small POJO approach, and away from dreaded EJBs. 
 I just want to sketch out some features of the framework I 
 use in case it gives you some ideas.
 
 
 
 I read a great article that, boiled down, said that Enterprise 
 JavaBeans should be called Transactional JavaBeans because that's 
 all you really get.
 
 Bloat, complexity and (due to dependencies on the app server runtime 
 environment) limited testablility is the problem.  All these POJOs 
 (Picocontainer, swing, HiveMind, Avalon) are the reaction.
 
 Lots of HiveMind percolated and gestated in Tapestry.
 
 
   
 
 Similar to hivemind:
 
 Aims to enable a system to be written as a large number of
 small services. Each service can call other service in 
 flexible ways. Each service is defined by an interface. The 
 interface must have only _one_method. Each implementation 
 must have no instance variables (singleton).
 
 
 
 HiveMind services may have any number of methods.
 
 They don't have to be singletons, though singletons are generally 
 sufficient; the threaded service model allows 
 one-instance-per-thread 
 (but mandates that you tell HiveMind when the instances may be 
 discarded).  More service models on the way.
 
 
   
 
 Differences:
 -
 1) The first parameter of each interface method must be a
 Context object giving access to configuration and 
 connections. Is this IoC?
 
 
 
 I would say not; that's configuration information that should be 
 provided by the container.
 
 
   
 
 2) The selection of which implementation to use is performed
 late. The selection is based on
 - data in the method arguments
 - the services in the stack calling this one
 - the configuration
 lookupGroup interface=blah.TheInterface
  lookup
   caller caller=blah.SomeCallerImplementation /
   process process=blah.ImplIfCallerInStack /
  lookup/
  lookup dataSourceType=Database
   process process=blah.ImplIfParamsWantDB /
  lookup/
  lookup dataSourceType=File
   process process=blah.ImplIfParamsWantFile /
  lookup/
 lookupGroup/
 I include this to give some idea of what is going on. The 
 process elements are the implementations, and which is 
 returned will depend on the current state of the system and 
 the method parameters. It acts like a big if statement.
 
 
 
 Those almost look like AOP method introductions; this doesn't have a 
 parallel in HiveMind per se.
 
   
 
 The lookup is hidden from callers by a class that simply has
 all the interfaces as methods, performs the lookup and then 
 calls the implementation.
 
 
 
 I'm not following this; in HiveMind services are represented by 
 interfaces; the implementation of the interface may be a fabricated 
 proxy or interceptor, or a user-supplied core implementation (or a 
 fabricated core implementation).
 
   
 
 3) We have the concept of interceptors, again bytecode
 generated. We use them to open and close connections. Thus 
 there is a doPre() method that opens the connection and 
 attaches it to the Context, and a doFinally(), that is called 
 as a finally block, that closes the connection. This 
 obviously simplifies the service itself, and separates system 
 logic from application logic. It is very powerful, and could 
 be worth thinking about for hivemind. (our limitation is that 
 each service can only talk to one datasource).
 
 
 
 HiveMind allows multiple interceptors in a stack. There are 
 examples of 
 them performing logging operations, and more interceptors are on the 
 way.
 
   
 
 4) All our configuration is in XML resource bundles. This
 allows locale based config for the core server behaviour 
 which we can control on a per session basis (although we 
 haven't needed to yet). We chose to separate configuration 
 from the services themselves, different to hivemind. The 
 system we use allows single 

Re: [HiveMind] TSS

2003-09-17 Thread james
Wow!  Glad to know somebody actually READ my article!  :-)

- Original Message - 
From: David Graham [EMAIL PROTECTED]
To: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 1:40 PM
Subject: Re: [HiveMind] TSS


 James,
 There is a Mapper project in the Commons Sandbox which aims to be a simple
 DAO abstraction layer.  It's not a lot of code but it's really been quite
 useful in my projects and it may be helpful in this discussion.

 BTW, your article (among many others) was part of my research in
 developing Mapper.

 http://jakarta.apache.org/commons/sandbox/mapper/

 David

 --- [EMAIL PROTECTED] wrote:
  I think the first idea is PERFECT.  I came up with the idea for my
  framework
  by using JDO in a web application (no transactional support involved).
  So,
  I used invocation decorators or, in HiveMind, interceptors to begin
  the
  transaction if one didn't exist already (and commit it upon successful
  completion of the method).  I think that might be a great idea for an
  example.
 
  I also like the DAO idea.  I wrote an article about a new-and-improved
  DAO
  framework
  (http://www.javaworld.com/javaworld/jw-03-2002/jw-0301-dao.html)
  and I wish I had HiveMind around for that!
 
  - Original Message - 
  From: Howard M. Lewis Ship [EMAIL PROTECTED]
  To: [EMAIL PROTECTED]
  Cc: Jakarta Commons Developers List [EMAIL PROTECTED]
  Sent: Wednesday, September 17, 2003 1:02 PM
  Subject: [HiveMind] TSS
 
 
   A couple of ideas I may be pursuing at work ...
  
   Creating interceptors to enforce transaction boundaries.
  
   Creating intreceptors to enforce declarative security.
  
   Creating interceptors that record invocations counts as JMX beans.
  
   HiveMind's take on the DAO factory:  Define a DAO interface and supply
  several implementations (for
   different databases or environments) in a configuration point. Have a
  service factory create a
   service implementation that delegates to a particular implementation,
  i.e.
  
   client code -- wrapper service -- actual service
  
   The wrapper service is created at runtime.  Client code only sees the
  wrapper service, never has to
   even know that a dynamic selection takes place. Wrapper service is
  constructed at runtime using a
   service impl factory ... look at how EJBFactory is implemented to
  understand this.
  
   Service that creates C#-style delegates for use in Swing apps.  You
  feed
  in: object, name of public
   method (of object), listener interface type ... it spits out delegate
  object that implements the
   interface and invokes the public method (possibly, passing the event
  in).
  Optional: if listener
   interface defines multiple methods, you decide which to connect.
  
  
   --
   Howard M. Lewis Ship
   Creator, Tapestry: Java Web Components
   http://jakarta.apache.org/tapestry
   http://jakarta.apache.org/commons/sandbox/hivemind/
   http://javatapestry.blogspot.com
  
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 12:16 PM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Re: Hivemind on TSS
   
   
Well, I don't really have an idea of how I am going to use
HiveMind in my example yet, as I am quite a newbie still.
However, I plan on giving a talk on HiveMind at our local
users group (www.cinjug.org) in November and I would imagine
that I could have something together for you guys by the end
of November.  I will be playing around with HiveMind over the
weekend and I might get a brilliant idea for an example.
I'll try to get you an abstract sometime next week.  Will
that be okay?
   
- Original Message - 
From: Dion Almaer [EMAIL PROTECTED]
To: 'Howard M. Lewis Ship' [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 11:53 AM
Subject: RE: Hivemind on TSS
   
   
 Hi Howard and James -

 Howard: I totally understand both your time requirements,
and the idea
 of having a secondary source providing the info

 James: We would love to have you work on the article.  Feel
free to be
 as creative as you would like.  The TSS articles that we
publish try
 to be as hard core as possible, since our audience tends
to prefer
 that.

 Maybe you could put together a quick abstract (nothing
formal), and a
 guesstimate of when you feel you could get us an article.
Then I will
 book you into our editorial calendar.

 Cheers,

 Dion

  -Original Message-
  From: Howard M. Lewis Ship [mailto:[EMAIL PROTECTED]
  Sent: Wednesday, September 17, 2003 11:43 AM
  To: 'Dion Almaer'
  Cc: [EMAIL PROTECTED]
  Subject: RE: Hivemind on TSS
 
 
  A fellow by the name of James Carman has started using HiveMind
  recently as is very enthusiastic. He was recently

Re: [hivemind] Design comparison

2003-09-17 Thread Harish Krishnaswamy
Ah, I see. Thanks.

Howard M. Lewis Ship wrote:

I'm not an aspect guru (not yet), but I believe a method introduction (at least in AspectJ) can take
into account who the caller is. 

So, the interceptor could make the method operate different dependeing on whether, for 
example, the
method was invoked be test code, by the container, or by the object itself 
(recursively).
With HiveMind, the interceptor is more simply a wrapper, and makes no decision about the caller.

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com
 

-Original Message-
From: Harish Krishnaswamy [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 17, 2003 1:51 PM
To: Jakarta Commons Developers List
Subject: Re: [hivemind] Design comparison

Just for my knowledge, how are method introductions different from 
interceptors?

-Harish

Howard M. Lewis Ship wrote:

   

I have been monitoring hivemind as it is similar to a
framework I helped design for work (not OSS). What interests 
me is the way that different groups in Java-land are moving 
towards the small POJO approach, and away from dreaded EJBs. 
I just want to sketch out some features of the framework I 
use in case it gives you some ideas.
  

   

I read a great article that, boiled down, said that Enterprise 
JavaBeans should be called Transactional JavaBeans because that's 
all you really get.

Bloat, complexity and (due to dependencies on the app server runtime 
environment) limited testablility is the problem.  All these POJOs 
(Picocontainer, swing, HiveMind, Avalon) are the reaction.

Lots of HiveMind percolated and gestated in Tapestry.



 

Similar to hivemind:

Aims to enable a system to be written as a large number of
small services. Each service can call other service in 
flexible ways. Each service is defined by an interface. The 
interface must have only _one_method. Each implementation 
must have no instance variables (singleton).
  

   

HiveMind services may have any number of methods.

They don't have to be singletons, though singletons are generally 
sufficient; the threaded service model allows 
 

one-instance-per-thread 
   

(but mandates that you tell HiveMind when the instances may be 
discarded).  More service models on the way.



 

Differences:
-
1) The first parameter of each interface method must be a
Context object giving access to configuration and 
connections. Is this IoC?
  

   

I would say not; that's configuration information that should be 
provided by the container.



 

2) The selection of which implementation to use is performed
late. The selection is based on
- data in the method arguments
- the services in the stack calling this one
- the configuration
lookupGroup interface=blah.TheInterface
lookup
caller caller=blah.SomeCallerImplementation /
process process=blah.ImplIfCallerInStack /
lookup/
lookup dataSourceType=Database
process process=blah.ImplIfParamsWantDB /
lookup/
lookup dataSourceType=File
process process=blah.ImplIfParamsWantFile /
lookup/
lookupGroup/
I include this to give some idea of what is going on. The 
process elements are the implementations, and which is 
returned will depend on the current state of the system and 
the method parameters. It acts like a big if statement.
  

   

Those almost look like AOP method introductions; this doesn't have a 
parallel in HiveMind per se.



 

The lookup is hidden from callers by a class that simply has
all the interfaces as methods, performs the lookup and then 
calls the implementation.
  

   

I'm not following this; in HiveMind services are represented by 
interfaces; the implementation of the interface may be a fabricated 
proxy or interceptor, or a user-supplied core implementation (or a 
fabricated core implementation).



 

3) We have the concept of interceptors, again bytecode
generated. We use them to open and close connections. Thus 
there is a doPre() method that opens the connection and 
attaches it to the Context, and a doFinally(), that is called 
as a finally block, that closes the connection. This 
obviously simplifies the service itself, and separates system 
logic from application logic. It is very powerful, and could 
be worth thinking about for hivemind. (our limitation is that 
each service can only talk to one datasource).
  

   

HiveMind allows multiple interceptors in a stack. There are 
 

examples of 
   

them performing logging operations, and more interceptors are on the 
way.



 

4) All our configuration is in XML resource bundles. This
allows locale based config for the core server behaviour 
which we can control on a per session basis (although we 
haven't needed to yet). We chose to separate configuration 
   

from the services themselves, different to hivemind. The 
 

system we use allows single 

[HiveMind] How to add interceptor to embedded service

2003-09-17 Thread Bill Lear
I have the following module, and I would like to add a logging
interceptor to the Divider service, and only the Divider service.
How do I do this?

module id=hivemind.examples version=1.0.0
service id=Calculator interface=hivemind.examples.Calculator
invoke-factory service-id=hivemind.BuilderFactory
construct class=hivemind.examples.impl.CalculatorImpl

set-service property=adder
 service-id=org.puppies.math.Adder/

set-service property=subtracter
 service-id=org.kitties.math.Subtracter/

set-service property=multiplier
 service-id=org.gerbils.math.Multiplier/

set-service property=divider
 service-id=org.fishies.math.Divider/
/construct
/invoke-factory
/service
/module

I am able to add an interceptor to the Calculator service as a whole,
but can't figure out how to wrap just the Divider by a logger.

I tried adding the following:

extend-service service-id=org.fishies.math.Divider
interceptor service-id=hivemind.LoggingInterceptor/
/extend-service

but it did nothing.  Harish did this in his example by adding a
separate module, log, with a simple module, but that seems to require
building a separate jar.


Bill


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



DO NOT REPLY [Bug 23222] New: - [betwixt] o.a.c.betwixt.strategy.Testi18nObjectStringConversion.testFrenchDefaultLocale failure on Win2k

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23222.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23222

[betwixt] 
o.a.c.betwixt.strategy.Testi18nObjectStringConversion.testFrenchDefaultLocale failure 
on Win2k

   Summary: [betwixt]
o.a.c.betwixt.strategy.Testi18nObjectStringConversion.te
stFrenchDefaultLocale failure on Win2k
   Product: Commons
   Version: Nightly Builds
  Platform: All
OS/Version: Other
Status: NEW
  Severity: Minor
  Priority: Other
 Component: Betwixt
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


I grabbed the latest source from CVS HEAD, ran maven test and there was a failure:

Testcase: testFrenchDefaultLocale took 0.031 sec
FAILED
Locale dependent conversions expected:...Ž... but was:...é...
junit.framework.ComparisonFailure: Locale dependent conversions
expected:...Ž... but was:...é...
at
org.apache.commons.betwixt.strategy.Testi18nObjectStringConversion.testFrenchDefaultLocale(Testi18nObjectStringConversion.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)





uname -a in cygwin

CYGWIN_NT-5.0 localhost 1.5.4(0.94/3/2) 2003-09-12 23:08 i686 unknown unknown Cygwin



My Computer/Properties/General

Microsoft Windows 2000
5.00.2195
Service Pack 4

Intel(R) Pentium
(r) 4 CPU 1.80 GHz
AT/AT COMPATIBLE
523,808 KB RAM

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



RE: [HiveMind] How to add interceptor to embedded service

2003-09-17 Thread Howard M. Lewis Ship
Strange that that didn't work.  The fact that Divider is used as part of Calculator's 
implementation
does not affect your ability to add interceptors to it. Can we see the complete 
hivemodule.xml?

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com

 -Original Message-
 From: Bill Lear [mailto:[EMAIL PROTECTED] 
 Sent: Wednesday, September 17, 2003 2:47 PM
 To: [EMAIL PROTECTED]
 Subject: [HiveMind] How to add interceptor to embedded service
 
 
 I have the following module, and I would like to add a 
 logging interceptor to the Divider service, and only the 
 Divider service. How do I do this?
 
 module id=hivemind.examples version=1.0.0
 service id=Calculator interface=hivemind.examples.Calculator
 invoke-factory service-id=hivemind.BuilderFactory
 construct class=hivemind.examples.impl.CalculatorImpl
 
 set-service property=adder
  service-id=org.puppies.math.Adder/
 
 set-service property=subtracter
  
 service-id=org.kitties.math.Subtracter/
 
 set-service property=multiplier
  
 service-id=org.gerbils.math.Multiplier/
 
 set-service property=divider
  service-id=org.fishies.math.Divider/
 /construct
 /invoke-factory
 /service
 /module
 
 I am able to add an interceptor to the Calculator service as 
 a whole, but can't figure out how to wrap just the Divider by 
 a logger.
 
 I tried adding the following:
 
 extend-service service-id=org.fishies.math.Divider
 interceptor service-id=hivemind.LoggingInterceptor/
 /extend-service
 
 but it did nothing.  Harish did this in his example by adding 
 a separate module, log, with a simple module, but that seems 
 to require building a separate jar.
 
 
 Bill
 
 
 -
 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: [HiveMind] How to add interceptor to embedded service

2003-09-17 Thread Bill Lear
On Wednesday, September 17, 2003 at 14:47:36 (-0400) Howard M. Lewis Ship writes:
Strange that that didn't work.  The fact that Divider is used as part of Calculator's 
implementation
does not affect your ability to add interceptors to it. Can we see the complete 
hivemodule.xml?

That's really it.  Here is the Calculator one, as I just sent, but
with the extension attempt:

?xml version=1.0?

module id=hivemind.examples version=1.0.0
service id=Calculator interface=hivemind.examples.Calculator
invoke-factory service-id=hivemind.BuilderFactory
construct class=hivemind.examples.impl.CalculatorImpl

set-service property=adder
 service-id=org.puppies.math.Adder/

set-service property=subtracter
 service-id=org.kitties.math.Subtracter/

set-service property=multiplier
 service-id=org.gerbils.math.Multiplier/

set-service property=divider
 service-id=org.fishies.math.Divider/
/construct
/invoke-factory
/service

extend-service service-id=org.fishies.math.Divider
interceptor service-id=hivemind.LoggingInterceptor/
/extend-service

/module

When run, I get identical results whether or not I include the
above extend-service element, and whether or not it precedes the
above service element.


Bill

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



Re: [HiveMind] How to add interceptor to embedded service

2003-09-17 Thread Harish Krishnaswamy
Is your module id for Divider org.fishies.math and service id just 
Divider?

-Harish

Bill Lear wrote:

On Wednesday, September 17, 2003 at 14:47:36 (-0400) Howard M. Lewis Ship writes:
 

Strange that that didn't work.  The fact that Divider is used as part of Calculator's implementation
does not affect your ability to add interceptors to it. Can we see the complete hivemodule.xml?
   

That's really it.  Here is the Calculator one, as I just sent, but
with the extension attempt:
?xml version=1.0?

module id=hivemind.examples version=1.0.0
   service id=Calculator interface=hivemind.examples.Calculator
   invoke-factory service-id=hivemind.BuilderFactory
   construct class=hivemind.examples.impl.CalculatorImpl
   set-service property=adder
service-id=org.puppies.math.Adder/
   set-service property=subtracter
service-id=org.kitties.math.Subtracter/
   set-service property=multiplier
service-id=org.gerbils.math.Multiplier/
   set-service property=divider
service-id=org.fishies.math.Divider/
   /construct
   /invoke-factory
   /service
   extend-service service-id=org.fishies.math.Divider
   interceptor service-id=hivemind.LoggingInterceptor/
   /extend-service
/module

When run, I get identical results whether or not I include the
above extend-service element, and whether or not it precedes the
above service element.
Bill

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



RE: [HiveMind] How to add interceptor to embedded service

2003-09-17 Thread Howard M. Lewis Ship
Is there any chance that the logging is simply not being output?  LoggingInterceptor 
works at level
DEBUG.  Check your log4j.properties.

--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com

 -Original Message-
 From: Bill Lear [mailto:[EMAIL PROTECTED] 
 Sent: Wednesday, September 17, 2003 2:58 PM
 To: Jakarta Commons Developers List
 Subject: RE: [HiveMind] How to add interceptor to embedded service
 
 
 On Wednesday, September 17, 2003 at 14:47:36 (-0400) Howard 
 M. Lewis Ship writes:
 Strange that that didn't work.  The fact that Divider is 
 used as part 
 of Calculator's implementation does not affect your ability to add 
 interceptors to it. Can we see the complete hivemodule.xml?
 
 That's really it.  Here is the Calculator one, as I just 
 sent, but with the extension attempt:
 
 ?xml version=1.0?
 
 module id=hivemind.examples version=1.0.0
 service id=Calculator interface=hivemind.examples.Calculator
 invoke-factory service-id=hivemind.BuilderFactory
 construct class=hivemind.examples.impl.CalculatorImpl
 
 set-service property=adder
  service-id=org.puppies.math.Adder/
 
 set-service property=subtracter
  
 service-id=org.kitties.math.Subtracter/
 
 set-service property=multiplier
  
 service-id=org.gerbils.math.Multiplier/
 
 set-service property=divider
  service-id=org.fishies.math.Divider/
 /construct
 /invoke-factory
 /service
 
 extend-service service-id=org.fishies.math.Divider
 interceptor service-id=hivemind.LoggingInterceptor/
 /extend-service
 
 /module
 
 When run, I get identical results whether or not I include 
 the above extend-service element, and whether or not it 
 precedes the above service element.
 
 
 Bill
 
 -
 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: [HiveMind] How to add interceptor to embedded service

2003-09-17 Thread Bill Lear
On Wednesday, September 17, 2003 at 15:04:42 (-0400) Howard M. Lewis Ship writes:
Is there any chance that the logging is simply not being output?  LoggingInterceptor 
works at level
DEBUG.  Check your log4j.properties.

Color me moron.  That was it.


Bill

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



Re: [hivemind] Design comparison

2003-09-17 Thread Stephen Colebourne
From: Howard M. Lewis Ship [EMAIL PROTECTED]
 2) The selection of which implementation to use is performed
 late. The selection is based on
 - data in the method arguments
 - the services in the stack calling this one
 - the configuration
 the method parameters. It acts like a big if statement.
 Those almost look like AOP method introductions; this doesn't have a
parallel in HiveMind per se.
Yes hivemind does not seem to allow multiple implementations for the same
interface, and choose the one to use each time it is called. This late
binding is a key part of this framework.

---
 The lookup is hidden from callers by a class that simply has
 all the interfaces as methods, performs the lookup and then
 calls the implementation.
 I'm not following this; in HiveMind services are represented by
interfaces; the implementation of
 the interface may be a fabricated proxy or interceptor, or a user-supplied
core implementation (or a
 fabricated core implementation).
Yes, services are represented by interfaces, with an implementation that may
be decorated with a fabricated proxy. To achieve this you need a lookup to
get the correct implementation class for the interface. (In hivemind this is
performed by a set method on the implementation, but that won't work for
late binding singletons.

---
Stephen


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



cvs commit: jakarta-commons-sandbox/math/src/java/org/apache/commons/math/util BeanTransformer.java NumberTransformer.java

2003-09-17 Thread mdiggory
mdiggory2003/09/17 12:19:09

  Modified:math/src/java/org/apache/commons/math/stat/distribution
BinomialDistribution.java DistributionFactory.java
DistributionFactoryImpl.java
   math/src/test/org/apache/commons/math/stat/distribution
BinomialDistributionTest.java
DistributionFactoryImplTest.java
   math/src/java/org/apache/commons/math/stat Univariate.java
   math/src/java/org/apache/commons/math/util
BeanTransformer.java NumberTransformer.java
  Added:   math/src/java/org/apache/commons/math/stat/distribution
HypergeometricDistribution.java
HypergeometricDistributionImpl.java
   math/src/test/org/apache/commons/math/stat/distribution
HypergeometricDistributionTest.java
   math/src/java/org/apache/commons/math/stat Applyable.java
  Log:
  PR: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23010
  Submitted by:  Brent Worden 
  Reviewed by:  Mark Diggory
  
  Revision  ChangesPath
  1.2   +2 -2  
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/BinomialDistribution.java
  
  Index: BinomialDistribution.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/BinomialDistribution.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BinomialDistribution.java 16 Aug 2003 17:06:15 -  1.1
  +++ BinomialDistribution.java 17 Sep 2003 19:19:08 -  1.2
  @@ -57,7 +57,7 @@
* The Binomial Distribution.
* 
* Instances of BinomialDistribution objects should be created using
  - * [EMAIL PROTECTED] DistributionFactory#createBinomailDistribution(int, double)}.
  + * [EMAIL PROTECTED] DistributionFactory#createBinomialDistribution(int, double)}.
* 
* References:
* ul
  
  
  
  1.11  +15 -2 
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/DistributionFactory.java
  
  Index: DistributionFactory.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/DistributionFactory.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DistributionFactory.java  16 Aug 2003 17:06:15 -  1.10
  +++ DistributionFactory.java  17 Sep 2003 19:19:08 -  1.11
  @@ -51,6 +51,7 @@
* information on the Apache Software Foundation, please see
* http://www.apache.org/.
*/
  +
   package org.apache.commons.math.stat.distribution;
   
   /**
  @@ -99,7 +100,7 @@
* @param probabilityOfSuccess the probability of success.
* @return a new binomial distribution.
*/
  -public abstract BinomialDistribution createBinomailDistribution(
  +public abstract BinomialDistribution createBinomialDistribution(
   int numberOfTrials, double probabilityOfSuccess);
   
   /**
  @@ -142,4 +143,16 @@
* @return a new t distribution.  
*/
   public abstract TDistribution createTDistribution(double degreesOfFreedom);
  +
  +/**
  + * Create a new hypergeometric distribution with the given the population
  + * size, the number of successes in the population, and the sample size.
  + * @param populationSize the population size.
  + * @param numberOfSuccesses number of successes in the population.
  + * @param sampleSize the sample size.
  + * @return a new hypergeometric desitribution.
  + */
  +public abstract HypergeometricDistribution
  +createHypergeometricDistribution(int populationSize,
  +int numberOfSuccesses, int sampleSize);
   }
  
  
  
  1.9   +19 -2 
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/DistributionFactoryImpl.java
  
  Index: DistributionFactoryImpl.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/DistributionFactoryImpl.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DistributionFactoryImpl.java  16 Aug 2003 17:06:15 -  1.8
  +++ DistributionFactoryImpl.java  17 Sep 2003 19:19:08 -  1.9
  @@ -129,10 +129,27 @@
* @param probabilityOfSuccess the probability of success.
* @return a new binomial distribution.
*/
  -public BinomialDistribution createBinomailDistribution(
  +public BinomialDistribution createBinomialDistribution(
   int numberOfTrials, double probabilityOfSuccess) {
   return new BinomialDistributionImpl(numberOfTrials,
 

DO NOT REPLY [Bug 23010] - [math] hypergeometric distribution patch

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23010.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23010

[math] hypergeometric distribution patch

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 19:22 ---
Applied and tested

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



Re: [PATCH] StringValueTransformer added to TransformerUtils

2003-09-17 Thread Stephen Colebourne
Unfortunately, I can't access your patch. Perhaps you could open a Bugzilla
entry and attach the patch to that?
Thanks
Stephen

- Original Message -
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, September 11, 2003 7:57 PM
Subject: [PATCH] StringValueTransformer added to TransformerUtils



 James Carman, President
 Carman Consulting, Inc.
 1218 Bob White Ct.
 Edgewood, KY 41018
 (513) 325-7977







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


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



cvs commit: jakarta-commons/betwixt/src/test/org/apache/commons/betwixt TestBeanWriter.java

2003-09-17 Thread rdonkin
rdonkin 2003/09/17 14:31:58

  Modified:betwixt/src/java/org/apache/commons/betwixt/digester
XMLIntrospectorHelper.java
   betwixt/src/test/org/apache/commons/betwixt
TestBeanWriter.java
  Log:
  Fixed bug when using writing a bean with an adder called add that adds to a 
collection. Submitted by Christoph Sturm.
  
  Revision  ChangesPath
  1.24  +3 -1  
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/XMLIntrospectorHelper.java
  
  Index: XMLIntrospectorHelper.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/XMLIntrospectorHelper.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- XMLIntrospectorHelper.java13 Jul 2003 21:28:10 -  1.23
  +++ XMLIntrospectorHelper.java17 Sep 2003 21:31:58 -  1.24
  @@ -462,6 +462,8 @@
   
   if ( ( types.length == 1 ) || types.length == 2 ) {
   String propertyName = Introspector.decapitalize( 
name.substring(3) );
  +if (propertyName.length() == 0)
  +continue;
   if ( log.isTraceEnabled() ) {
   log.trace( name + - + propertyName );
   }
  
  
  
  1.16  +28 -1 
jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/TestBeanWriter.java
  
  Index: TestBeanWriter.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/TestBeanWriter.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- TestBeanWriter.java   28 Jun 2003 10:34:28 -  1.15
  +++ TestBeanWriter.java   17 Sep 2003 21:31:58 -  1.16
  @@ -66,6 +66,7 @@
   import java.io.StringWriter;
   
   import java.util.ArrayList;
  +import java.util.Collection;
   
   import junit.framework.Test;
   import junit.framework.TestSuite;
  @@ -74,7 +75,6 @@
   import org.apache.commons.betwixt.io.BeanWriter;
   import org.apache.commons.betwixt.io.CyclicReferenceException;
   import org.apache.commons.logging.impl.SimpleLog;
  -import org.apache.commons.betwixt.digester.XMLIntrospectorHelper;
   import org.apache.commons.betwixt.strategy.CapitalizeNameMapper;
   import org.apache.commons.betwixt.strategy.HyphenatedNameMapper;
   
  @@ -669,6 +669,33 @@
   parseString(out.getBuffer().toString()),
   parseString(xml), 
   true);
  +}
  +
  +public void testBeanWriterWorksWithAnAddMethodAndACollection() throws Exception 
{
  +
  +BeanWriter bw = new BeanWriter();
  +try {
  +bw.write(new BeanWithAddMethod());
  +} catch (IllegalArgumentException e) {
  +fail(BeanWriter fails when a method is just called add(type) and 
there is also a collection);
  +}
  +}
  +
  +// used in testBeanWriterWorksWithAnAddMethodAndACollection
  +public static class BeanWithAddMethod {
  +private Collection x;
  +public void add(Object x)
  +{
  +// do nothing
  +}
  +
  +public Collection getX() {
  +return x;
  +}
  +
  +public void setX(Collection x) {
  +this.x = x;
  +}
   }
   }
   
  
  
  

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



Re: [collections] 3.0 release (1)

2003-09-17 Thread Henri Yandell


On Wed, 17 Sep 2003, Stephen Colebourne wrote:

 - OrderedMap decorator?

Have begun work on this. I'll go ahead and check in where I am at the
moment, with some nice big comments saying it's unfinished, but passing
unit tests. [mainly because the unit tests are very basic at the moment].

Hen



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



cvs commit: jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/strategy Testi18nObjectStringConversion.java

2003-09-17 Thread rdonkin
rdonkin 2003/09/17 14:36:30

  Modified:betwixt/src/test/org/apache/commons/betwixt/strategy
Testi18nObjectStringConversion.java
  Log:
  Converted test file to UTF-8.
  
  Revision  ChangesPath
  1.2   +5 -5  
jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/strategy/Testi18nObjectStringConversion.java
  
  Index: Testi18nObjectStringConversion.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/strategy/Testi18nObjectStringConversion.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Testi18nObjectStringConversion.java   9 Sep 2003 22:57:49 -   1.1
  +++ Testi18nObjectStringConversion.java   17 Sep 2003 21:36:30 -  1.2
  @@ -97,7 +97,7 @@
   calendar.set(1980, 11, 9, 5, 0, 0);
   java.util.Date date = calendar.getTime();
   String formatted = format.format(date);
  -assertEquals(Locale dependent conversions, mar. dŽc. 09 05:00:000 1980, 
formatted);
  +assertEquals(Locale dependent conversions, mar. déc. 09 05:00:000 
1980, formatted);
   
   }
   }
  
  
  

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



cvs commit: jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/strategy Testi18nObjectStringConversion.java

2003-09-17 Thread rdonkin
rdonkin 2003/09/17 14:46:13

  Modified:betwixt/src/test/org/apache/commons/betwixt/strategy
Testi18nObjectStringConversion.java
  Log:
  Escaped french character to unicode value
  
  Revision  ChangesPath
  1.3   +6 -6  
jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/strategy/Testi18nObjectStringConversion.java
  
  Index: Testi18nObjectStringConversion.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/strategy/Testi18nObjectStringConversion.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Testi18nObjectStringConversion.java   17 Sep 2003 21:36:30 -  1.2
  +++ Testi18nObjectStringConversion.java   17 Sep 2003 21:46:13 -  1.3
  @@ -97,7 +97,7 @@
   calendar.set(1980, 11, 9, 5, 0, 0);
   java.util.Date date = calendar.getTime();
   String formatted = format.format(date);
  -assertEquals(Locale dependent conversions, mar. déc. 09 05:00:000 
1980, formatted);
  +assertEquals(Locale dependent conversions, mar. d\u00E9c. 09 05:00:000 
1980, formatted);
   
   }
   }
  
  
  

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



DO NOT REPLY [Bug 23222] - [betwixt] o.a.c.betwixt.strategy.Testi18nObjectStringConversion.testFrenchDefaultLocale failure on Win2k

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23222.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23222

[betwixt] 
o.a.c.betwixt.strategy.Testi18nObjectStringConversion.testFrenchDefaultLocale failure 
on Win2k

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 21:51 ---
hi matthew

i've taken another look at the code (and the encodings of the source files) and
think that i've found a possible cause. i've just committed a change to escape
the french character to it's unicode value. i think that this should solve this
problem.

please feel free to reopen it if it does not.

Robert

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



Re: [collections] Observed

2003-09-17 Thread Stephen Colebourne
How useful are these convenience methods? I added them, then removed them.
Trouble is that not every handler will necessarily use listeners (although
most will).

Synchronized - collection is always synchronized
Bounded - collection is always bounded
Predicated - collection is always predicated
Unmodifiable - collection can not be modified

Observed - collection is always observed
Observable - collection can be observed

Naming is dubious, but I guess Observable might be marginally better as the
observer is optional. Any other views?

Stephen


From: Michael Heuer [EMAIL PROTECTED]
 Could you add methods to ObservableCollection and friends that forward to
 the ModificationHandler,

 public void addPreModificationListener(Object l)
 {
   getHandler().addPreModificationListener(l);
 }

 public void removePreModificationListener(Object l)
 public void addPostModificationListener(Object l)
 public void removePostModificationListener(Object l)

 etc.

 Also, before release, does anyone else want to weigh in on Observable vs.
 Observed?

michael


 On Wed, 17 Sep 2003, Stephen Colebourne wrote:

  We still have too many issues for a freeze this weekend, so I'll extend
the
  deadline by two weeks at this point, although I shan't be surprised if
it
  slips again. The code is improving greatly however, so this is good.
 
  Still to do:
  - ObservedMap
  - write observedXxx() methods for CollectionUtils et al
  - write release notes
  - tidy up the Bugzilla entries
  - MultiMap changes??
  - Bag interface changes??
  - OrderedMap decorator?
 
  Stephen
 
  - Original Message -
  From: Stephen Colebourne [EMAIL PROTECTED]
  To: Jakarta Commons Developers List [EMAIL PROTECTED]
  Sent: Wednesday, September 03, 2003 10:34 PM
  Subject: [collections] 3.0 release (1)
 
 
   I am volunteering to arrange the 3.0 release of [collections], which
is
  long
   overdue.
  
   I am currently:
   - finishing the ObservedCollection code
   - writing release notes
   - trying to separate the primitive collections code
   - rename SequencedSet to OrderedSet
   - reviewing the bugzilla entries
  
   Other tasks:
   - write OrderedMap decorator (Hen)
   - review Bag interface where it deviates from Collection
   - see if MultiMap code on bugzilla can be integrated
  
   Henri has volunteered to do the actual final builds and release to
   Minatour/Mirrors, but (unless someone objects) I will manage the
release.
  
   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]
 
 


 -
 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: [graph] is the projec alive?

2003-09-17 Thread Jason van Zyl
On Wed, 2003-09-17 at 16:50, robert burrell donkin wrote:
 henri's right but there's one corollary i'd like to add: in order to gain 
 promotion to the commons proper, graph needs an apache committer to 
 champion it. maven seems like the best place to find one.

I was talking to David Dixon-Peugh and what might happen is we just pick
up the code and move it to codehaus.

 - robert
 
 On Wednesday, September 17, 2003, at 02:10 PM, Henri Yandell wrote:
 
  People to talk to look like jvanzyl, dion and mvdb. I think they all
  listen here, but the Maven list might be better monitored.
 
  There's no PROPOSAL.html or STATUS.html in there, so it's not got the
  necessary requirements for a promotion to Commons proper to be considered.
 
  Hen
 
  On Wed, 17 Sep 2003, Tomasz Pik wrote:
 
  Commons developers,
 
  There's a 'graph2' module in sandbox CVS containing implementation
  of 'graph' structure. I'd like to ask about status of this project.
  CVS looks like untouched for about a year.
  This package is not released (because it's in sandbox).
  On the other side Maven depends on this.
  So - are there any plans for promoting this to 'commons' and release?
 
  Thanks
  Tomek
 
 
 
 
 
  -
  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]
-- 
jvz.

Jason van Zyl
[EMAIL PROTECTED]
http://tambora.zenplex.org

In short, man creates for himself a new religion of a rational
and technical order to justify his work and to be justified in it.
  
  -- Jacques Ellul, The Technological Society


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



DO NOT REPLY [Bug 23229] New: - File Upload Not Compatible With IE 5.2.3 MacOS X

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23229.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23229

File Upload Not Compatible With IE 5.2.3 MacOS X

   Summary: File Upload Not Compatible With IE 5.2.3 MacOS X
   Product: Commons
   Version: 1.0 Final
  Platform: Other
OS/Version: Linux
Status: NEW
  Severity: Normal
  Priority: Other
 Component: File Upload
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


I've got a Struts 1.1 application with a file upload field that works on all the 
browsers that I can 
think of (IE5/6 PC, Mozilla, Safari, etc) except IE5 Macintosh.  I get this exception 
whether or not a 
file has been selected to upload:

[Thread-50] ERROR org.apache.struts.upload.CommonsMultipartRequestHandler - Failed to 
parse 
multipart request
org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data 
request 
failed. Stream ended unexpectedly
at 
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:429)
at 
org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(CommonsMultipartRe
questHandler.java:233)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1209)
at 
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.etp.voter.web.client.LoginFilter.doFilter(LoginFilter.java:49)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.etp.voter.web.HibernateFilter.doFilter(HibernateFilter.java:84)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.etp.commons.web.UnicodeFormFilter.doFilter(UnicodeFormFilter.java:35)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipel
ine.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipel
ine.java:643)
at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipel
ine.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipel
ine.java:643)
at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipel
ine.java:641)
at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipel
ine.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at 

Re: [collections] Observed

2003-09-17 Thread Michael Heuer

On Wed, 17 Sep 2003, Stephen Colebourne wrote:

 How useful are these convenience methods? I added them, then removed them.
 Trouble is that not every handler will necessarily use listeners (although
 most will).

It seems to me that the Handler is more an artifact of designing
flexibility into the implementation than something that a client (in most
cases) wants to concern themselves with.

You raise a good exception though.

   michael



 Synchronized - collection is always synchronized
 Bounded - collection is always bounded
 Predicated - collection is always predicated
 Unmodifiable - collection can not be modified

 Observed - collection is always observed
 Observable - collection can be observed

 Naming is dubious, but I guess Observable might be marginally better as the
 observer is optional. Any other views?

 Stephen


 From: Michael Heuer [EMAIL PROTECTED]
  Could you add methods to ObservableCollection and friends that forward to
  the ModificationHandler,
 
  public void addPreModificationListener(Object l)
  {
getHandler().addPreModificationListener(l);
  }
 
  public void removePreModificationListener(Object l)
  public void addPostModificationListener(Object l)
  public void removePostModificationListener(Object l)
 
  etc.
 
  Also, before release, does anyone else want to weigh in on Observable vs.
  Observed?
 
 michael
 
 
  On Wed, 17 Sep 2003, Stephen Colebourne wrote:
 
   We still have too many issues for a freeze this weekend, so I'll extend
 the
   deadline by two weeks at this point, although I shan't be surprised if
 it
   slips again. The code is improving greatly however, so this is good.
  
   Still to do:
   - ObservedMap
   - write observedXxx() methods for CollectionUtils et al
   - write release notes
   - tidy up the Bugzilla entries
   - MultiMap changes??
   - Bag interface changes??
   - OrderedMap decorator?
  
   Stephen
  
   - Original Message -
   From: Stephen Colebourne [EMAIL PROTECTED]
   To: Jakarta Commons Developers List [EMAIL PROTECTED]
   Sent: Wednesday, September 03, 2003 10:34 PM
   Subject: [collections] 3.0 release (1)
  
  
I am volunteering to arrange the 3.0 release of [collections], which
 is
   long
overdue.
   
I am currently:
- finishing the ObservedCollection code
- writing release notes
- trying to separate the primitive collections code
- rename SequencedSet to OrderedSet
- reviewing the bugzilla entries
   
Other tasks:
- write OrderedMap decorator (Hen)
- review Bag interface where it deviates from Collection
- see if MultiMap code on bugzilla can be integrated
   
Henri has volunteered to do the actual final builds and release to
Minatour/Mirrors, but (unless someone objects) I will manage the
 release.
   
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]
  
  
 
 
  -
  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]



DO NOT REPLY [Bug 23232] New: - [collections][PATCH] TestBlockingBuffer extensions and BlockingBuffer fix

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23232.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23232

[collections][PATCH] TestBlockingBuffer extensions and BlockingBuffer fix

   Summary: [collections][PATCH] TestBlockingBuffer extensions and
BlockingBuffer fix
   Product: Commons
   Version: Nightly Builds
  Platform: Other
OS/Version: Other
Status: NEW
  Severity: Normal
  Priority: Other
 Component: Collections
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


The attached patch adds some tests to assert the behaviour of
BlockingBuffer.get()/remove()/add()/addAll in various combinations.

The discussion that led to this patch can be found at bug 23159.

Also attached is a patch to change notify() to notifyAll() in BlockingBuffer
which allows the tests in TestBlockingBuffer to pass.

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



cvs commit: jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/params DefaultHttpParams.java HttpParamsFactory.java DefaultHttpParamsFactory.java

2003-09-17 Thread mbecke
mbecke  2003/09/17 16:29:05

  Modified:httpclient/src/java/org/apache/commons/httpclient/util
DateParser.java
   httpclient/src/java/org/apache/commons/httpclient
HttpClient.java
   httpclient/src/java/org/apache/commons/httpclient/params
DefaultHttpParams.java HttpParamsFactory.java
DefaultHttpParamsFactory.java
  Log:
  Adds Javadocs and moves DateParser formats to configuration system.
  PR: 15435
  Submitted by: Michael Becke
  Reviewed by: Oleg Kalnichevski
  
  Revision  ChangesPath
  1.7   +44 -29
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/util/DateParser.java
  
  Index: DateParser.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/util/DateParser.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DateParser.java   25 Aug 2003 03:09:57 -  1.6
  +++ DateParser.java   17 Sep 2003 23:29:05 -  1.7
  @@ -65,10 +65,17 @@
   
   import java.text.ParseException;
   import java.text.SimpleDateFormat;
  +import java.util.Arrays;
  +import java.util.Collection;
   import java.util.Date;
  +import java.util.Iterator;
   import java.util.Locale;
   import java.util.TimeZone;
   
  +import org.apache.commons.httpclient.params.DefaultHttpParams;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
  +
   /**
* A utility class for parsing HTTP dates as used in cookies and other headers.  
* This class handles dates as defined by RFC 2616 section 3.3.1 as well as 
  @@ -79,6 +86,17 @@
*/
   public class DateParser {
   
  +/** Log object for this class. */
  +private static final Log LOG = LogFactory.getLog(DateParser.class);
  +
  +/**
  + * The key used to look up the date patterns used for parsing.  The String 
patterns are stored
  + * in a [EMAIL PROTECTED] Collection} and must be compatible with [EMAIL 
PROTECTED] SimpleDateFormat}.
  + * 
  + * @see org.apache.commons.httpclient.params.DefaultHttpParams
  + */
  +public static final String KEY_DATE_PATTERNS = http.dateParser.patterns;
  +
   /**
* Date format pattern used to parse HTTP date headers in RFC 1123 format.
*/
  @@ -95,26 +113,9 @@
*/
   public static final String PATTERN_ASCTIME = EEE MMM d HH:mm:ss ;
   
  -/** The patterns used for parsing dates */
  -private static final String[] DATE_PATTERNS = {
  -PATTERN_RFC1123,
  -PATTERN_RFC1036,
  -PATTERN_ASCTIME,
  -EEE, dd-MMM- HH:mm:ss z,
  -EEE, dd-MMM- HH-mm-ss z,
  -EEE, dd MMM yy HH:mm:ss z,
  -EEE dd-MMM- HH:mm:ss z,
  -EEE dd MMM  HH:mm:ss z,
  -EEE dd-MMM- HH-mm-ss z,
  -EEE dd-MMM-yy HH:mm:ss z,
  -EEE dd MMM yy HH:mm:ss z,
  -EEE,dd-MMM-yy HH:mm:ss z,
  -EEE,dd-MMM- HH:mm:ss z,
  -EEE, dd-MM- HH:mm:ss z,
  -};
  -
   /**
  - * Parses a date value.
  + * Parses a date value.  The formats used for parsing the date value are 
retrieved from
  + * the default http params.
*
* @param dateValue the date value to parse
* 
  @@ -122,13 +123,25 @@
*
* @throws DateParseException if the value could not be parsed using any of the 
* supported date formats
  + * 
  + * @see DefaultHttpParams#getDefaultParams()
*/
   public static Date parseDate(String dateValue) throws DateParseException {
  -return parseDate(dateValue, DATE_PATTERNS);
  +
  +Collection patterns = (Collection) 
DefaultHttpParams.getDefaultParams().getParameter(
  +KEY_DATE_PATTERNS
  +);
  +if (patterns == null) {
  +LOG.warn(DateParser patterns not included in the default params.);
  +patterns = Arrays.asList(
  +new String[] { PATTERN_ASCTIME, PATTERN_RFC1036, PATTERN_RFC1123 }
  +);
  +}
  +return parseDate(dateValue, patterns);
   }
   
   /**
  - * Parses the date value using the array of date formats.
  + * Parses the date value using the given date formats.
* 
* @param dateValue the date value to parse
* @param dateFormats the date formats to use
  @@ -139,7 +152,7 @@
*/
   private static Date parseDate(
   String dateValue, 
  -String[] dateFormats
  +Collection dateFormats
   ) throws DateParseException {
   
   if (dateValue == null) {
  @@ -155,14 +168,16 @@
   dateValue = dateValue.substring (1, dateValue.length() - 1);
   }
   
  -SimpleDateFormat dateParser = null;
  +SimpleDateFormat 

DO NOT REPLY [Bug 23232] - [collections][PATCH] TestBlockingBuffer extensions and BlockingBuffer fix

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23232.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23232

[collections][PATCH] TestBlockingBuffer extensions and BlockingBuffer fix





--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 23:33 ---
Created an attachment (id=8265)
patch adding several useful test cases to o.a.c.c.decorators.TestBlockingBuffer

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



DO NOT REPLY [Bug 23232] - [collections][PATCH] TestBlockingBuffer extensions and BlockingBuffer fix

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23232.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23232

[collections][PATCH] TestBlockingBuffer extensions and BlockingBuffer fix





--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 23:37 ---
Created an attachment (id=8266)
patch fixing BlockingBuffer to use notifyAll

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



DO NOT REPLY [Bug 23234] New: - [collections][PATCH] BlockingBuffer JavaDoc improvement

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23234.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23234

[collections][PATCH] BlockingBuffer JavaDoc improvement

   Summary: [collections][PATCH] BlockingBuffer JavaDoc improvement
   Product: Commons
   Version: Nightly Builds
  Platform: Other
OS/Version: Other
Status: NEW
  Severity: Normal
  Priority: Other
 Component: Collections
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


The attached patch improvements the JavaDoc for
o.a.c.c.decorators.BlockingBuffer by describing the behaviour of get() and
remove() in a multithreaded environment.

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



DO NOT REPLY [Bug 23234] - [collections][PATCH] BlockingBuffer JavaDoc improvement

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23234.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23234

[collections][PATCH] BlockingBuffer JavaDoc improvement





--- Additional Comments From [EMAIL PROTECTED]  2003-09-18 00:14 ---
Created an attachment (id=8267)
patch to improve JavaDoc for o.a.c.c.decorators.BlockingBuffer

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



DO NOT REPLY [Bug 23159] - [collections][PATCH] makes code easier to understand

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23159.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23159

[collections][PATCH] makes code easier to understand

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-09-18 00:23 ---
The patch at bug 23234 attempts to be clear about the method behaviours while
the patches at bug 23232 address the threading issue.

lock!=this (or not) is not addressed by any of these patches.

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



Re: [graph] is the projec alive?

2003-09-17 Thread dion
I hardly remember where Maven uses it to be honest.

--
dIon Gillard, Multitask Consulting
Blog:  http://blogs.codehaus.org/people/dion/


Henri Yandell [EMAIL PROTECTED] wrote on 17/09/2003 11:10:06 PM:

 
 People to talk to look like jvanzyl, dion and mvdb. I think they all
 listen here, but the Maven list might be better monitored.
 
 There's no PROPOSAL.html or STATUS.html in there, so it's not got the
 necessary requirements for a promotion to Commons proper to be 
considered.
 
 Hen
 
 On Wed, 17 Sep 2003, Tomasz Pik wrote:
 
  Commons developers,
 
  There's a 'graph2' module in sandbox CVS containing implementation
  of 'graph' structure. I'd like to ask about status of this project.
  CVS looks like untouched for about a year.
  This package is not released (because it's in sandbox).
  On the other side Maven depends on this.
  So - are there any plans for promoting this to 'commons' and release?
 
  Thanks
  Tomek
 
 
 
 
 
  -
  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: Re: [Fwd: Re: [HIVEMIND] Examples Please?]]

2003-09-17 Thread dion
Bill Lear [EMAIL PROTECTED] wrote on 18/09/2003 12:20:24 AM:

 On Wednesday, September 17, 2003 at 10:09:57 (-0400) Howard M. Lewis
 Ship writes:
 Looks like you don't have the javassist-2.6.jar on the classpath.
  
 This is why Maven is cool ... it will download the jar for you; you
 can see then when you get the
 HiveMInd source, which is built using Maven.
  
 http://maven.apache.org
 
 If Maven holds up to its promise, I think it and HiveMind would
 work together very nicely.
Which promise is that?
--
dIon Gillard, Multitask Consulting
Blog:  http://blogs.codehaus.org/people/dion/




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



cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections/decorators TestBlockingBuffer.java

2003-09-17 Thread psteitz
psteitz 2003/09/17 20:28:28

  Modified:collections/src/java/org/apache/commons/collections/decorators
BlockingBuffer.java
   collections/src/test/org/apache/commons/collections/decorators
TestBlockingBuffer.java
  Log:
  Modified BlockingBuffer add method to notifyAll
  instead of notify.
  Added tests to verify blocking behavior.
  Patch submitted by: Janek Bogucki
  Reviewed by: Phil Steitz
  Pr #23232, 23159
  
  Revision  ChangesPath
  1.3   +5 -4  
jakarta-commons/collections/src/java/org/apache/commons/collections/decorators/BlockingBuffer.java
  
  Index: BlockingBuffer.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/decorators/BlockingBuffer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BlockingBuffer.java   31 Aug 2003 17:24:46 -  1.2
  +++ BlockingBuffer.java   18 Sep 2003 03:28:28 -  1.3
  @@ -64,13 +64,14 @@
   
   /**
* codeBlockingBuffer/code decorates another codeBuffer/code
  - * to block on calls to the get method to wait until entries are
  + * to block on calls to the get and remove methods to wait until entries are
* added to the buffer.
*
* @since Commons Collections 3.0
* @version $Revision$ $Date$
* 
* @author Stephen Colebourne
  + * @author Janek Bogucki
*/
   public class BlockingBuffer extends SynchronizedBuffer {
   
  @@ -98,7 +99,7 @@
   public boolean add(Object o) {
   synchronized (lock) {
   boolean result = collection.add(o);
  -notify();
  +notifyAll();
   return result;
   }
   }
  
  
  
  1.2   +181 -77   
jakarta-commons/collections/src/test/org/apache/commons/collections/decorators/TestBlockingBuffer.java
  
  Index: TestBlockingBuffer.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/decorators/TestBlockingBuffer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestBlockingBuffer.java   15 Sep 2003 03:50:41 -  1.1
  +++ TestBlockingBuffer.java   18 Sep 2003 03:28:28 -  1.2
  @@ -57,15 +57,16 @@
*/
   package org.apache.commons.collections.decorators;
   
  +import java.util.ArrayList;
   import java.util.Collections;
  +import java.util.HashSet;
   import java.util.LinkedList;
  -import java.util.ArrayList;
  +import java.util.Set;
   
   import junit.framework.Test;
   import junit.framework.TestSuite;
   
   import org.apache.commons.collections.Buffer;
  -import org.apache.commons.collections.ArrayStack;
   import org.apache.commons.collections.BufferUnderflowException;
   import org.apache.commons.collections.decorators.BlockingBuffer;
   
  @@ -102,7 +103,7 @@
   
   //---
   /**
  - *  Tests [EMAIL PROTECTED] BlockingBuffer#get()}.
  + *  Tests [EMAIL PROTECTED] BlockingBuffer#get()} in combination with [EMAIL 
PROTECTED] BlockingBuffer#add()}.
*/
   public void testGetWithAdd() {
 
  @@ -117,7 +118,7 @@
   
   //---
   /**
  - *  Tests [EMAIL PROTECTED] BlockingBuffer#get()}.
  + *  Tests [EMAIL PROTECTED] BlockingBuffer#get()} in combination with [EMAIL 
PROTECTED] BlockingBuffer#addAll()}.
*/
   public void testGetWithAddAll() {
   
  @@ -132,7 +133,7 @@
   
   //---
   /**
  - *  Tests [EMAIL PROTECTED] BlockingBuffer#remove()}.
  + *  Tests [EMAIL PROTECTED] BlockingBuffer#remove()} in combination with [EMAIL 
PROTECTED] BlockingBuffer#add()}.
*/
   public void testRemoveWithAdd() {
   
  @@ -147,7 +148,7 @@
   
   //---
   /**
  - *  Tests [EMAIL PROTECTED] BlockingBuffer#remove()}.
  + *  Tests [EMAIL PROTECTED] BlockingBuffer#remove()} in combination with [EMAIL 
PROTECTED] BlockingBuffer#addAll()}.
*/
   public void testRemoveWithAddAll() {
   
  @@ -159,107 +160,74 @@
   // verify does not throw BufferUnderflowException; should block until other 
thread has added to the buffer .
   assertSame(obj, blockingBuffer.remove());
   }
  -
  +
   //---
   /**
  - *  Tests get using multiple read threads.
  + *  Tests [EMAIL PROTECTED] BlockingBuffer#get()} in combination with [EMAIL 
PROTECTED] BlockingBuffer#add()} using multiple read threads.
*
  - *  Verifies that multiple adds are 

Re: [RESULT] Re: [VOTE] New committer - Matthew Hawthorne

2003-09-17 Thread Cliff Woolley
On Wed, 17 Sep 2003, Dirk Verbeeck wrote:

 Matthew,
 Jim received your CLA (see his mail on commons-dev 10 sept 2003)
 But nobody notified the infrastructure team to do the actual account
 creation.
 (You're still listed as no CLA)
 Jim, infrastructure guys, can you get the ball rolling again...

Somehow I missed seeing this and one other one in jim's commit to
foundation/clas.txt about a week ago.  (We're still trying to iron out
this whole CLA process.)  I'll create those two accounts tonight; sorry
for the delay.

--Cliff

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



cvs commit: jakarta-commons/collections/src/java/org/apache/commons/collections/decorators BlockingBuffer.java

2003-09-17 Thread psteitz
psteitz 2003/09/17 22:09:15

  Modified:collections/src/java/org/apache/commons/collections/decorators
BlockingBuffer.java
  Log:
  Clarified blocking behavior in javadoc.
  Submitted by: Janek Bogucki
  Reviewed/Edited by: Phil Steitz
  Pr #23234
  
  Revision  ChangesPath
  1.4   +17 -5 
jakarta-commons/collections/src/java/org/apache/commons/collections/decorators/BlockingBuffer.java
  
  Index: BlockingBuffer.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/decorators/BlockingBuffer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- BlockingBuffer.java   18 Sep 2003 03:28:28 -  1.3
  +++ BlockingBuffer.java   18 Sep 2003 05:09:15 -  1.4
  @@ -63,15 +63,27 @@
   import org.apache.commons.collections.BufferUnderflowException;
   
   /**
  - * codeBlockingBuffer/code decorates another codeBuffer/code
  - * to block on calls to the get and remove methods to wait until entries are
  - * added to the buffer.
  + * codeBlockingBuffer/code decorates a codeBuffer/code to make 
  + * [EMAIL PROTECTED] #get()} and [EMAIL PROTECTED] #remove()} block when the 
codeBuffer/code 
  + * is empty.
  + * p
  + * If either codeget/code or coderemove/code is called on an empty
  + * codeBuffer/code, the calling thread waits for notification that
  + * an [EMAIL PROTECTED] #add} or [EMAIL PROTECTED] #addAll} operation has completed.
  + * p
  + * When one or more entries are added to an empty codeBuffer/code,
  + * all threads blocked in codeget/code or coderemove/code are notified.
  + * There is no guarantee that concurrent blocked codeget/code or 
  + * coderemove/code requests will be unblocked and receive data in the 
  + * order that they arrive.
  + *
*
* @since Commons Collections 3.0
* @version $Revision$ $Date$
* 
* @author Stephen Colebourne
* @author Janek Bogucki
  + * @author Phil Steitz
*/
   public class BlockingBuffer extends SynchronizedBuffer {
   
  
  
  

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



DO NOT REPLY [Bug 23234] - [collections][PATCH] BlockingBuffer JavaDoc improvement

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23234.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23234

[collections][PATCH] BlockingBuffer JavaDoc improvement

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-09-18 05:12 ---
Slightly edited patch applied.

Thanks.

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



DO NOT REPLY [Bug 23232] - [collections][PATCH] TestBlockingBuffer extensions and BlockingBuffer fix

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23232.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23232

[collections][PATCH] TestBlockingBuffer extensions and BlockingBuffer fix

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-09-18 05:14 ---
Patches applied.  Thanks.

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



Re: [RESULT] Re: [VOTE] New committer - Matthew Hawthorne

2003-09-17 Thread __matthewHawthorne
Thanks!



Cliff Woolley wrote:
On Wed, 17 Sep 2003, Dirk Verbeeck wrote:


Matthew,
Jim received your CLA (see his mail on commons-dev 10 sept 2003)
But nobody notified the infrastructure team to do the actual account
creation.
(You're still listed as no CLA)
Jim, infrastructure guys, can you get the ball rolling again...


Somehow I missed seeing this and one other one in jim's commit to
foundation/clas.txt about a week ago.  (We're still trying to iron out
this whole CLA process.)  I'll create those two accounts tonight; sorry
for the delay.
--Cliff


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


[jelly] Re: XML tag library

2003-09-17 Thread dion
This appears to be a Jelly problem.
--
dIon Gillard, Multitask Consulting
Blog:  http://blogs.codehaus.org/people/dion/


Pavel Sher [EMAIL PROTECTED] wrote on 17/09/2003 10:32:22 PM:

 Hello,
 
 When I am trying to process the following Jelly script I've got the 
error:
 [java] org.apache.commons.jelly.JellyTagException: file:/C:
 /Work/SDS/templates/sample1.xhtml:31:105: x:transform The node 
 [EMAIL PROTECTED] [Element: h1 attributes: []
 /] could not be added to the branch null because: Cannot add 
 another element to this Document as it already has  a root element of: 
h1
 [java]  at org.apache.commons.jelly.impl.TagScript.
 handleException(TagScript.java:683)
 
 
 Script:
 
 ?xml version=1.0?
 j:jelly xmlns=http://my.uri.com; xmlns:j=jelly:core 
xmlns:x=jelly:xml
 ${systemScope.setProperty('javax.xml.transform.
 TransformerFactory','net.sf.saxon.TransformerFactoryImpl')}
 ${systemScope.setProperty('org.xml.sax.driver','org.apache.xerces.
 parsers.SAXParser')}
 
 html
 head
 titleThe first sample/title
 /head
 body
 
 x:transform xslt=${basedir}/stylesheets/sample1-toc.xsl 
 xml=${basedir}/xml/sample1.xml var=toc/
 x:transform xslt=${basedir}/stylesheets/sample1.xsl 
 xml=${basedir}/xml/sample1.xml var=book/
 
 table border=1 cellspacing=0 cellpadding=0
 tr
 tdTable Of Contents/td
 /tr
 tr
 td
 !-- TOC --
 x:copyOf select=$toc/
 !-- TOC --
 /td
 /tr
 /table
 
 table border=0 cellspacing=0 cellpadding=0
 tr
 td
 !-- BODY --
 x:copyOf select=$book/
 !-- BODY --
 /td
 /tr
 /table
 
 /body
 /html
 /j:jelly
 
 If I use comment out second x:transform var=book/ and remove 
 second x:copyOf/ then the script works fine.
 Maybe somebody knows why?
 
 --
 Best regards
 
 Pavel Sher, [EMAIL PROTECTED]
 


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



Re: [PATCH] Reworked digest auth

2003-09-17 Thread Ortwin Glück
Take 2:

- DigestScheme requires a nonce in every challange now
  (according to RFC 2617) test cases changed accordingly
- included Olegs feedback
After reading RFC 2617 I came to the conclusion, that we need to rework 
out authentication mechanism to support stateful authentication retries. 
Digest Authentication requires you to keep track of the number of times 
authentication has been retries (NC) and to calculate some values only 
on the first time etc. This can be achieved by making the DigestScheme 
more stateful (a1) and by changing authenticator to keep the 
DigestScheme instance across retries and pass in the challenge each time.

Odi

Oleg Kalnichevski wrote:

Odi,
The patch looks fine to me. There is just a few minor points that I
would like to be considered before the patch is committed:
- DigestScheme#DigestScheme( String ) constructor should probably log a
warning message or even throw an exception if it encounters an
unrecognised 'qop' element. Currently they are just silently ignored.
- Use StringBuffer to concatenate strings in DigestScheme#createDigest(
String, String ).
- A test case for unsupported qop in HTTP Digest authentication would be
nice.
- The patch makes a few public methods private (quite appropriately in
my opinion). Nobody is going to miss them, I think, however, the fact of
2.0 API breakage should be reflected in API_CHANGES_2_1.txt
Cheers

Oleg
Index: API_CHANGES_2_1.txt
===
RCS file: /home/cvspublic/jakarta-commons/httpclient/API_CHANGES_2_1.txt,v
retrieving revision 1.2
diff -u -r1.2 API_CHANGES_2_1.txt
--- API_CHANGES_2_1.txt 5 Jul 2003 22:59:15 -   1.2
+++ API_CHANGES_2_1.txt 17 Sep 2003 08:07:18 -
@@ -22,3 +22,12 @@
 
 * NTLM classes moved to org.apache.commons.httpclient.auth package amd made private
 
+* DigestSheme:
+the following public methods were removed, as they were only public for testing
+- authenticate(UsernamePasswordCredentials, Map)
+- createDigest(String, String, Map)
+- createDigestHeader(String, Map, String)
+the following public methods were made private, as they now depend on or mutate 
the
+state of DigestScheme:
+- createDigest(String, String)
+- createDigestHeader(String, String)
Index: release_notes.txt
===
RCS file: /home/cvspublic/jakarta-commons/httpclient/release_notes.txt,v
retrieving revision 1.13
diff -u -r1.13 release_notes.txt
--- release_notes.txt   1 Aug 2003 23:20:09 -   1.13
+++ release_notes.txt   17 Sep 2003 08:07:18 -
@@ -1,5 +1,9 @@
 Changes on the CVS trunk:
 
+ * added support for MD5-sess Digest authentication scheme
+ 
+ * improved compliance to RFC 2617
+ 
  * 10791 - Improved HTTP Version configuration and tracking.
 
  * 21880 - Content-Length  Transfer-Encoding request headers formerly set by 
abstract 
Index: src/java/org/apache/commons/httpclient/auth/DigestScheme.java
===
RCS file: 
/home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/DigestScheme.java,v
retrieving revision 1.8
diff -u -r1.8 DigestScheme.java
--- src/java/org/apache/commons/httpclient/auth/DigestScheme.java   11 Sep 2003 
09:09:42 -  1.8
+++ src/java/org/apache/commons/httpclient/auth/DigestScheme.java   17 Sep 2003 
08:07:21 -
@@ -1,7 +1,7 @@
 /*
- * $Header: 
/home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/DigestScheme.java,v
 1.8 2003/09/11 09:09:42 oglueck Exp $
- * $Revision: 1.8 $
- * $Date: 2003/09/11 09:09:42 $
+ * $Header: 
/home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/DigestScheme.java,v
 1.7 2003/09/08 02:00:03 mbecke Exp $
+ * $Revision: 1.7 $
+ * $Date: 2003/09/08 02:00:03 $
  *
  * 
  *
@@ -63,7 +63,7 @@
 
 package org.apache.commons.httpclient.auth;
 
-import java.util.Map;
+import java.util.StringTokenizer;
 import java.security.MessageDigest;
 
 import org.apache.commons.httpclient.HttpConstants;
@@ -75,7 +75,12 @@
 /**
  * p
  * Digest authentication scheme as defined in RFC 2617.
+ * Both MD5 (default) and MD5-sess are supported.
+ * Currently only qop=auth or no qop is supported. qop=auth-int
+ * is unsupported. If auth and auth-int are provided, auth is
+ * used.
  * /p
+ * @TODO: make class more stateful regarding repeated authentication requests
  * 
  * @author a href=mailto:[EMAIL PROTECTED]Remy Maucherat/a
  * @author Rodney Waldhoff
@@ -102,6 +107,15 @@
 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 
 'e', 'f'
 };
+
+//@TODO: supply a real nonce-count, currently a server will interprete a repeated 
request as a replay  
+private static final String NC = 0001; //nonce-count is always 1
+private static final int 

Seeking help using Cookie and Session

2003-09-17 Thread Dan Tran
Hi I am write a small client/server web app to understand more about 
httpclient/cookie/and httpsession.

On the httpclient side, I use a get method to keep calling a servlet on server.

clientcode
HttpClient client = new HttpClient();
GetMethod method = new GetMethod(url);
while ( !done ) {
client.executeMethod(method);
if (method.getStatusCode() == HttpStatus.SC_OK) {
  method.getResponseBody();
  method.releaseConnection();
} else {
  System.out.println(Unexpected failure:  +  
method.getStatusLine().toString());
  done = true;
}

  method.recycle();
  method.setPath(url);

  sleep(sometime)

   }
/clientcode


on the server side, the doGet() method use this

servercode
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws 
ServletException, IOException {
request.getSession();
  }
/servercode


The first loop, the client is happy.  I found a cookie in the response.

After that it throws the following warning message in my lo4j

warning-snippet
  06:22:37,843 - WARN org.apache.commons.httpclient.HttpMethodBase - Cookie reject
  ed: $Version=0; JSESSIONID=6D150D24B3D022F9AB835EF4E0AFEC5E; $Path=/webtest. I
  llegal path attribute /webtest. Path of origin: http://localhost:8080/webtest   
/webgenservlet
/waring-snippet

On server side, new session is created for each request

Questions are:

   Why server keeps creating new session instead of reuse the old one?
   What does it mean regarding the Warning.

Advices are greately appreciated.

Happy Coding

-Dan


RE: Seeking help using Cookie and Session

2003-09-17 Thread Kalnichevski, Oleg
Dan,
Before I could give you a more precise answer, I would need some additional input from 
you. 

- What kind of cookie policy have you been using? Have you tried using browser 
compatibility policy?
  If unsure, you may want to consult our cookie guide:
  http://jakarta.apache.org/commons/httpclient/cookies.html

- What kind of servlet engine are you running on the server?

- Could you produce the wire log of the session in question. 
  Take a look at the logging guide for the instructions on how to activate wire 
logging:
  http://jakarta.apache.org/commons/httpclient/logging.html

Cheers

Oleg

-Original Message-
From: Dan Tran [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 4:44 PM
To: Commons HttpClient Project
Subject: Seeking help using Cookie and Session


Hi I am write a small client/server web app to understand more about 
httpclient/cookie/and httpsession.

On the httpclient side, I use a get method to keep calling a servlet on server.

clientcode
HttpClient client = new HttpClient();
GetMethod method = new GetMethod(url);
while ( !done ) {
client.executeMethod(method);
if (method.getStatusCode() == HttpStatus.SC_OK) {
  method.getResponseBody();
  method.releaseConnection();
} else {
  System.out.println(Unexpected failure:  +  
method.getStatusLine().toString());
  done = true;
}

  method.recycle();
  method.setPath(url);

  sleep(sometime)

   }
/clientcode


on the server side, the doGet() method use this

servercode
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws 
ServletException, IOException {
request.getSession();
  }
/servercode


The first loop, the client is happy.  I found a cookie in the response.

After that it throws the following warning message in my lo4j

warning-snippet
  06:22:37,843 - WARN org.apache.commons.httpclient.HttpMethodBase - Cookie reject
  ed: $Version=0; JSESSIONID=6D150D24B3D022F9AB835EF4E0AFEC5E; $Path=/webtest. I
  llegal path attribute /webtest. Path of origin: http://localhost:8080/webtest   
/webgenservlet
/waring-snippet

On server side, new session is created for each request

Questions are:

   Why server keeps creating new session instead of reuse the old one?
   What does it mean regarding the Warning.

Advices are greately appreciated.

Happy Coding

-Dan

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



Re: Seeking help using Cookie and Session

2003-09-17 Thread Dan Tran
Dear Eric and Oleg,

I put in the code to handle brower compatibility cookie.
Now it works. Thank you Thank you.

Eric, thanks for the advice. I took out recycle call
and handle releaseConnection correctly.

Thanks for every thing

-Dan

- Original Message - 
From: Eric Johnson [EMAIL PROTECTED]
To: Commons HttpClient Project [EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 8:09 AM
Subject: Re: Seeking help using Cookie and Session


 A follow-up question, directed towards the rest of the group

 Shouldn't recycle be deprecated for the 2.1 release?  Seems like we've
 discussed it before, and all it gives us is a chance for uses like the
 following, where my first reaction was that maybe the recycle call
 didn't work properly.  I don't think it adds much for performance, and
 it makes the API more confusing, I think.

 To Dan,

 You might want to structure your call slightly differently, as well:

 try {
   client.executeMethod(method);
   // do what you want here...
 }
 finally {
   // guarantee that you always release the connection - critical if you
 switch
   // to MultiThreadedHttpConnectionManager().
   method.releaseConnection();
 }

 -Eric.


 Dan Tran wrote:

 Hi I am write a small client/server web app to understand more about
httpclient/cookie/and httpsession.
 
 On the httpclient side, I use a get method to keep calling a servlet on
server.
 
 clientcode
 HttpClient client = new HttpClient();
 GetMethod method = new GetMethod(url);
 while ( !done ) {
 client.executeMethod(method);
 if (method.getStatusCode() == HttpStatus.SC_OK) {
   method.getResponseBody();
   method.releaseConnection();
 } else {
   System.out.println(Unexpected failure:  +
method.getStatusLine().toString());
   done = true;
 }
 
   method.recycle();
   method.setPath(url);
 
   sleep(sometime)
 
}
 /clientcode
 
 
 on the server side, the doGet() method use this
 
 servercode
   public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 request.getSession();
   }
 /servercode
 
 
 The first loop, the client is happy.  I found a cookie in the response.
 
 After that it throws the following warning message in my lo4j
 
 warning-snippet
   06:22:37,843 - WARN org.apache.commons.httpclient.HttpMethodBase -
Cookie reject
   ed: $Version=0; JSESSIONID=6D150D24B3D022F9AB835EF4E0AFEC5E;
$Path=/webtest. I
   llegal path attribute /webtest. Path of origin:
http://localhost:8080/webtest   /webgenservlet
 /waring-snippet
 
 On server side, new session is created for each request
 
 Questions are:
 
Why server keeps creating new session instead of reuse the old one?
What does it mean regarding the Warning.
 
 Advices are greately appreciated.
 
 Happy Coding
 
 -Dan
 
 
 



 -
 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]



HTTP/1.1 status 100 help needed

2003-09-17 Thread Beg, Mohsin

Hello,

I have the following code snippet that seems to never return
from httpClient.executeMethod(). [actually another post
has happened that issued a cookie that the code below
is trying to use]

I have also attached a modified/truncated output of the logs that
are are being produced.

Can someone provide some insight ? I don't know what to do.

I am using 2.0-rc1 build available from
http://jakarta.apache.org/site/binindex.cgi

Sincerely,

-Mohsin



Code :-

 // the http client has been set like this
 // somewhere else in the code
 //httpClient = new HttpClient();
 //httpClient.getHostConfiguration().setHost( LOGON_SITE, LOGON_PORT, http
);
 //httpClient.getState().setCookiePolicy( CookiePolicy.RFC2109 );
 //httpClient.setConnectionTimeout( 1 );


 // Log messages at end of this email
 // are shown from this point onwards
 postMethod = new PostMethod( url );
 postMethod.setRequestHeader( Content-type,
  PostMethod.FORM_URL_ENCODED_CONTENT_TYPE );

 NameValuePair msgTransaction = new NameValuePair( XML, request );
 postMethod.addParameter( msgTransaction );

 int statusCode = httpClient.executeMethod( postMethod );



Log output :-

2003/09/17 10:21:46:638 PDT [DEBUG] HttpClient - -Java version: 1.4.1_02
2003/09/17 10:21:46:648 PDT [DEBUG] HttpClient - -Java vendor: Sun
Microsystems Inc.
2003/09/17 10:21:46:660 PDT [DEBUG] HttpClient - -Operating system name:
Linux
2003/09/17 10:21:46:665 PDT [DEBUG] HttpClient - -Operating system
architecture: i386
2003/09/17 10:21:46:666 PDT [DEBUG] HttpClient - -Operating system version:
2.4.18-10smp



2003/09/17 10:22:07:142 PDT [TRACE] GetMethod - -enter GetMethod(String)
2003/09/17 10:22:07:142 PDT [TRACE] PostMethod - -enter
PostMethod.addParameter(NameValuePair)
2003/09/17 10:22:07:143 PDT [TRACE] PostMethod - -enter
PostMethod.addParameter(String, String)
2003/09/17 10:22:07:143 PDT [TRACE] EntityEnclosingMethod - -enter
EntityEnclosingMethod.clearRequestBody()
2003/09/17 10:22:07:144 PDT [TRACE] HttpClient - -enter
HttpClient.executeMethod(HttpMethod)
2003/09/17 10:22:07:144 PDT [TRACE] HttpClient - -enter
HttpClient.executeMethod(HostConfiguration,HttpMethod,HttpState)
2003/09/17 10:22:07:158 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.execute(HttpState, HttpConnection)
2003/09/17 10:22:07:158 PDT [DEBUG] HttpMethodBase - -Execute loop try 1
2003/09/17 10:22:07:159 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.processRequest(HttpState, HttpConnection)
2003/09/17 10:22:07:159 PDT [TRACE] HttpMethodBase - -Attempt number 1 to
process request
2003/09/17 10:22:07:178 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.writeRequest(HttpState, HttpConnection)
2003/09/17 10:22:07:178 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
2003/09/17 10:22:07:179 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.generateRequestLine(HttpConnection, String, String, String,
String)
2003/09/17 10:22:07:180 PDT [DEBUG] wire - - POST /NodeWarrior/xml/
HTTP/1.1[\r][\n]
2003/09/17 10:22:07:180 PDT [TRACE] HttpConnection - -enter
HttpConnection.print(String)
2003/09/17 10:22:07:181 PDT [TRACE] HttpConnection - -enter
HttpConnection.write(byte[])
2003/09/17 10:22:07:181 PDT [TRACE] HttpConnection - -enter
HttpConnection.write(byte[], int, int)
2003/09/17 10:22:07:182 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
2003/09/17 10:22:07:182 PDT [TRACE] ExpectContinueMethod - -enter
ExpectContinueMethod.addRequestHeaders(HttpState, HttpConnection)
2003/09/17 10:22:07:182 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
2003/09/17 10:22:07:183 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
2003/09/17 10:22:07:183 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
2003/09/17 10:22:07:184 PDT [DEBUG] HttpMethodBase - -Adding Host request
header
2003/09/17 10:22:07:184 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
2003/09/17 10:22:07:185 PDT [TRACE] HttpState - -enter
HttpState.getCookies()
2003/09/17 10:22:07:185 PDT [TRACE] CookieSpec - -enter
CookieSpecBase.match(String, int, String, boolean, Cookie[])
2003/09/17 10:22:07:186 PDT [TRACE] CookieSpec - -enter
CookieSpecBase.match(String, int, String, boolean, Cookie
2003/09/17 10:22:07:187 PDT [TRACE] CookieSpec - -enter
CookieSpecBase.formatCookieHeader(Cookie)
2003/09/17 10:22:07:187 PDT [TRACE] CookieSpec - -enter
RFC2109Spec.formatCookie(Cookie)
2003/09/17 10:22:07:188 PDT [TRACE] CookieSpec - -enter
RFC2109Spec.formatCookieAsVer(Cookie)
2003/09/17 10:22:07:188 PDT [TRACE] HttpMethodBase - -enter
HttpMethodBase.addAuthorizationRequestHeader(HttpState, HttpConnection)
2003/09/17 10:22:07:189 PDT [TRACE] HttpMethodBase - -enter

Re: HTTP/1.1 status 100 help needed

2003-09-17 Thread Oleg Kalnichevski
Mohsin,

Do you know what kind of HTTP server runs on the server side?

The HTTP server appears to be using the 'expect: 100-continue' handshake
even though the client did not request it.

You may what to try the following measures:
- activating 'expect: 100-continue' on the client side
- using HTTP/1.0

Oleg


On Wed, 2003-09-17 at 19:40, Beg, Mohsin wrote:
 Hello,
 
 I have the following code snippet that seems to never return
 from httpClient.executeMethod(). [actually another post
 has happened that issued a cookie that the code below
 is trying to use]
 
 I have also attached a modified/truncated output of the logs that
 are are being produced.
 
 Can someone provide some insight ? I don't know what to do.
 
 I am using 2.0-rc1 build available from
 http://jakarta.apache.org/site/binindex.cgi
 
 Sincerely,
 
 -Mohsin
 
 
 
 Code :-
 
  // the http client has been set like this
  // somewhere else in the code
  //httpClient = new HttpClient();
  //httpClient.getHostConfiguration().setHost( LOGON_SITE, LOGON_PORT, http
 );
  //httpClient.getState().setCookiePolicy( CookiePolicy.RFC2109 );
  //httpClient.setConnectionTimeout( 1 );
 
 
  // Log messages at end of this email
  // are shown from this point onwards
  postMethod = new PostMethod( url );
  postMethod.setRequestHeader( Content-type,
   PostMethod.FORM_URL_ENCODED_CONTENT_TYPE );
 
  NameValuePair msgTransaction = new NameValuePair( XML, request );
  postMethod.addParameter( msgTransaction );
 
  int statusCode = httpClient.executeMethod( postMethod );
 
 
 
 Log output :-
 
 2003/09/17 10:21:46:638 PDT [DEBUG] HttpClient - -Java version: 1.4.1_02
 2003/09/17 10:21:46:648 PDT [DEBUG] HttpClient - -Java vendor: Sun
 Microsystems Inc.
 2003/09/17 10:21:46:660 PDT [DEBUG] HttpClient - -Operating system name:
 Linux
 2003/09/17 10:21:46:665 PDT [DEBUG] HttpClient - -Operating system
 architecture: i386
 2003/09/17 10:21:46:666 PDT [DEBUG] HttpClient - -Operating system version:
 2.4.18-10smp
 
 
 
 2003/09/17 10:22:07:142 PDT [TRACE] GetMethod - -enter GetMethod(String)
 2003/09/17 10:22:07:142 PDT [TRACE] PostMethod - -enter
 PostMethod.addParameter(NameValuePair)
 2003/09/17 10:22:07:143 PDT [TRACE] PostMethod - -enter
 PostMethod.addParameter(String, String)
 2003/09/17 10:22:07:143 PDT [TRACE] EntityEnclosingMethod - -enter
 EntityEnclosingMethod.clearRequestBody()
 2003/09/17 10:22:07:144 PDT [TRACE] HttpClient - -enter
 HttpClient.executeMethod(HttpMethod)
 2003/09/17 10:22:07:144 PDT [TRACE] HttpClient - -enter
 HttpClient.executeMethod(HostConfiguration,HttpMethod,HttpState)
 2003/09/17 10:22:07:158 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.execute(HttpState, HttpConnection)
 2003/09/17 10:22:07:158 PDT [DEBUG] HttpMethodBase - -Execute loop try 1
 2003/09/17 10:22:07:159 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.processRequest(HttpState, HttpConnection)
 2003/09/17 10:22:07:159 PDT [TRACE] HttpMethodBase - -Attempt number 1 to
 process request
 2003/09/17 10:22:07:178 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.writeRequest(HttpState, HttpConnection)
 2003/09/17 10:22:07:178 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
 2003/09/17 10:22:07:179 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.generateRequestLine(HttpConnection, String, String, String,
 String)
 2003/09/17 10:22:07:180 PDT [DEBUG] wire - - POST /NodeWarrior/xml/
 HTTP/1.1[\r][\n]
 2003/09/17 10:22:07:180 PDT [TRACE] HttpConnection - -enter
 HttpConnection.print(String)
 2003/09/17 10:22:07:181 PDT [TRACE] HttpConnection - -enter
 HttpConnection.write(byte[])
 2003/09/17 10:22:07:181 PDT [TRACE] HttpConnection - -enter
 HttpConnection.write(byte[], int, int)
 2003/09/17 10:22:07:182 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
 2003/09/17 10:22:07:182 PDT [TRACE] ExpectContinueMethod - -enter
 ExpectContinueMethod.addRequestHeaders(HttpState, HttpConnection)
 2003/09/17 10:22:07:182 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
 2003/09/17 10:22:07:183 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
 2003/09/17 10:22:07:183 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
 2003/09/17 10:22:07:184 PDT [DEBUG] HttpMethodBase - -Adding Host request
 header
 2003/09/17 10:22:07:184 PDT [TRACE] HttpMethodBase - -enter
 HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
 2003/09/17 10:22:07:185 PDT [TRACE] HttpState - -enter
 HttpState.getCookies()
 2003/09/17 10:22:07:185 PDT [TRACE] CookieSpec - -enter
 CookieSpecBase.match(String, int, String, boolean, Cookie[])
 2003/09/17 10:22:07:186 PDT [TRACE] CookieSpec - -enter
 CookieSpecBase.match(String, int, String, boolean, Cookie
 2003/09/17 10:22:07:187 PDT [TRACE] CookieSpec - 

RE: HTTP/1.1 status 100 help needed

2003-09-17 Thread Beg, Mohsin

Hi Oleg,

Below is my server info.

Also can you point me to some code examples as how I may
be able to do what you suggested ?

Sincerely,

-Mohsin


2003/09/17 13:54:59:809 PDT [DEBUG] wire - - Date: Wed, 17 Sep 2003
20:54:59 GMT[\r][\n]
2003/09/17 13:54:59:813 PDT [DEBUG] wire - - Server: Jetty/3.1.5 (Linux
2.4.18-10smp i386)[\r][\n]
2003/09/17 13:54:59:814 PDT [DEBUG] wire - - Servlet-Engine: Jetty/3.1
(JSP 1.1; Servlet 2.2; java 1.4.2_01)[\r][\n]
2003/09/17 13:54:59:815 PDT [DEBUG] wire - - Content-Type:
text/html;charset=UTF-8[\r][\n]
2003/09/17 13:54:59:816 PDT [DEBUG] wire - - Transfer-Encoding:
chunked[\r][\n]


-Original Message-
From: Oleg Kalnichevski [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 17, 2003 11:52 AM
To: Commons HttpClient Project
Subject: Re: HTTP/1.1 status 100 help needed


Mohsin,

Do you know what kind of HTTP server runs on the server side?

The HTTP server appears to be using the 'expect: 100-continue' handshake
even though the client did not request it.

You may what to try the following measures:
- activating 'expect: 100-continue' on the client side
- using HTTP/1.0

Oleg

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



RE: HTTP/1.1 status 100 help needed

2003-09-17 Thread Oleg Kalnichevski
Oh. well, I knew it. This is a very strange quirk on the part of Jetty,
which once was reported as a bug, but Jetty folks were not too
enthusiastic to fix.

Anyways, try this:

PostMethod#setUseExpectHeader(true) 

and see if that makes any difference. If not, try disabling HTTP/1.1
support altogether:

PostMethod#setHttp11(false) 

If nothing helps, you may have to consider upgrading Jetty to its latest
stable version (4.2.12 as of writing).

Cheers

Oleg


On Wed, 2003-09-17 at 23:04, Beg, Mohsin wrote:
 Hi Oleg,
 
 Below is my server info.
 
 Also can you point me to some code examples as how I may
 be able to do what you suggested ?
 
 Sincerely,
 
 -Mohsin
 
 
 2003/09/17 13:54:59:809 PDT [DEBUG] wire - - Date: Wed, 17 Sep 2003
 20:54:59 GMT[\r][\n]
 2003/09/17 13:54:59:813 PDT [DEBUG] wire - - Server: Jetty/3.1.5 (Linux
 2.4.18-10smp i386)[\r][\n]
 2003/09/17 13:54:59:814 PDT [DEBUG] wire - - Servlet-Engine: Jetty/3.1
 (JSP 1.1; Servlet 2.2; java 1.4.2_01)[\r][\n]
 2003/09/17 13:54:59:815 PDT [DEBUG] wire - - Content-Type:
 text/html;charset=UTF-8[\r][\n]
 2003/09/17 13:54:59:816 PDT [DEBUG] wire - - Transfer-Encoding:
 chunked[\r][\n]
 
 
 -Original Message-
 From: Oleg Kalnichevski [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, September 17, 2003 11:52 AM
 To: Commons HttpClient Project
 Subject: Re: HTTP/1.1 status 100 help needed
 
 
 Mohsin,
 
 Do you know what kind of HTTP server runs on the server side?
 
 The HTTP server appears to be using the 'expect: 100-continue' handshake
 even though the client did not request it.
 
 You may what to try the following measures:
 - activating 'expect: 100-continue' on the client side
 - using HTTP/1.0
 
 Oleg
 
 -
 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]



DO NOT REPLY [Bug 15435] - New Preferences Architecture

2003-09-17 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15435.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15435

New Preferences Architecture





--- Additional Comments From [EMAIL PROTECTED]  2003-09-17 23:04 ---
Oleg,

I heartily agree.  A collection makes much more sense than an array.  I will make this 
change and 
apply the patch.

Mike

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