RE: [httpclient] Constructing Cookies with null domains (again)

2002-03-05 Thread Waldhoff, Rodney

I think both Marc and dIon raise some good points.  The spec clearly allows
domain to be null in a Set-Cookie header, but also speaks to what clients
should assume to be the domain in that circumstance.

So what is a *.httpclient.Cookie, really?  A representation of the somewhate
abstract client side state?  A container for the parsed attributes of a
Set-Cookie header? A container for the attributes that go into a Cookie
header? Some combination of these?

Under what circumstances would we want it to have a null domain or path?  Is
it ever useful to know, for example, that the server didn't indicate a
domain, but the client assumed one?  (And assuming it is useful, is Cookie
the right place to go to find out, or is that really a question about
Headers?)  Is it always possible, in practice, to provide a default based
upon the context in which the Cookie/Set-Cookie headers are encountered?

(I'm really not trying to be coy, I honestly don't know the answers here.)

 - Rod



[GUMP] Build Failure - altrmi

2002-03-05 Thread Ted Husted


This email is autogenerated from the output from:
http://jakarta.apache.org/builds/gump/2002-03-05/commons-altrmi.html


Buildfile: build.xml

init:
 [echo]  altrmi 1.0-dev 

prepare:
[mkdir] Created dir: /home/rubys/jakarta/jakarta-commons-sandbox/altrmi/build
[mkdir] Created dir: 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/build/classes
[mkdir] Created dir: 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/build/classes2
[mkdir] Created dir: 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/build/genjava
[mkdir] Created dir: /home/rubys/jakarta/jakarta-commons-sandbox/altrmi/build/conf
[mkdir] Created dir: /home/rubys/jakarta/jakarta-commons-sandbox/altrmi/build/tests

compile:
[javac] Compiling 161 source files to 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/build/classes
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/beep/BEEPInvocationHandler.java:24:
 cannot resolve symbol
[javac] symbol  : class ByteDataStream  
[javac] location: package core
[javac] import org.beepcore.beep.core.ByteDataStream;
[javac]   ^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/beep/BEEPInvocationHandler.java:28:
 cannot resolve symbol
[javac] symbol  : class DataStream  
[javac] location: package core
[javac] import org.beepcore.beep.core.DataStream;
[javac]   ^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/beep/BEEPInvocationHandler.java:31:
 cannot resolve symbol
[javac] symbol  : class StringDataStream  
[javac] location: package core
[javac] import org.beepcore.beep.core.StringDataStream;
[javac]   ^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/beep/BEEPInvocationHandler.java:36:
 cannot resolve symbol
[javac] symbol  : class AutomatedTCPSessionCreator  
[javac] location: package tcp
[javac] import org.beepcore.beep.transport.tcp.AutomatedTCPSessionCreator;
[javac]^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/beep/CompleteBEEPServer.java:18:
 cannot resolve symbol
[javac] symbol  : class AutomatedTCPSessionCreator  
[javac] location: package tcp
[javac] import org.beepcore.beep.transport.tcp.AutomatedTCPSessionCreator;
[javac]^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/beep/ServerBEEPReadWriter.java:27:
 cannot resolve symbol
[javac] symbol  : class StringDataStream  
[javac] location: package core
[javac] import org.beepcore.beep.core.StringDataStream;
[javac]   ^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/beep/ServerBEEPReadWriter.java:28:
 cannot resolve symbol
[javac] symbol  : class DataStream  
[javac] location: package core
[javac] import org.beepcore.beep.core.DataStream;
[javac]   ^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/beep/ServerBEEPReadWriter.java:29:
 cannot resolve symbol
[javac] symbol  : class ByteDataStream  
[javac] location: package core
[javac] import org.beepcore.beep.core.ByteDataStream;
[javac]   ^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/beep/BEEPInvocationHandler.java:77:
 cannot resolve symbol
[javac] symbol  : variable AutomatedTCPSessionCreator  
[javac] location: class 
org.apache.commons.altrmi.client.impl.beep.BEEPInvocationHandler
[javac] session = AutomatedTCPSessionCreator.initiate(mHost, mPort,new 
ProfileRegistry());
[javac]   ^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/beep/BEEPInvocationHandler.java:113:
 cannot resolve symbol
[javac] symbol  : method setDataListener  (org.beepcore.beep.lib.MessageQueue)
[javac] location: class org.beepcore.beep.core.Channel
[javac] channel.setDataListener(beepReadWriter.mQueue);
[javac]^
[javac] 
/home/rubys/jakarta/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/beep/BEEPInvocationHandler.java:176:
 cannot resolve symbol
[javac] symbol  : class ByteDataStream  
[javac] location: class 

[httpclient] Why no HttpUrlMethodBase?

2002-03-05 Thread Davis, Caleb

I've noticed that there's a set of methods now in httpclient called
'UrlMETHODNAMEMethod', which seem to implement HttpMultiClient compatible
methods.

These seem to all have the same boilerplate code in them for setting and
getting the url, and passing on the path information to the super class.

From the perspective of someone who might be implementing several new
UrlMethods, I'm thinking about a new abstract class as an analog to the
HttpClient's HttpMethodBase - the HttpUrlMethodBase. It might look something
like this:

package org.apache.commons.httpclient;

import java.net.URL;
import java.net.MalformedURLException;

public abstract class HttpUrlMethodBase
extends HttpMethodBase
implements HttpUrlMethod {

private URL _url;

public HttpUrlMethodBase() {
super();
}

public HttpUrlMethodBase(String url) throws
MalformedURLException { 
super(URIUtil.getPath(url));
_url = new URL(url);
}

public void setUrl(String url) throws MalformedURLException
{
_url = new URL(url);
}

public String getUrl() {
return _url.toExternalForm();
}

public abstract String getName();
}

A new HttpUrlMethod would only have extend HttpUrlMethodBase and override
getName, to be functional, in the same fashion as a new HttpMethod only has
to extend HttpMethodBase and override getName. Does this sound reasonable
and/or useful to anyone but myself?

