Hi again!
John, when we get datasource from JNDI (BasicDatasourceFactory)
we get DataSource type not BasicDataSource which is good (an abstraction
is provided) 

But DataSource doesn't have method close().
I wouldn't like to cast my DataSource instance to BasicDataSource to
invoke
close() method.
In the same time we need to release pool resources (and especially
database connections) when application is finished.
What if add finalize method to BasicDataSource and call close from
there.
And make the same with pool and so on.

Or may be I am wrong and everything will be done automatically
(including close of database connections)?

John McNally wrote:
> 
> Here is a patch that allows dbcp to be compiled under jdk 1.3 and 1.4.
> 
> The TesterXXX classes are Lev's noop versions.  I implemented working
> versions for the DelegatingXXX classes.  The new methods are surrounded
> by comments.
> 
> I modified the build system to copy the src to a build directory and
> then the comments that hide the code for 1.3 are removed if
> java.sql.Savepoint is available.
> 
> john mcnally
> 
> Lev Assinovsky wrote:
> >
> > I attached the classes modified for JSK 1.4/JDBC 3.0
> > Use it as you want.
> > --
> > Lev Assinovsky                Peterlink Web
> > Programmer                    St. Petersburg, Russia
> > Tel/Fax: +7 812 3275343       197022 ul.Chapigina 7�
> > E-mail: [EMAIL PROTECTED]
> >
> >   ------------------------------------------------------------------------
> >                           Name: dbcp_jdbc3.0.tar.gz
> >    dbcp_jdbc3.0.tar.gz    Type: Unix Tape Archive (application/x-tar)
> >                       Encoding: base64
> >
> >   ------------------------------------------------------------------------
> > --
> > To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> 
>   ------------------------------------------------------------------------
> ? jdbc3.patch
> Index: build.xml
> ===================================================================
> RCS file: /home/cvspublic/jakarta-commons/dbcp/build.xml,v
> retrieving revision 1.5
> diff -u -r1.5 build.xml
> --- build.xml   16 Jan 2002 00:19:36 -0000      1.5
> +++ build.xml   18 Mar 2002 09:01:56 -0000
> @@ -59,6 +59,7 @@
>        <property name="source.src.test" value="${source.src}/test"/>
>        <property name="source.doc" value="${basedir}/doc"/>
>        <property name="dest" value="${basedir}/dist"/>
> +      <property name="dest.src" value="${dest}/src"/>
>        <property name="dest.classes" value="${dest}/classes"/>
>        <property name="dest.doc" value="${dest}/docs"/>
>        <property name="dest.doc.api" value="${dest.doc}/api"/>
> @@ -69,6 +70,7 @@
>        <available property="available-src-java" file="${source.src.java}"/> <!-- 
>does this module have java src? -->
>        <available property="available-src-test" file="${source.src.test}"/> <!-- 
>does this module have test src? -->
>        <available property="jndi.present" classname="javax.naming.Context"/>
> +      <available property="jdbc3.present" classname="java.sql.Savepoint"/>
> 
>     </target>
> 
> @@ -168,10 +170,31 @@
> 
>     <target name="build" depends="init,build-java" description="compiles source 
>files"/>
> 
> -   <target name="build-java" depends="init" if="available-src-java">
> +   <target name="copy-src" depends="init">
> +      <mkdir dir="${dest.src}"/>
> +
> +        <!-- the source code directory -->
> +        <copy todir="${dest.src}/org" filtering="yes">
> +            <fileset dir="${source.src.java}" defaultexcludes="no">
> +                <include name="**/*.java"/>
> +                <include name="**/*.xml"/>
> +                <include name="**/*.properties"/>
> +                <include name="**/package.html"/>
> +            </fileset>
> +        </copy>
> +
> +   </target>
> +
> +   <target name="prepare-jdbc3" if="jdbc3.present">
> +      <replace dir="${dest.src}" token="/* JDBC_3_ANT_KEY" value="" />
> +      <replace dir="${dest.src}" token="JDBC_3_ANT_KEY */" value="" />
> +   </target>
> +
> +   <target name="build-java" depends="copy-src, prepare-jdbc3" 
>if="available-src-java">
>        <mkdir dir="${dest.classes}"/>
> +
>        <javac destdir="${dest.classes}"
> -             srcdir="${source.src.java}"
> +             srcdir="${dest.src}"
>               classpath="${classpath}"
>               debug="false"
>               deprecation="true"
> @@ -182,9 +205,19 @@
>     </target>
> 
>     <target name="build-test" depends="init,build-java" if="available-src-test">
> +      <mkdir dir="${dest.src}"/>
> +        <!-- the source code directory -->
> +        <copy todir="${dest.src}/org" filtering="yes">
> +            <fileset dir="${source.src.test}" defaultexcludes="no">
> +                <include name="**/*.java"/>
> +            </fileset>
> +        </copy>
> +
> +      <antcall target="prepare-jdbc3" />
> +
>        <mkdir dir="${dest.classes}"/>
>        <javac destdir="${dest.classes}"
> -             srcdir="${source.src.test}"
> +             srcdir="${dest.src}"
>               classpath="${classpath}"
>               debug="false"
>               deprecation="true"
> Index: src/java/org/apache/commons/dbcp/DelegatingConnection.java
> ===================================================================
> RCS file: 
>/home/cvspublic/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingConnection.java,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 DelegatingConnection.java
> --- src/java/org/apache/commons/dbcp/DelegatingConnection.java  14 Apr 2001 17:15:17 
>-0000      1.1.1.1
> +++ src/java/org/apache/commons/dbcp/DelegatingConnection.java  18 Mar 2002 09:01:56 
>-0000
> @@ -172,4 +172,95 @@
>              ((DelegatingConnection)_conn).passivate();
>          }
>      }
> -}
> \ No newline at end of file
> +
> +    // -------------------- JDBC 3.0 ------------------------------------
> +    /* JDBC_3_ANT_KEY
> +
> +    public void setHoldability(int holdability) throws SQLException
> +    {
> +        checkOpen();
> +        _conn.setHoldability(holdability);
> +    }
> +
> +    public int getHoldability() throws SQLException
> +    {
> +        checkOpen();
> +        return _conn.getHoldability();
> +    }
> +
> +    public java.sql.Savepoint setSavepoint() throws SQLException
> +    {
> +        checkOpen();
> +        return _conn.setSavepoint();
> +    }
> +
> +    public java.sql.Savepoint setSavepoint(String name) throws SQLException
> +    {
> +        checkOpen();
> +        return _conn.setSavepoint(name);
> +    }
> +
> +    public void rollback(java.sql.Savepoint savepoint) throws SQLException
> +    {
> +        checkOpen();
> +        _conn.rollback(savepoint);
> +    }
> +
> +    public void releaseSavepoint(java.sql.Savepoint savepoint)
> +        throws SQLException
> +    {
> +        checkOpen();
> +        _conn.releaseSavepoint(savepoint);
> +    }
> +
> +    public Statement createStatement(int resultSetType,
> +                                     int resultSetConcurrency,
> +                                     int resultSetHoldability)
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _conn.createStatement(resultSetType, resultSetConcurrency,
> +                                     resultSetHoldability);
> +    }
> +
> +    public PreparedStatement prepareStatement(String sql, int resultSetType,
> +                                      int resultSetConcurrency, int 
>resultSetHoldability)
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _conn.prepareStatement(sql, resultSetType,
> +                               resultSetConcurrency, resultSetHoldability);
> +    }
> +
> +    public CallableStatement prepareCall(String sql, int resultSetType,
> +                                 int resultSetConcurrency,
> +                                 int resultSetHoldability) throws SQLException
> +    {
> +        checkOpen();
> +        return _conn.prepareCall(sql, resultSetType,
> +                                 resultSetConcurrency, resultSetHoldability);
> +    }
> +
> +    public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _conn.prepareStatement(sql, autoGeneratedKeys);
> +    }
> +
> +    public PreparedStatement prepareStatement(String sql, int columnIndexes[])
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _conn.prepareStatement(sql, columnIndexes);
> +    }
> +
> +    public PreparedStatement prepareStatement(String sql, String columnNames[])
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _conn.prepareStatement(sql, columnNames);
> +    }
> +
> +    JDBC_3_ANT_KEY */
> +}
> Index: src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java
> ===================================================================
> RCS file: 
>/home/cvspublic/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 DelegatingPreparedStatement.java
> --- src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java   14 Apr 2001 
>17:15:22 -0000      1.1.1.1
> +++ src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java   18 Mar 2002 
>09:01:57 -0000
> @@ -215,4 +215,76 @@
>      }
> 
>      protected boolean _closed = false;
> -}
> \ No newline at end of file
> +
> +
> +    // --------------------- JDBC 3.0 -----------------------------
> +    /* JDBC_3_ANT_KEY
> +
> +    public boolean getMoreResults(int current) throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.getMoreResults(current);
> +    }
> +
> +    public ResultSet getGeneratedKeys() throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.getGeneratedKeys();
> +    }
> +
> +    public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.executeUpdate(sql, autoGeneratedKeys);
> +    }
> +
> +    public int executeUpdate(String sql, int columnIndexes[]) throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.executeUpdate(sql, columnIndexes);
> +    }
> +
> +    public int executeUpdate(String sql, String columnNames[]) throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.executeUpdate(sql, columnNames);
> +    }
> +
> +    public boolean execute(String sql, int autoGeneratedKeys) throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.execute(sql, autoGeneratedKeys);
> +    }
> +
> +    public boolean execute(String sql, int columnIndexes[]) throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.execute(sql, columnIndexes);
> +    }
> +
> +    public boolean execute(String sql, String columnNames[]) throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.execute(sql, columnNames);
> +    }
> +
> +    public int getResultSetHoldability() throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.getResultSetHoldability();
> +    }
> +
> +    public void setURL(int parameterIndex, java.net.URL x) throws SQLException
> +    {
> +         checkOpen();
> +         _stmt.setURL(parameterIndex, x);
> +    }
> +
> +    public ParameterMetaData getParameterMetaData() throws SQLException
> +    {
> +         checkOpen();
> +         return _stmt.getParameterMetaData();
> +    }
> +
> +    JDBC_3_ANT_KEY */
> +}
> Index: src/java/org/apache/commons/dbcp/DelegatingStatement.java
> ===================================================================
> RCS file: 
>/home/cvspublic/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingStatement.java,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 DelegatingStatement.java
> --- src/java/org/apache/commons/dbcp/DelegatingStatement.java   14 Apr 2001 17:15:27 
>-0000      1.1.1.1
> +++ src/java/org/apache/commons/dbcp/DelegatingStatement.java   18 Mar 2002 09:01:58 
>-0000
> @@ -174,4 +174,68 @@
>      }
> 
>      protected boolean _closed = false;
> -}
> \ No newline at end of file
> +
> +    // --------------------------- JDBC 3.0 --------------------------------
> +    /* JDBC_3_ANT_KEY
> +
> +    public boolean getMoreResults(int current)
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _stmt.getMoreResults(current);
> +    }
> +
> +    public ResultSet getGeneratedKeys() throws SQLException
> +    {
> +        checkOpen();
> +        return _stmt.getGeneratedKeys();
> +    }
> +
> +    public int executeUpdate(String sql, int autoGeneratedKeys)
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _stmt.executeUpdate(sql, autoGeneratedKeys);
> +    }
> +
> +    public int executeUpdate(String sql, int columnIndexes[])
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _stmt.executeUpdate(sql, columnIndexes);
> +    }
> +
> +    public int executeUpdate(String sql, String columnNames[])
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _stmt.executeUpdate(sql, columnNames);
> +    }
> +
> +    public boolean execute(String sql, int autoGeneratedKeys)
> +        throws SQLException
> +    {
> +        checkOpen();
> +        return _stmt.execute(sql, autoGeneratedKeys);
> +    }
> +
> +    public boolean execute(String sql, int columnIndexes[]) throws SQLException
> +    {
> +        checkOpen();
> +        return _stmt.execute(sql, columnIndexes);
> +    }
> +
> +    public boolean execute(String sql, String columnNames[]) throws SQLException
> +    {
> +        checkOpen();
> +        return _stmt.execute(sql, columnNames);
> +    }
> +
> +    public int getResultSetHoldability() throws SQLException
> +    {
> +        checkOpen();
> +        return _stmt.getResultSetHoldability();
> +    }
> +
> +    JDBC_3_ANT_KEY */
> +}
> Index: src/test/org/apache/commons/dbcp/TesterConnection.java
> ===================================================================
> RCS file: 
>/home/cvspublic/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TesterConnection.java,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 TesterConnection.java
> --- src/test/org/apache/commons/dbcp/TesterConnection.java      14 Apr 2001 17:16:27 
>-0000      1.1.1.1
> +++ src/test/org/apache/commons/dbcp/TesterConnection.java      18 Mar 2002 09:01:59 
>-0000
> @@ -199,4 +199,77 @@
>              throw new SQLException("Connection is closed.");
>          }
>      }
> +
> +    // -------------------- JDBC 3.0 ------------------------------------
> +    /* JDBC_3_ANT_KEY
> +
> +    public void setHoldability(int holdability) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public int getHoldability() throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public Savepoint setSavepoint() throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public Savepoint setSavepoint(String name) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void rollback(Savepoint savepoint) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void releaseSavepoint(Savepoint savepoint) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public Statement createStatement(int resultSetType, int resultSetConcurrency,
> +                             int resultSetHoldability) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public PreparedStatement prepareStatement(String sql, int resultSetType,
> +                                      int resultSetConcurrency, int 
>resultSetHoldability)
> +       throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public CallableStatement prepareCall(String sql, int resultSetType,
> +                                 int resultSetConcurrency,
> +                                 int resultSetHoldability) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
> +       throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public PreparedStatement prepareStatement(String sql, int columnIndexes[])
> +       throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public PreparedStatement prepareStatement(String sql, String columnNames[])
> +       throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    JDBC_3_ANT_KEY */
>  }
> Index: src/test/org/apache/commons/dbcp/TesterPreparedStatement.java
> ===================================================================
> RCS file: 
>/home/cvspublic/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TesterPreparedStatement.java,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 TesterPreparedStatement.java
> --- src/test/org/apache/commons/dbcp/TesterPreparedStatement.java       14 Apr 2001 
>17:16:40 -0000      1.1.1.1
> +++ src/test/org/apache/commons/dbcp/TesterPreparedStatement.java       18 Mar 2002 
>09:02:00 -0000
> @@ -232,4 +232,65 @@
>      public void setNull (int paramIndex, int sqlType, String typeName) throws 
>SQLException {
>          checkOpen();
>      }
> +
> +
> +    // --------------------- JDBC 3.0 -----------------------------
> +    /* JDBC_3_ANT_KEY
> +
> +    public boolean getMoreResults(int current) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public ResultSet getGeneratedKeys() throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public int executeUpdate(String sql, int columnIndexes[]) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public int executeUpdate(String sql, String columnNames[]) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public boolean execute(String sql, int autoGeneratedKeys) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public boolean execute(String sql, int columnIndexes[]) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public boolean execute(String sql, String columnNames[]) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public int getResultSetHoldability() throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void setURL(int parameterIndex, java.net.URL x) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public ParameterMetaData getParameterMetaData() throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    JDBC_3_ANT_KEY */
>  }
> Index: src/test/org/apache/commons/dbcp/TesterResultSet.java
> ===================================================================
> RCS file: 
>/home/cvspublic/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TesterResultSet.java,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 TesterResultSet.java
> --- src/test/org/apache/commons/dbcp/TesterResultSet.java       14 Apr 2001 17:16:37 
>-0000      1.1.1.1
> +++ src/test/org/apache/commons/dbcp/TesterResultSet.java       18 Mar 2002 09:02:02 
>-0000
> @@ -633,14 +633,62 @@
>              throw new SQLException("Connection is closed.");
>          }
>      }
> -}
> -
> -
> -
> -
> 
> 
> +    // --------------------- JDBC 3.0 -----------------------------
> +    /* JDBC_3_ANT_KEY
> 
> +    public java.net.URL getURL(int columnIndex) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public java.net.URL getURL(String columnName) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void updateRef(int columnIndex, java.sql.Ref x) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void updateRef(String columnName, java.sql.Ref x) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void updateBlob(int columnIndex, java.sql.Blob x) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void updateBlob(String columnName, java.sql.Blob x) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void updateClob(int columnIndex, java.sql.Clob x) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void updateClob(String columnName, java.sql.Clob x) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void updateArray(int columnIndex, java.sql.Array x) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public void updateArray(String columnName, java.sql.Array x) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> 
> +    JDBC_3_ANT_KEY */
> +}
> 
> 
> Index: src/test/org/apache/commons/dbcp/TesterStatement.java
> ===================================================================
> RCS file: 
>/home/cvspublic/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TesterStatement.java,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 TesterStatement.java
> --- src/test/org/apache/commons/dbcp/TesterStatement.java       14 Apr 2001 17:16:42 
>-0000      1.1.1.1
> +++ src/test/org/apache/commons/dbcp/TesterStatement.java       18 Mar 2002 09:02:02 
>-0000
> @@ -225,4 +225,55 @@
>              throw new SQLException("Connection is closed.");
>          }
>      }
> +
> +    // --------------------------- JDBC 3.0 --------------------------------
> +    /* JDBC_3_ANT_KEY
> +
> +    public boolean getMoreResults(int current)
> +       throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public ResultSet getGeneratedKeys() throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public int executeUpdate(String sql, int columnIndexes[]) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public int executeUpdate(String sql, String columnNames[]) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public boolean execute(String sql, int autoGeneratedKeys) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public boolean execute(String sql, int columnIndexes[]) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public boolean execute(String sql, String columnNames[]) throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    public int getResultSetHoldability() throws SQLException
> +    {
> +       throw new SQLException("Not implemented.");
> +    }
> +
> +    JDBC_3_ANT_KEY */
>  }
> 
>   ------------------------------------------------------------------------
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

-- 
Lev Assinovsky                Peterlink Web
Programmer                    St. Petersburg, Russia
Tel/Fax: +7 812 3275343       197022 ul.Chapigina 7�
E-mail: [EMAIL PROTECTED]

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

Reply via email to