-Caleb

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




cvs commit: jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket SocketObjectStreamFactoryHelper.java

2002-03-05 Thread hammant

hammant 02/03/05 08:30:17

  Added:   altrmi/src/java/org/apache/commons/altrmi/client
AltrmiInterfaceLookupFactory.java
   altrmi/src/java/org/apache/commons/altrmi/client/impl
AbstractFactoryHelper.java
AbstractInterfaceLookupFactory.java
DefaultInterfaceLookupFactory.java
   altrmi/src/java/org/apache/commons/altrmi/client/impl/socket
SocketObjectStreamFactoryHelper.java
  Removed: altrmi/src/java/org/apache/commons/altrmi/client
AltrmiFactoryFactory.java
  Log:
  Start of work on String based lookup mechanism.
  
  Revision  ChangesPath
  1.1  
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiInterfaceLookupFactory.java
  
  Index: AltrmiInterfaceLookupFactory.java
  ===
  package org.apache.commons.altrmi.client;
  
  import org.apache.commons.altrmi.common.AltrmiConnectionException;
  
  
  /**
   * Interface AltrmiInterfaceLookupFactory
   *
   *
   * @author Paul Hammant a 
href=mailto:[EMAIL PROTECTED];[EMAIL PROTECTED]/a
   * @version * $Revision: 1.1 $
   */
  public interface AltrmiInterfaceLookupFactory {
  
  /**
   * Method getAltrmiInterfaceLookup
   *
   * FactoryStrings as listed here should look like this:
   *
   *   SocketObjectStream:abcde.com:1234:S:BO
   *   SocketCustomStream:abcde.com:1235:C:NBO
   *   RMI:abcde.com:1236:S:NBO
   *
   *   S:BO and alike is
   *- S for server side proxy classes
   *- C for client side proxy classes
   *- BO is BeanOnly (not castable to the interface)
   *- NBO is NotBeanOnly (castable to the interface)
   *
   * @param factoryString
   *
   * @return
   *
   */
  AltrmiInterfaceLookup getAltrmiInterfaceLookup(String factoryString) throws 
AltrmiConnectionException;
  }
  
  
  
  1.1  
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractFactoryHelper.java
  
  Index: AbstractFactoryHelper.java
  ===
  
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.commons.altrmi.client.impl;
  
  
  
  import org.apache.commons.altrmi.client.AltrmiFactory;
  import org.apache.commons.altrmi.client.AltrmiInterfaceLookupFactory;
  
  import java.util.Vector;
  import java.util.StringTokenizer;
  
  
  /**
   * Class AbstractFactoryHelper
   *
   *
   * @author Paul Hammant a 
href=mailto:[EMAIL PROTECTED];[EMAIL PROTECTED]/a
   * @version $Revision: 1.1 $
   */
  public abstract class AbstractFactoryHelper implements AltrmiInterfaceLookupFactory {
  
  protected String[] processFactoryString(String factoryString) {
  
  Vector terms = new Vector();
  StringTokenizer st = new StringTokenizer(factoryString, :);
  
  while (st.hasMoreTokens()) {
  terms.add(st.nextToken());
  }
  
  String[] retval = new String[terms.size()];
  
  terms.copyInto(retval);
  
  return retval;
  }
  
  protected AltrmiFactory createAltrmiFactory(String type, boolean beanOnly) {
  
  if (type.equalsIgnoreCase(s)) {
  return new ServerClassAltrmiFactory(beanOnly);
  } else if (type.equalsIgnoreCase(c)) {
  return new ClientClassAltrmiFactory(beanOnly);
  } else {
  return null;
  }
  }
  }
  
  
  
  1.1  
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractInterfaceLookupFactory.java
  
  Index: AbstractInterfaceLookupFactory.java
  ===
  
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.commons.altrmi.client.impl;
  
  
  
  import org.apache.commons.altrmi.client.AltrmiInterfaceLookupFactory;
  import org.apache.commons.altrmi.client.AltrmiInterfaceLookup;
  import org.apache.commons.altrmi.common.AltrmiConnectionException;
  
  import java.util.Vector;
  
  
  /**
   * Class AbstractInterfaceLookupFactory
   *
   *
   * @author Paul Hammant a 
href=mailto:[EMAIL PROTECTED];[EMAIL PROTECTED]/a
   * @version $Revision: 1.1 $
   */
  public class AbstractInterfaceLookupFactory implements AltrmiInterfaceLookupFactory {
  
  private Vector 

RE: Notes on building Struts from scratch (CVS Main)

2002-03-05 Thread Immanuel, Gidado-Yisa

I just wanted to add a few comments to the build process that I
went through.  Please take my suggestions with a grain of salt:
I'm usually lurking, and not slugging it out on struts-dev,
commons-dev like the rest of you, so I don't know all the
implications of what I'm suggesting.

In the process of building struts...
 I ended up with:
   PRODUCT VERSION
   commons-collections.jar 1.0
   commons-pool.jarCVS-Main
   commons-logging.jar CVS-Main
   commons-validator.jar   CVS-Main
   commons-dbcp.jarCVS-Main
   commons-digester.jarCVS-Main
   commons-beanutils.jar   CVS-Main
   commons-services.jarCVS-Main
   regexp.jar  1.2

1. Struts has dependencies on products that are not released:
   . commons-pool.jar
   . commons-dbcp.jar
   It makes it impossible to check out the same libraries that the
   nightly-builder and other developers have checked-out when they
   build struts.  This, I think can make things more difficult when
   tracking down dependency bugs.
   SUGGESTION: Only use dependent-products (i.e. libraries) that are
   released (with a version number)

2. Struts has dependencies on commons-sandbox products that are not
released:
   . commons-services.jar
   Note that when I build services itself, it does not use any of
   released products (only the latest and greatest from CVS-Main).
   I then have to cascade these dependencies up to the rest of my
   builds (I think).
   SUGGESTION: Don't inlucde an commons-sandbox products.  It just
   seems to me that if it's in sandbox, it has not graduated to
   something that can be included in a released product.  (Now this
   is a general statement and not aimed at Oleg or common-services by
   any means!...from what I understand, Oleg, you do great work.)

3. SUGGESTION: If a prodcut is to be released, it should only include
   libraries that are released (i.e. have a version number, and are
   downloadable).  Can get the same versions of libraries for building
   products.  I guess an alternative to using releases is to specify a
   date on which certain products were built, so that I can go back
   into CVS and checkout the dependent-product from that date.  More
   work...but not impossible.

I can understand some of Jon's frustrations when trying to build
workflow some months ago.  Also, I KNOW that this versioning stuff has
been hashed out on commons-dev before, so I'm not certainly not baiting
that discussion.  Anyway, as I recall, JJAR should take care of the
automating getting the right version of a dependent-library.

Thanks for hearing me out,
Gidado


 -Original Message-
 From: Immanuel, Gidado-Yisa [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, March 05, 2002 11:59 AM
 To: 'Struts Developers List'
 Subject: Notes on building Struts from scratch (CVS Main)
 
 
 I was trying to build struts from source (nightlies and CVS-MAIN), and
 found it a little less than straight forward.  I did not see any help
 in the archives...So this text documents my trials to 
 succesfully build
 struts from scratch...it's here for the record.  Also, if 
 there is a much
 simpler way to do this, please let me know.  If this text is 
 helpful in
 the installation doc, let me know and I'll write a patch 
 (especially now
 that I can build struts :)
 
 I started with the following jars:
   commons-digester.jar(v. 1.1)
   commons-beanutils.jar   (v. 1.0)
   commons-collections.jar (v. 1.0)
 
 
 A. BUILD STRUTS (MAIN branch)
 -
 1. Download nightly (our checkout jakarta-struts MAIN)
 2. Create the file ${user.home}/build.properties
 3. Set properties in build.properties
. commons-collections.jar
. commons-beanutils.jar
 4. We find that out that we need
. commons-dbcp.jar
. commons-pool.jar
See:
 http://www.mail-archive.com/struts-dev@jakarta.apache.org/msg0
 4437.html
But since there was no released version (that I could 
 locate) of dbcp,
I checked out the source from CVS and began to build.  Go 
 to Step B-1
 4. Set properties in build.properties
. commons-dbcp.jar (v. CVS-Main)
. commons-digester.jar
 5. We find that out that we need
. commons-logging.jar (v. CVS-Main)
See:
 http://www.mail-archive.com/struts-dev@jakarta.apache.org/msg0
 4271.html
And there *is* a 1.0 for logging :)
Get it from http://jakarta.apache.org/commons/logging.html 
 and install
 6. Set properties in build.properties
. commons-logging.jar
 7. We find that out that we need
. commons-services.jar
See:
 http://www.mail-archive.com/struts-dev@jakarta.apache.org/msg0
 4739.html
But since there was no released version (that I could locate) of
 services,
I checked out the source from CVS and began to build.  Go 
 to Step D-1
 8. Set properties in build.properties
. commons-services.jar (v. CVS-Main)
 9. We find that out that we need
. comomons-validator.jar
Go to Step F-1
 10. Set properties in build.properties:
. 

Latka notes

2002-03-05 Thread Serge Knystautas

I was just talking with a coworker about how to build some automated tests
for our webapp, and sure enough Latka does a lot of what I was thinking.  I
had a few other todo items I might contribute, assuming I can get my client
to pay or can otherwise find the time.  I thought I'd bring up the ideas
first to get some feedback on whether this is going in a good or bad
direction:

1. meta process for test definition generation/maintenance
I'd like to define a meta XML file for a webapp that could declare
something like all HTML pages and JSPs in this webapp should be tested.
Then new meta process code would use that meta XML to check that the Latka
test definition meets these requirements... it would the recurse through the
files in a webapp and look for them in the latka test file.

If there were gaps, the meta check could either a) fail with a list of pages
that aren't included or (my preference) b) add them to the test file with
some comments (and stop before running the latka test).  By default it could
just require 200 status codes for those newly spotted pages.  The tester
could then look at the bottom of the latka test file, and cut and paste the
definitions up to suites or to more understandable places in the file, and
otherwise flesh out the validations.

2. JTidy for HTML validation
I would really like to be able to validate that the HTML in a site is well
formed.  I've tried doing it with a servlet filter, but using Latka would
make much more sense.  Ideally we could define the JTidy settings for a site
and whether to test all by default, and let individual requests override
that.

3. Better ant/junit integration
I'd have to see what's already there, but as I use ant to do my builds
already, I'd like to have 2 custom taskdefs that will a) do the meta
checking that the latka tests are complete and b) run the latka test.

Comments?

Serge Knystautas
Loki Technologies - Unstoppable Websites
http://www.lokitech.com/


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




Re: Latka notes

2002-03-05 Thread Joaquin Salvachua

On Tue, 5 Mar 2002, Serge Knystautas wrote:
Hello, 

 
 1. meta process for test definition generation/maintenance
 I'd like to define a meta XML file for a webapp that could declare
 something like all HTML pages and JSPs in this webapp should be tested.
 Then new meta process code would use that meta XML to check that the Latka
 test definition meets these requirements... it would the recurse through the
 files in a webapp and look for them in the latka test file.
 
 If there were gaps, the meta check could either a) fail with a list of pages
 that aren't included or (my preference) b) add them to the test file with
 some comments (and stop before running the latka test).  By default it could
 just require 200 status codes for those newly spotted pages.  The tester
 could then look at the bottom of the latka test file, and cut and paste the
 definitions up to suites or to more understandable places in the file, and
 otherwise flesh out the validations.
 

RDF may be perfect for this. Is an w3 consortium standard for metadata.
Was develop to model the p3p web annotation application but is growing 
very fast.
(http://www.w3.org/RDF/)
The semantic web vision is developing over it:

perhaps i can develop a model for the tests (i made some formal testing of 
ISO protocols some years ago). 

regards

Joaquin 




 
 Comments?
 
 Serge Knystautas
 Loki Technologies - Unstoppable Websites
 http://www.lokitech.com/
 
 
 --
 To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
 For additional commands, e-mail: mailto:[EMAIL PROTECTED]
 

-- 
---
Joaquin Salvachua   tel: +34 91 549 57 00  x.367
Associated Professor +34 91 549 57 62  x.367
dpt. Telematica
E.T.S.I. Telecomunicacion 
Ciudad Universitaria S/N fax: +34 91 336 73 33 
E-28040  MADRID   SPAIN 

mailto: [EMAIL PROTECTED] // http://www.dit.upm.es/~jsr




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




cvs commit: jakarta-commons-sandbox/simplestore/src/test/org/apache/commons/simplestore TestEnhancer.java

2002-03-05 Thread baliuka

baliuka 02/03/05 12:03:49

  Modified:simplestore/src/java/org/apache/commons/simplestore/tools
Enhancer.java
   simplestore/src/test/org/apache/commons/simplestore
TestEnhancer.java
  Log:
  Added class_name parameter to enhance method for
  ARMI ProxyGenerator implementation
  
  Revision  ChangesPath
  1.9   +35 -15
jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/tools/Enhancer.java
  
  Index: Enhancer.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/tools/Enhancer.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Enhancer.java 4 Mar 2002 22:51:16 -   1.8
  +++ Enhancer.java 5 Mar 2002 20:03:49 -   1.9
  @@ -63,7 +63,7 @@
   /**
*@author Juozas Baliuka a href=mailto:[EMAIL PROTECTED];
*  [EMAIL PROTECTED]/a
  - *@version$Id: Enhancer.java,v 1.8 2002/03/04 22:51:16 baliuka Exp $
  + *@version$Id: Enhancer.java,v 1.9 2002/03/05 20:03:49 baliuka Exp $
*/
   public class Enhancer implements org.apache.bcel.Constants{
   
  @@ -110,9 +110,37 @@
   
   public static Object enhance(Class cls,Class interfaces [] , MethodInterceptor 
ih) throws Throwable{
   
  -return 
enhance(cls,interfaces,ih,Thread.currentThread().getContextClassLoader());
  +return 
enhance(cls,null,interfaces,ih,Thread.currentThread().getContextClassLoader());
   }
  -public synchronized static Object enhance(Class cls,Class interfaces[],  
MethodInterceptor ih,ClassLoader loader)throws Throwable {
  +
  +static class Handler implements java.lang.reflect.InvocationHandler{
  +MethodInterceptor ih;
  +Handler(MethodInterceptor ih){
  +this.ih = ih;
  +}
  +
  +public Object invoke(Object obj, java.lang.reflect.Method method, Object[] 
args) throws java.lang.Throwable {
  +return ih.afterReturn( obj, method, args, null, false, null, null );
  +}
  +
  +}
  +
  +public synchronized static Object enhance(Class cls,String class_name,Class 
interfaces[],  MethodInterceptor ih,ClassLoader loader)throws Throwable {
  +// Use Standard way if we don't need to enhance any Class
  +if( ( Object.class.equals(cls) || cls == null )  class_name == null ){
  +return java.lang.reflect.Proxy.newProxyInstance(loader,interfaces, new 
Handler(ih) );
  +}
  +
  +if( cls == null ){
  +cls = Object.class;
  +}
  +
  +if( class_name == null ){
  +class_name = cls.getName() + ENHAVCED_CLASS_SUFIX;
  +if(class_name.startsWith(java)){
  +class_name =  ENHAVCED_CLASS_PREFIX + class_name;
  +}
  +}
   
   java.util.Map map = (java.util.Map)cache.get(loader);
   
  @@ -122,13 +150,11 @@
   
   }
   
  -
   Class result = (Class)map.get(cls);
   
   if(result == null){
   java.util.HashMap methods = new java.util.HashMap();
  -JavaClass clazz = enhance(cls, interfaces , methods);
  -
  +JavaClass clazz = enhance(cls, class_name, interfaces , methods);
   byte b [] = clazz.getBytes();
   java.lang.reflect.Method m =
   ClassLoader.class.getDeclaredMethod(defineClass,
  @@ -139,7 +165,6 @@
   m.setAccessible(true);
   result = (Class)m.invoke(loader,new Object[]{clazz.getClassName(),b,new 
Integer(0),new Integer(b.length)});
   m.setAccessible(flag);
  -
   for( java.util.Iterator i =  methods.keySet().iterator(); i.hasNext();  
){
   String name = (String)i.next();
   result.getField( name ).set(null,methods.get(name));
  @@ -157,7 +182,6 @@
   String parentClass = cg.getSuperclassName();
   InstructionFactory factory = new InstructionFactory(cg);
   ConstantPoolGen cp = cg.getConstantPool(); // cg creates constant pool
  -
   InstructionList il = new InstructionList();
   MethodGen costructor  = new MethodGen(ACC_PUBLIC,// access flags
   Type.VOID,// return type
  @@ -198,12 +222,8 @@
   return gen;
   }
   
  -private static JavaClass enhance( Class parentClass,Class interfaces 
[],java.util.HashMap methodTable )  {
  +private static JavaClass enhance( Class parentClass,String class_name,Class 
interfaces [],java.util.HashMap methodTable )  {
   
  -String class_name = parentClass.getName() + ENHAVCED_CLASS_SUFIX;
  -if(class_name.startsWith(java)){
  -class_name =  ENHAVCED_CLASS_PREFIX + 

Re: Latka notes

2002-03-05 Thread dIon Gillard

Serge Knystautas wrote:

I was just talking with a coworker about how to build some automated tests
for our webapp, and sure enough Latka does a lot of what I was thinking.  I
had a few other todo items I might contribute, assuming I can get my client
to pay or can otherwise find the time.  I thought I'd bring up the ideas
first to get some feedback on whether this is going in a good or bad
direction:

1. meta process for test definition generation/maintenance
I'd like to define a meta XML file for a webapp that could declare
something like all HTML pages and JSPs in this webapp should be tested.
Then new meta process code would use that meta XML to check that the Latka
test definition meets these requirements... it would the recurse through the
files in a webapp and look for them in the latka test file.

If there were gaps, the meta check could either a) fail with a list of pages
that aren't included or (my preference) b) add them to the test file with
some comments (and stop before running the latka test).  By default it could
just require 200 status codes for those newly spotted pages.  The tester
could then look at the bottom of the latka test file, and cut and paste the
definitions up to suites or to more understandable places in the file, and
otherwise flesh out the validations.

This doesn't sound like it fits in with what Latka already does; it 
sounds like an external checking/generation process that's completely 
outside of the functional testing. Don't get me wrong, I like the idea 
of generating latka suites off other documents, but don't think it's 
necessarily part of Latka.

2. JTidy for HTML validation
I would really like to be able to validate that the HTML in a site is well
formed.  I've tried doing it with a servlet filter, but using Latka would
make much more sense.  Ideally we could define the JTidy settings for a site
and whether to test all by default, and let individual requests override
that.

Sounds like a good custom validator, and a good fit with Latka.

3. Better ant/junit integration
I'd have to see what's already there, but as I use ant to do my builds
already, I'd like to have 2 custom taskdefs that will a) do the meta
checking that the latka tests are complete and b) run the latka test.

I use Latka with ant a lot. The user's guide ( 
http://jakarta.apache.org/commons/latka/users-guide.html ) talks about 
creating JUnit suites from a Latka Suite and running that. So b) above 
is just the usual JUnit task in ant. Is there something more you'd need?

Comments?



Serge Knystautas
Loki Technologies - Unstoppable Websites
http://www.lokitech.com/

-- 
dIon Gillard, Multitask Consulting
http://adslgateway.multitask.com.au/developers




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




Re: Latka notes

2002-03-05 Thread Jeff Turner

On Tue, Mar 05, 2002 at 01:42:17PM -0500, Serge Knystautas wrote:
 I was just talking with a coworker about how to build some automated tests
 for our webapp, and sure enough Latka does a lot of what I was thinking.  I
 had a few other todo items I might contribute, assuming I can get my client
 to pay or can otherwise find the time.  I thought I'd bring up the ideas
 first to get some feedback on whether this is going in a good or bad
 direction:
 
 1. meta process for test definition generation/maintenance
 I'd like to define a meta XML file for a webapp that could declare
 something like all HTML pages and JSPs in this webapp should be tested.
 Then new meta process code would use that meta XML to check that the Latka
 test definition meets these requirements... it would the recurse through the
 files in a webapp and look for them in the latka test file.

How would you go about determining the URLs of all HTML pages and
JSPs? Is this really *all* (ie you have inside information; it's your
webapp you're testing), or just visible from the usual application
workflow? Ie, is the list created by hand or created through a wget-like
follow-the-links strategy?

 If there were gaps, the meta check could either a) fail with a list of pages
 that aren't included or (my preference) b) add them to the test file with
 some comments (and stop before running the latka test).  By default it could
 just require 200 status codes for those newly spotted pages.  The tester
 could then look at the bottom of the latka test file, and cut and paste the
 definitions up to suites or to more understandable places in the file, and
 otherwise flesh out the validations.
 
 2. JTidy for HTML validation
 I would really like to be able to validate that the HTML in a site is well
 formed.

If you mean well formed in the XML sense (XHTML), you could use the
XPath validator, and just validate for something like '/'.

 I've tried doing it with a servlet filter, but using Latka would
 make much more sense.  Ideally we could define the JTidy settings for a site
 and whether to test all by default, and let individual requests override
 that.

Sounds good.

 3. Better ant/junit integration

Wasn't there an Ant task for running Latka in the works? Dion?

 I'd have to see what's already there, but as I use ant to do my builds
 already, I'd like to have 2 custom taskdefs that will a) do the meta
 checking that the latka tests are complete and b) run the latka test.

If you're really keen on Ant integration, there's another testing
framework called Anteater (http://sourceforge.net/projects/aft), which
is 100% Ant tasks. It inherits a lot of expressive power from Ant
itself. Eg, you can pattern-match or XPath-match, and then store the
matched pattern/XML in an Ant property. You can also use Ant's
parallel to start/stop Tomcat servers.


--Jeff

 Comments?
 
 Serge Knystautas
 Loki Technologies - Unstoppable Websites
 http://www.lokitech.com/

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




[OT] thoughts on Java pre processor

2002-03-05 Thread James Strachan

This is kinda off topic but I've been musing lately about a preprocessor for
Java. One of the early attractions to me about Java some 5-6 years ago
coming from a mostly C++ background was that there was no pre processor and
obfuscation, so Java code was very easy to read.

However in theses groovy days of having Ant to do all our building, JUnit
for unit testing and the various logging packages for logging, we rarely
need much from an IDE these days but a basic editor (does anyone even use
debuggers any more?), so maybe diverging from the Java Language spec
wouldn't be too bad. .

So I was thinking that maybe a preprocessor might now gain momentum since

* it can be an Ant task and integrate seamlessly into any build
* it can spit out regular Java code so even though the pre processor would
be 'non standard' it could become useful.

So the aim of the preprocessor would be to allow us to add some syntax
suguar to Java to save us some typing and avoid redundancy. I just wondered
what others thoughts are. Here's a couple of ideas for some syntax sugar...


Easier properties

Imagine a typical property definition in a Java bean

/**
 * This is a foo property
 */
private Foo foo;

/**
 * Gets the value of the foo property
  *
  * @return the foo property
  */
public Foo getFoo() {
return foo
}

/**
 * Sets the value of the foo property
  *
  * @param foo the new value of the foo property
 */
public void setFoo(Foo foo) {
this.foo = foo;
}


Its quite a lot to type and takes up quite a bit of code. Also notice the
redundancy in the javadoc comments. We should be able to just describe the
property and the javadoc could be generated. I'd quite like some syntax
sugar (similar to in C#) to allow the property to be javadoc commented just
once and to save typing. e.g.


/** This is a foo property */
private property Foo foo {
get {
return foo;
}
set {
this.foo = value;
}
}


For most simple properies this could be simplified as just

/** This is a foo property */
private property Foo foo;


Maybe even extending this to provide 'lazy construction' properties which
expand to look like this...

/**
 * @return the value of the foo property
 * which will be created lazily if it is null
 */
public Foo getFoo() {
if ( foo == null ) {
foo = createFoo();
}
return foo;
}

/**
 * Factory method to create a new Foo object
 * which allows derived classes to override this
 * behaviour
 */
protected Foo createFoo() {
return new Foo();
}


This could maybe appear as syntax sugar as

private lazy property Foo foo {
create {
return new Foo();
}
}

The get  set methods could be defaulted if not specified.


Easier events
=
Similar techniques to the above could be done to avoid developers having to
manage event listeners and write code to fire them etc.

foreach?
==
To help avoid repetive code of the form...

for ( Iterator iter = something.iterator(); iter.hasNext(); ) {
Foo foo = (Foo) iter.next();
foo.bar();
}

maybe introduce a C#-like foreach statement...

foreach( Foo foo in something.iterator() ) {
foo.bar();
}


Just thinking aloud here (as always ;-). Thoughts?

James


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




Re: Latka notes

2002-03-05 Thread Serge Knystautas

I don't think I explained my idea 1 very well based on comments.

The issue I'm facing is making sure my latka suite stays current with the
site as developers maintain the site.  For an initial import, I might have a
webapp with 350 JSPs... I don't want to manually build the latka suite for
that.  More importantly, as the team of developers add more JSPs, I want to
know that some schmuck didn't add a JSP to CVS and not add it to the
functional test.

I would start with just a file system dir list, recursing through subdirs
and listing all *.jsp files.  (no link checking or wget or anything
complex... just pure dir.list() with recursion).  This would create a list
like:
/test.jsp
/index.jsp
/login.jsp
/contacts/list.jsp
/contacts/add.jsp
/contacts/edit.jsp
It would take these URLs and build the latka suite file.  If there already
was a latka suite file, it would append the files not already in there.
Really this is just a tool/script to maintain the latka suite file.

I was getting somewhat ahead of myself with the meta decription, but I was
thinking the filtering could get more advanced so that I included *.jsp
and *.html, but excluded everything in /include since those pages are
not directly called.  Maybe I should just fashion this as an ant task so I
can leverage it's include/exclude file pattern capabilities.

On an unrelated note, I thought of two other validators... a) link checking,
and b) xml validation (if your servlet is supposed to output XML instead of
HTML).  Anyone else working on these kind of validators?

Serge Knystautas
Loki Technologies - Unstoppable Websites
http://www.lokitech.com/
- Original Message -
From: Jeff Turner [EMAIL PROTECTED]
To: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Tuesday, March 05, 2002 5:34 PM
Subject: Re: Latka notes


 On Tue, Mar 05, 2002 at 01:42:17PM -0500, Serge Knystautas wrote:
  I was just talking with a coworker about how to build some automated
tests
  for our webapp, and sure enough Latka does a lot of what I was thinking.
I
  had a few other todo items I might contribute, assuming I can get my
client
  to pay or can otherwise find the time.  I thought I'd bring up the ideas
  first to get some feedback on whether this is going in a good or bad
  direction:
 
  1. meta process for test definition generation/maintenance
  I'd like to define a meta XML file for a webapp that could declare
  something like all HTML pages and JSPs in this webapp should be
tested.
  Then new meta process code would use that meta XML to check that the
Latka
  test definition meets these requirements... it would the recurse through
the
  files in a webapp and look for them in the latka test file.

 How would you go about determining the URLs of all HTML pages and
 JSPs? Is this really *all* (ie you have inside information; it's your
 webapp you're testing), or just visible from the usual application
 workflow? Ie, is the list created by hand or created through a wget-like
 follow-the-links strategy?


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




Re: [httpclient] Constructing Cookies with null domains (again)

2002-03-05 Thread dIon Gillard

Marc Saegesser wrote:

I've spent a fair amount of time recently reading and re-reading RFC 2109
and the Netscape cookie spec-like-thing.  Here's my current understanding.

All cookies have a domain.  A domain is required in order to determine which
cookies should be sent with a given request.

I suppose it depends on what you're calling a cookie. As far as the 
response header is concerned, domain is optional, from the RFC:

Domain=domain
  Optional.  The Domain attribute specifies the domain for which the
  cookie is valid.  An explicitly specified domain must always start
  with a dot.

As far as the client's concerned, it's a derived value if not specified 
in the header.

A cookie's domain can come from two different places:  1) a domain attribute
in the set-cookie header or 2) default to the host that sent the cookie.

There are two ways that cookies get created in HttpClient, by calling a
Cookie constructor or by parsing a set-cookie header.  Both the constructors
and parse take a value for the domain.  So the question is what is the
meaning of this domain value and what are the legal values.  

For the constructors, the case is fairly straight-forward.  The constructor
has no knowledge of the request, response or any headers, it simply creates
the cookie with the given values.  Since, as I claim above, all cookies must
have a domain, allowing a null domain value to the constructor creates a
cookie that isn't valid.  Thus, the constructors should throw an
IllegalArgumentException for null domains.

I'll go against that one, and say that since there is an option for 
creating a header from an array of Cookies, and we should allow users to 
create the header without specifying the domain (might want to send the 
same cookie to multiple places), then domain in the cookie constructor 
should be able to be null. Domain passed to create cookie header shouldn't.

The parse() method has access to the set-cookie header, but not the request
or response.  The domain parameter passed to parse() should be interpretted
as the default domain for the cookie in case the set-cookie header doesn't
contain a domain attribute.  Since domain attributes are not required, and
all cookies must have a domain, the domain passed to parse() should not null
and the method should throw an IllegalArgumentException for null domains.

Agreed. Ditto for createCookieHeader.

Marc Saegesser 

-- 
dIon Gillard, Multitask Consulting
http://adslgateway.multitask.com.au/developers




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




Re: [OT] thoughts on Java pre processor

2002-03-05 Thread Jon Scott Stevens

This is the perfect job for Velocity. :-)

Just use Velocity to generate your .java code.

-jon


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




Re: Latka notes

2002-03-05 Thread Jeff Turner

On Tue, Mar 05, 2002 at 09:54:55PM -0500, Serge Knystautas wrote:
 I don't think I explained my idea 1 very well based on comments.
 
 The issue I'm facing is making sure my latka suite stays current with the
 site as developers maintain the site.  For an initial import, I might have a
 webapp with 350 JSPs... I don't want to manually build the latka suite for
 that.  More importantly, as the team of developers add more JSPs, I want to
 know that some schmuck didn't add a JSP to CVS and not add it to the
 functional test.
 
 I would start with just a file system dir list, recursing through subdirs
 and listing all *.jsp files.  (no link checking or wget or anything
 complex... just pure dir.list() with recursion).  This would create a list
 like:
 /test.jsp
 /index.jsp
 /login.jsp
 /contacts/list.jsp
 /contacts/add.jsp
 /contacts/edit.jsp
 It would take these URLs and build the latka suite file.  If there already
 was a latka suite file, it would append the files not already in there.
 Really this is just a tool/script to maintain the latka suite file.

Perl, or shell would be easiest.

If you want to keep location-independence (list URLs, not file paths),
you could write a servlet that returns a list of directory contents as
XML. Then use Ant's get to retrieve the XML listing, style to
transform it into a Latka XML file, and off you go.

 I was getting somewhat ahead of myself with the meta decription, but I was
 thinking the filtering could get more advanced so that I included *.jsp
 and *.html, but excluded everything in /include since those pages are
 not directly called.  Maybe I should just fashion this as an ant task so I
 can leverage it's include/exclude file pattern capabilities.

Except in Ant you can't iterate over items in a fileset. Maybe there's
some 3rd party tasks for that.

 On an unrelated note, I thought of two other validators... a) link checking,
 and b) xml validation (if your servlet is supposed to output XML instead of
 HTML).  Anyone else working on these kind of validators?

XML validation should be very easy (XPath does it for free). Link
checking might need the JTidy one's capabilities first. AFAIK, no-one is
working on them.

--Jeff

 Serge Knystautas
 Loki Technologies - Unstoppable Websites
 http://www.lokitech.com/
 - Original Message -
 From: Jeff Turner [EMAIL PROTECTED]
 To: Jakarta Commons Developers List [EMAIL PROTECTED]
 Sent: Tuesday, March 05, 2002 5:34 PM
 Subject: Re: Latka notes
 
 

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




Re: [OT] thoughts on Java pre processor

2002-03-05 Thread Jeff Turner


On Wed, Mar 06, 2002 at 01:55:25AM -, James Strachan wrote:
... 
 So the aim of the preprocessor would be to allow us to add some syntax
 suguar to Java to save us some typing and avoid redundancy. I just wondered
 what others thoughts are. Here's a couple of ideas for some syntax sugar...
... 
 foreach?
 ==
 To help avoid repetive code of the form...
 
 for ( Iterator iter = something.iterator(); iter.hasNext(); ) {
 Foo foo = (Foo) iter.next();
 foo.bar();
 }
 
 maybe introduce a C#-like foreach statement...
 
 foreach( Foo foo in something.iterator() ) {
 foo.bar();
 }

and maybe throw in some logging syntax, which can be compiled to log4j,
the Commons logger or compiled out altogether.


--Jeff

(who once did write a preprocessor to let you embed declarative XML
statements like debug level=1This is a debug statement/debug in
Java. It worked by converting the marked up .java to XML, then applying
stylesheets ala XSP to transform debug to code, then stripping the XML
tags to get .java again. I thought it was neat :)


 
 
 Just thinking aloud here (as always ;-). Thoughts?
 
 James
 

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




Re: [OT] thoughts on Java pre processor

2002-03-05 Thread bob mcwhirter

 Just thinking aloud here (as always ;-). Thoughts?

My only thought is the lack of a directive to allow the compiler to tell
you the file/line of any errors.  I'm rusty on my C++, but I seem to
recall they had a #file directive, so that the post-processed file, when
compiled, could signal errors with regards to pre-processed source files.

It'd be strange to have one of your 15-line files, and have the compiler
report an error on line 38 (after expansion).

What you're really doing is defining a new syntax to generate valid
bytecodes, not unlike PythonJ (or whatever it's called).

Why not just avoid the javac step, and emit bytecodes from your new
syntax anyhoo.  Sure, we miss out standard compiler optimizations,
which could suck, but for the simple Easy-To-Write-JavaBean example,
it may be sufficient.  Or, maybe just glue a front-end onto the
IBM Jikes back-end, where all we do is some AST translation into
what the backend normally expects.

-bob
(I like to parse)


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




Re: [OT] thoughts on Java pre processor

2002-03-05 Thread Geir Magnusson Jr.

On 3/5/02 8:55 PM, James Strachan [EMAIL PROTECTED] wrote:

 To help avoid repetive code of the form...
 
 for ( Iterator iter = something.iterator(); iter.hasNext(); ) {
   Foo foo = (Foo) iter.next();
   foo.bar();
 }
 
 maybe introduce a C#-like foreach statement...
 
 foreach( Foo foo in something.iterator() ) {
   foo.bar();
 }
 
 
 Just thinking aloud here (as always ;-). Thoughts?

We'd prefer if you'd refer to it as a Velocity-like foreach statement

;)


-- 
Geir Magnusson Jr. [EMAIL PROTECTED]
System and Software Consulting
Be a giant.  Take giant steps.  Do giant things...


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




Re: commons dbcp or pool problems

2002-03-05 Thread Ted Husted

So in the event anyone is interested, the Poolman maintainer has
retired. 

I no longer have time to maintain the PoolMan
JDBC driver and resource pooling and caching
 utility, and am now seeking a qualified,
comitted software engineer to assume control
over its future. If interested, please send email
to [EMAIL PROTECTED] with a brief summary
of your qualifications.

http://sourceforge.net/forum/forum.php?forum_id=44181

This really isn't my realm, but I thought I would bring it up in case
any one here would be up to working with Neville to bring poolman here.
There was some talk about that last year, so maybe it's time to revive
the discussions. Of course, we'd have to get the license changed, et
cetera.

Meanwhile, I'm tucking the last production release away for safekeeping. 

-Ted.

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




Re: [OT] thoughts on Java pre processor

2002-03-05 Thread Colin Sharples


 This is kinda off topic but I've been musing lately about a preprocessor
for
 Java. One of the early attractions to me about Java some 5-6 years ago
 coming from a mostly C++ background was that there was no pre processor
and
 obfuscation, so Java code was very easy to read.

 However in theses groovy days of having Ant to do all our building, JUnit
 for unit testing and the various logging packages for logging, we rarely
 need much from an IDE these days but a basic editor (does anyone even use
 debuggers any more?), so maybe diverging from the Java Language spec
 wouldn't be too bad. .

But using a decent IDE such as Eclipse* eliminates the need for all that by
automating the generation of boilerplate code using templates. Using a
pre-processor to avoid typing code is pretty pointless, IMHO. Just get a
better tool.

Where pre-processor type activity *is* useful is for adding things like
generic types - in other words, where you are changing the semantics of the
code by enriching an existing concept. Having a generic (parameterized)
type means that you can enforce type-safety of of single-type collections,
e.g. declare a list of Strings that will throw an exception if you try to
add an Integer. JSR-14 is working on this already, so it could be
counter-productive to come up with something similar.

Okay, I'm being a bit harsh - the JavaBean property example is valid
enough, as is the event listener. I think the main thing is to distinguish
between shortcuts just to save typing (like the foreach) and real patterns
(like events and properties).

Another proposal that is more like your syntactic sugar usage is JSR-65 -
concise object array literals, which would convert:
ArrayList al = new ArrayList({ foo, 10, 0.75});
into:
ArrayList al = new ArrayList(new Object[] { foo, new Integer(10), new
Double(0.75)});

* Yes, I know there are other good IDEs out there. Emacs JDE, for example.
I believe there also something called NutBones or something like that :-)

Regards

Colin M Sharples
I/T Architect
IBM Global Services New Zealand

email: [EMAIL PROTECTED]
phone: 64-4-5769853
mobile: 64-21-402085
fax: 64-4-5765616



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




Re: commons dbcp or pool problems

2002-03-05 Thread Bryan Field-Elliot

What is the status of commons dbcp?

Apart from what look like minor edits from Craig, it's been 10 months
(according to CVS) since any major work has been done. Is this
considered done and production quality or it still in beta (or less?) 

I noticed that it's part of the Struts nightly build now.. Does that
vouch for its completeness in any way?

If dbcp is in good shape (which I'm trying to ask about), then is there
any point in also trying to bring poolman here?

Bryan

On Tue, 2002-03-05 at 21:00, Ted Husted wrote:

So in the event anyone is interested, the Poolman maintainer has
retired. 

I no longer have time to maintain the PoolMan
JDBC driver and resource pooling and caching
 utility, and am now seeking a qualified,
comitted software engineer to assume control
over its future. If interested, please send email
to [EMAIL PROTECTED] with a brief summary
of your qualifications.

http://sourceforge.net/forum/forum.php?forum_id=44181

This really isn't my realm, but I thought I would bring it up in case
any one here would be up to working with Neville to bring poolman here.
There was some talk about that last year, so maybe it's time to revive
the discussions. Of course, we'd have to get the license changed, et
cetera.

Meanwhile, I'm tucking the last production release away for safekeeping. 

-Ted.

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





[DBCP] JSDK 1.4 migration

2002-03-05 Thread Andrus Adamchik

I am looking at a possibility of using commons-dbcp (and pool) as 
DataSource wrappers for my Cayenne project. I already have my own 
implementation of this, but dbcp/pool looks more flexible (besides it is 
probably better tested too :-)).

One issues I need to solve is the ability to compile with JSDK 1.4. As 
you may know Sun added lots of new methods to java.sql.Connection, some 
of them call on their new classes (java.sql.Savepoint). So obviously 
some work is required to port the existing code.

I've been in and out of this list, so I am not sure if any steps in this 
direction have been planned. I'd appreciate if somebody can enlighten me 
on that.

If not, I will probably do the port myself. (If somebody applies my 
patches). It looks like for backwards compatibility (under JSDK 1.3 
methods calling Savepoint won't compile), paralel implementation of 
conflicting classes is needed. build.xml will determine which one to 
include. This looks rather dirty, but I can't think of a better way.


-- 
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
- Andrei (a.k.a. Andrus) Adamchik
Home of Cayenne - O/R Persistence Framework
http://objectstyle.org/cayenne/
email: andrus-jk at objectstyle dot org


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




Re: [OT] thoughts on Java pre processor

2002-03-05 Thread James Strachan

From: Jon Scott Stevens [EMAIL PROTECTED]
 This is the perfect job for Velocity. :-)

 Just use Velocity to generate your .java code.

I guess I walked right into that one ;-)

I was more thinking of should we try define a Java++ language but I take
your point.

James



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




Re: [OT] thoughts on Java pre processor

2002-03-05 Thread Henri Yandell


Because someone has to do it. How about a C# to bytecode compiler :) The
opposite of MS' J# plugin for VisStudio.

On Wed, 6 Mar 2002, James Strachan wrote:

 I was more thinking of should we try define a Java++ language but I take
 your point.

 James


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