File: changelog.html

package info (click to toggle)
libproxool-java 0.9.0~rc3-2
  • links: PTS, VCS
  • area: contrib
  • in suites: lenny
  • size: 2,416 kB
  • ctags: 2,446
  • sloc: java: 13,891; xml: 802; makefile: 12; sh: 10
file content (818 lines) | stat: -rw-r--r-- 33,291 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818






<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">





<html>
  <head>
    <meta http-equiv="Content-Language" content="en-gb">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="Pragma" content="no-cache">
    <title>Proxool 0.9.0RC3</title>
    <link href="proxool.css" type="text/css" rel="stylesheet">
  </head>

  <body>

 <div style="max-width: 1200px;">
    <table border="0" style="min-height: 100%;" cellpadding="0" cellspacing="0" width="100%">
      <tbody>

        <tr>
          <td valign="bottom" width="150">
            &nbsp;
          </td>

          <td colspan="2" height="50">
            
              <div class="bannerFinal">
            
            
            <table cellpadding="0" cellspacing="0" border="0" width="100%">
                <tr>
                  <td height="50">
                    <span class="titleCaption" style="font-size: 110%; padding: 4px;">
                        Changes to Proxool
                    </span>
                    
                  </td>
                  <td valign="middle" height="50">
                    <div>
                      

<div style="float: right; margin-right: 8px;">
    <img src="images/dots.gif" width="80" height="20" border="0" alt="...">

    <a href="http://sourceforge.net/projects/proxool"><img src="images/sflogo.png" width="88" height="31" border="0" alt="SourceForge.net Logo"></a>

</div>

                    </div>
                  </td>
                </tr>
            </table>
            </div>
          <td width="10">&nbsp;</td>
        </tr>

        <tr>
          <td valign="top" width="150">
            &nbsp;<br/>
            &nbsp;<br/>
            <table
              cellpadding="0"
              cellspacing="0"
              border="0"
              width="100%"
            >
              <tbody>

                <tr>
                  <td valign="top">
                    
                    
                    
                    
                    



<div class="menuBox" >
    <div class="menu-inactive"><a class="menu-inactive" href="index.html">Home</a></div>
    <div class="menu-inactive"><a class="menu-inactive" href="news.html">News</a></div>
    <div class="menu-inactive"><a class="menu-inactive" href="faq.html">FAQ</a></div>
    <div class="menu-inactive"><a class="menu-inactive" href="tips.html">Tips</a></div>
    <div class="menu-active"><a class="menu-active" href="changelog.html">Changes</a></div>
    <div class="menu-inactive"><a class="menu-inactive" href="future.html">The Future</a></div>
    
    <div class="menu-inactive"><a class="menu-inactive" href="user.html">User&nbsp;Guide</a></div>
    
        <div class="menu-inactive"><a class="menu-inactive" href="dev.html">Developer&nbsp;Guide</a></div>
    
    <div class="menu-inactive"><a class="menu-inactive" href="licence.html">Licence</a></div>
    <div class="menu-inactive"><a class="menu-inactive" href="credits.html">Credits</a></div>
</div>
                  </td>
                  <td>&nbsp;</td>
                </tr>

                <tr>
                  <td>
                    

                    <table cellpadding="0" cellspacing="0" border="0" summary="">
                      <tbody>

                    <tr><td>







    <div class="rightItem">
        <div class="rightItemHeader">Version 0.9.0RC3</div>
        <div class="rightItemContent">
            The latest version of this documentation and software is available on our web site:
            <br/><a href="http://proxool.sf.net">proxool.sf.net</a>
        </div>
    </div>

<div class="rightItem">
    <div class="rightItemHeader">Donations</div>
    <div class="rightItemContent">
        You can donate to Proxool in the usual way:
        <br/><a href="http://sourceforge.net/project/project_donations.php?group_id=53958">sourceforge.net</a>
    </div>
</div>
</td></tr>

                <tr>
                    <td>
                        
<div class="footer">
                last&nbsp;updated: 10-Jan-2007
</div>



                    </td>
                </tr>
        </tbody>
      </table>

                  </td>
                  <td>&nbsp;</td>
                </tr>

              </tbody>
            </table>
          </td>

          <td valign="top" colspan="2">
            <table cellpadding="0" cellspacing="0" border="0" width="100%" summary="">
              <tbody>
                <tr>
                  <td class="contents" valign="top">
                    <div class="changelog-release">

    <div class="changelog-title">
        0.9.0RC3
    </div>

    <div class="changelog-change">
        - New naming policy for Cglib stops conflicts with other Cglib instances that are running
          (even ones in different packages). Without using our own naming policy we end
          up with exceptions like:
         <pre>
            java.lang.LinkageError: duplicate class definition:
            $java/lang/Object$$FastClassByCGLIB$$3f697993
         </pre>
    </div>

    <div class="changelog-change">
        - Added ProxoolFacade.disableShutdownHook so that you can choose to explicitly shutdown
          Proxool programatically. This is useful because the order that the JVM calls shutdown
          hooks isn't easily controlled and you might want to shutdown Proxool *after* you've
          done some cleaning up yourself. Suggested by Alex Lemaire.
    </div>

    <div class="changelog-change">
        - Fixed bug in ProxoolDataSource to add in maximum-active-time. Credit to Paolo Di Tommaso.
    </div>

    <div class="changelog-change">
        - Fixed bug in AdminServlet where select HTML tag was not closed properly. Credit to Paolo Di
          Tommaso.
    </div>

    <div class="changelog-title">
        0.9.0RC2
    </div>

    <div class="changelog-change">
        - The Statement.getConnection() method now returns the wrapped connection rather than the
          delegate, aloowing you to close() it safely.
    </div>

    <div class="changelog-change">
        - Repackaged Cglib 2.1_3 (including its own repackaged version of ASM). Cglib is now repackaged
          using JarJar (see the repackage-cglib Ant target in the source distribution). One of the goals
          of this upgrade is to get Proxool to work with JDK 1.6 - more testing is needed before we can
          know the status of that. (Note that you can't build Proxool from source with 1.6 yet because if
          unimplemented methods in DataSource).
    </div>

    <div class="changelog-change">
        - You can now configure the DataSource with delegate properties. Use the delegateProperties property.
    </div>

    <div class="changelog-title">
        0.9.0RC1 - 2 March 2006
    </div>

    <div class="changelog-change">
        - All connections are now wrapped in disposable wrappers. This means that once you have closed
          a connection (thereby returning it to the pool) you can no longer do anything to it that
          might influence its behaviour for the next client that picks it up.
    </div>

    <div class="changelog-change">
        - Connections, Statements, PreparedStatements, and CallableStatements now implement
          all the public intefaces that the delegate connection does. This means that you can,
          for instance, cast a Connection directly to the driver specific one. Or more precisely,
          any of the interfaces that the driver object implements. You can only cast your exception
          into an interface - concrete classes aren't supported at this time.
    </div>

    <div class="changelog-change">
        - You can now <a href="injectableInterfaces.html">inject interfaces</a> for proxied objects that expose public methods that aren't
          declared in an interface.  So if your vendor Connection, Statement, PreparedStatement or
          CallableStatement have any public methods that aren't declared in an interface (and therefore
          not exposed automatically) you can just write your own interface that declares the same
          signature. Even though the vendor object doesn't implement your interface directly, the
          proxied object will behave as if it does.
    </div>

    <div class="changelog-change">
        - ProxoolFacade now has killConnection that accepts the Connection object
          itself, so you don't have to know the pool alias and connection ID.
    </div>

    <div class="changelog-change">
        - ProxoolFacade now has getId() which will give you the ID for any connection.
    </div>

    <div class="changelog-change">
        - ProxoolFacade now has getAlias() which will give you the pool alias for any connection.
    </div>

    <div class="changelog-change">
        - ProxoolFacade now has a no-parameter overloaded version of shutdown() for ease of integration with
          the Spring Framework.
    </div>

    <div class="changelog-change">
        - ProxoolDriver no longer logs all SQLExceptions. It's up to the client to log exceptions as it
          sees fit. (With some changes to the tests, this means that we no longer get any stack traces
          output during testing when we encounter *expected* errors).
    </div>

    <div class="changelog-change">
        - Experimental DataSource implementation. Actually, we think it's ready for use but we haven't really had
        time to think about documenting it. We do have <a href="datasource.html">something</a> though.
    </div>

    <div class="changelog-change">
        - Jakarta's Commons Logging is no longer bundled with the source and is now a dependency.
          We had forked this component (at their version 1.02) to make it simpler for us to deploy but
          there are advantages, particular with respect to configuration, to just using
          the component direct from Jakarta.
    </div>

</div>
<div class="changelog-release">

    <div class="changelog-title">
        0.8.3 - 14 December 2003
    </div>

    <div class="changelog-change">
        - Switched to Cglib 2.0 and ASM 1.4. Repackaged them both to org.logicalcobwebs.clgib and
          org.logicalcobwebs.asm respectively. This means that you no longer need to include
          cglib in your classpath. (Note: other projects may still require it - the repackaged
          version is just for use by Proxool). This removes our dependency on any version of Cglib
          or ASM and avoids any potential Jar conflicts.
    </div>

    <div class="changelog-change">
        - Made house keeper connection test more robust - credit John Hume
    </div>

    <div class="changelog-change">
        - Removed JDK 1.4 specific code in ShutdownHook
    </div>
</div>
<div class="changelog-release">
    <div class="changelog-title">
        0.8.2 - 5 November 2003 
    </div>

    <div class="changelog-change">
        - Fixed bug where delegate properties weren't being passed onto the delegate driver. If you weren't
          passing any properties other than username and password to the delegate driver then this didn't
          cause a problem anyway. (Note that Proxool properties were being recognised correctly.) Added a
          new unit test specifically for this problem.
    </div>

    <div class="changelog-change">
        - Throw a friendlier exception if you try and add a statistics listener to a pool with
          no statistics
    </div>

    <div class="changelog-change">
        - Statistics now creates write locks less often. This was causing a problem during heavy loads
          even though the process of collecting statistics itself was very fast. If you had statistics
          turned off (the default) then this wasn't a problem anyway.
    </div>

</div>
<div class="changelog-release">
    <div class="changelog-title">
        0.8.1 - October 27, 2003
    </div>

    <div class="changelog-change">
        - NullPointerException that occured during SQL logging for certain methods
          of excecuting statements has been fixed. Also, logging is optimised to
          do less work if nothing is listening. (No ConnectionListeners registered
          and log level not equal to debug or trace is off).
    </div>

    <div class="changelog-change">
        - Fixed typos in ShutdownHook. And now silently ignore IllegalStateException
          during removal of shutdownHook that occurs during JVM shut down.

    </div>
</div>
<div class="changelog-release">
    <div class="changelog-title">
        0.8.0 - October 26, 2003
    </div>

    <div class="changelog-change">
        - We now use <a href="http://cglib.sourceforge.net/">Cglib's</a> proxy library.
          Together with dropping the use of Timer
          and only referencing ShutdownHooks at runtime we are now able to support
          JDKs 1.2, 1.3 and 1.4 out of the box (Without Ant applied patches, which
          were horrible).
    </div>

    <div class="changelog-change">
        - Proxool is now available as a <a href="http://java.sun.com/products/JavaManagement/">JMX</a> component.
    </div>

    <div class="changelog-change">
        - New getDelegateConnection() method on ProxoolFacade gives you access
          to the delegate (third party) driver if you really need it. This makes
          your project dependent on both Proxool (to a small extent) and your
          third party driver (to a bigger extent) so should be done only if
          necessary.
    </div>

    <div class="changelog-change">
        - If ProxoolDriver gets garbage collected for any reason (outside our
          control) then we no longer shutdown the pool it relates to.
    </div>

    <div class="changelog-change">
        - AdminServlet now displays times for maximum-conneciton-lifetime,
          house-keeping-sleep-time, and  maximum-active-time properly
          regardless of your timezone. This was a display bug only and didn't
          effect the behaviour of the pool itself.
    </div>

    <div class="changelog-change">
        - Connections that are about to be expired no longer bother to reset
          themselves (because they'll never be used again anyway). This was
          causing problems if the connection had connectivity problems to the
          database which then caused problems during the reset.
    </div>

    <div class="changelog-change">
        - Added <a href="properties.html#fatal-sql-exception-wrapper-class">fatal-sql-exception-wrapper-class</a> property.
          If a fatal exception is
          detected then it is wrapped up inside the exception defined by this
          property. This can make exception handling easier in frameworks like
          Struts. Two wrappers are provided (FataSQLException and FatalRuntimeException)
          but you can also define your own.
    </div>

    <div class="changelog-change">
        - Added <a href="properties.html#test-before-use">test-before-use</a>
          and <a href="properties.html#test-after-use">test-after-use</a> properties. They will trigger a test of
          the connection (as defined by <a href="properties.html#house-keeper-test-sql">house-keeper-test-sql</a>)
          just before a connection
          is handed out and just after it is closed (put back in the pool) respectively.
          These are both off by default.
    </div>

    <div class="changelog-change">
        - Fixed ConcurrentModificationException that happened in some
          environments during automatic statement closure.
    </div>

    <div class="changelog-change">
        - Fixed bug where if there was an Error during prototyping (not an SQLException,
          not a RuntimeException but something serious like NoClassDefFoundError) then
          the prototyper would keep attempting to make connections as fast as it could
          (and never succeed in making any). Much better for the prototyper to give
          up in that situation and try again when it is next asked (which, by default,
          would be 30 seconds later).
    </div>

    <div class="changelog-change">
        - Fix to documentation. Defining more than one type of fatal SQL exception
          is done with a comma delimited list.
    </div>

    <div class="changelog-change">
        - Fix to ProxoolFacade.redefine() which was in fact doing an update instead of a
          redefine. This didn't have any consequences unless you were calling this method
          explicitly in your code.
    </div>

    <div class="changelog-change">
        - Made the 'Attempt to use a pool with incomplete definition' exception a bit more
          informative. It is often because you are refering to an unregistered pool by its
          alias.
    </div>

    <div class="changelog-change">
        - SQL command logging (using the 'trace' property) now embeds the parameters into
          the SQL (if the SQL is parametised). This means that the log is almost like a
          journal - with the exception that any callable statements that return data retain
          the ? (question marks) that contain the output parameters.
    </div>

    <div class="changelog-change">
        - Batched statements are now correctly reported with the <a href="properties.html#trace">trace</a> feature.
    </div>
</div>
<div class="changelog-release">

    <div class="changelog-title">
        0.7.2 - April 28, 2003
    </div>

    <div class="changelog-change">
        - Moved DataSourceTest into Sandbox so that the Ant test target
          runs correctly.
    </div>

    <div class="changelog-change">
        - Fixed a bug in ConfigurationListener that meant that if you passed
          a Properties object to the Driver when asking for a connection to an
          existing pool it incorrectly called ConfigurationListenerIF.<a href="api/org/logicalcobwebs/proxool/ConfigurationListenerIF.html#definitionUpdated(org.logicalcobwebs.proxool.ConnectionPoolDefinitionIF, java.util.Properties, java.util.Properties)">definitionUpdated</a>
          when there was no change, and didn't call it when there was.
    </div>

</div>
<div class="changelog-release">

    <div class="changelog-title">
        0.7.1 - April 19, 2003
    </div>

    <div class="changelog-change">
        - Added a lot of concurrency code - mainly using concurrent package
          written by Doug Lea.
    </div>

    <div class="changelog-change">
        - Fixed display bug in AdminServlet - average active time was being
          displayed in milliseconds instead of seconds.
    </div>

    <div class="changelog-change">
        - Refactoring of how definitions are updated and redefined. Use
          ProxoolFacade.updateConnectionPool  to make incremental changes
          and ProxoolFacade.redefineConnectionPool to reset the definition
          and start again. (If you pass a Properties object to the DriverManager
          when asking for a connection this will call redefineConnectionPool.)
    </div>

    <div class="changelog-change">
        - if you change the url or any of the delegate properties for a pool's
          definition then all existing connections are automatically killed so that
          new ones are created that conform to the new definition.
    </div>

    <div class="changelog-change">
        - Change to ConfigurationListenerIF API. defintionChanged is now
          called definitionChanged (stupid spelling error).
    </div>

    <div class="changelog-change">
        - ConnectionListenerIF.onDeath now gets called for all connections
          closed during shutdown.
    </div>

    <div class="changelog-change">
        - Pools manually removed (using ProxoolFacade.removeConnectionPool)
          are no longer attempted to be removed during shutdown.
    </div>

    <div class="changelog-change">
        - Maximum-new-connections property has been deprecated in favour of
          the more descriptive simultaneous-build-throttle property.
    </div>

    <div class="changelog-change">
        - Refactoring of house keeper and prototyper so that the number of threads
          used by Proxool is more scalable. (Proxool used to create two threads
          per pool).
    </div>

    <div class="changelog-change">
        - Moved AdminServlet to servlet sub-package to make way for upcoming
          JMX admin implementation.
    </div>

    <div class="changelog-change">
        - Fixed bug where ConfigurationListenerIF.definitionUpdated was getting called
          when you passed a Properties object to the Driver regardless if whether the
          definition had changed.
    </div>

</div>
<div class="changelog-release">
    <div class="changelog-title">
        0.7 - February 21, 2003
    </div>

    <div class="changelog-change">
        - We have dropped the dependency on commons-logging.jar
        by copying the code into our own project (retaining credit to
        the Jakarta team, naturally).
    </div>

    <div class="changelog-change">
        - New <a href="admin.html">Admin</a> package provides statistical
        and snapshot information so you can measure how well Proxool, and
        your database, is doing.
    </div>

    <div class="changelog-change">
        - New <a href="adminServlet.html">AdminServlet</a> provides statistical
        information for your web application.
    </div>

    <div class="changelog-change">
        - The JDK 1.2 patch code has been brought up to date and now
        passes all the unit tests.
    </div>

    <div class="changelog-change">
        - The <a href="listen.html">listener</a> code has been redone. Proxool now allows multiple
        listeners per pool. setFooListener has now been deprecated in
        favour of addFooListener. And it's now thread safe (just in case you
        add or remove a listener while the pool is running).
    </div>

    <div class="changelog-change">
        - The new <a href="servlets.html">ServletConfigurator</a> will help you
        to configure and shutdown your pools simply by adding a few lines to
        your servlet configuration (web.xml) file and perhaps writing an XML file.
        No changes to your Java code.
    </div>

    <div class="changelog-change">
        - By using ShutdownHooks (with JDK1.3 or later) we get a cleaner, more
        reliable shutdown of the pools when the JVM stops.
    </div>

    <div class="changelog-change">
        - Removed ReloadMonitor (added in 0.5) because it made use of
          SystemProperties and this is prohbited by J2SE. You are now responsible
          for ensuring Proxool is shutdown if your application is reloaded within
          the same environment (as can sometimes happen in a web application).
          See ProxoolFacade.<a href="api/org/logicalcobwebs/proxool/ProxoolFacade.html#shutdown(int)">shutdown()</a>.
    </div>

    <div class="changelog-change">
        - Fixed bug when you asked DatabaseMetaData for the connection. It
        now gives you back the Proxool connection, not the underlying delegate
        connection.
    </div>

    <div class="changelog-change">
        - Fixed bug where if you registered, removed and then re-registered a pool
        then the new pool would not notice the Properties passed to it.
    </div>

    <div class="changelog-change">
        - If a connection encounters a fatal SQLException (as defined by the
          fatal-sql-exception property) it now wakes up the house keeper thread 
          so other connections are tested as soon as possible (with the
          house-keeper-test-sql) rather than waiting for the next scheduled sweep.
    </div>

</div>
<div class="changelog-release">
    <div class="changelog-title">
        0.6 - January 23, 2003
    </div>

    <div class="changelog-change">
        - ProxoolFacade API has changed slightly. Some of the methods no
          longer throw an SQLException but a ProxoolException instead.
          This might lead to some small changes in your code.
    </div>
    <div class="changelog-change">
        - There used to be some ambiguity about whether you referred to a
          pool by its alias or its full url (when using ProxoolFacade). This has
          now been fixed. This means you can now change the url (to use a
          different database for instance) without creating a new pool.
    </div>
    <div class="changelog-change">
        - Version information is now logged so you can tell what version of
          Proxool you are using.
    </div>
    <div class="changelog-change">
        - ConnectionPoolStatisticsIF now reports the time the pool was started.
    </div>
    <div class="changelog-change">
        - We now use FastArrayList (from Jakarta Commons) instead of the
          JDK's Vector for improved collection support.
    </div>
    <div class="changelog-change">
        - New <a href="api/org/logicalcobwebs/proxool/configuration/JAXPConfigurator.html">JAXPConfigurator</a>
        and <a href="api/org/logicalcobwebs/proxool/configuration/PropertyConfigurator.html">PropertyConfigurator</a>
        to make it easy to configure proxool from a file.
    </div>
    <div class="changelog-change">
        - New
        <a href="api/org/logicalcobwebs/proxool/ConfigurationListenerIF.html">ConfigurationListenerIF</a>
         interface allows you to implement a persistent configuration.
    </div>
    <div class="changelog-change">
        - Bug fix for JDBC drivers that implement the Statement interface
          indirectly (that is, extend a class that implements it rather than
          implementing it directly). (Credit to Martin Crawford).
    </div>
    <div class="changelog-change">
        - Unclosed Statements are now automatically closed when the
          Connection is closed, in accordance with the JDBC spec.
    </div>
    <div class="changelog-change">
        - Rollback is called on all connections when they are closed (that is,
          returned to the pool). This has no effect if autoCommit it true (default)
          or any pending transactions have been committed or already rolled back.
          This will only have an effect if you currently close connections with
          pending transactions.
    </div>
    <div class="changelog-change">
        - ProxoolFacade's new <a href="api/org/logicalcobwebs/proxool/ProxoolFacade.html#getDelegateStatement(java.sql.Statement)">getDelegateStatement</a>
        allows you to get to
        the underlying JDBC Driver's original Statement if you really need
        to. (This isn't recommended unless you have no other choice).
    </div>
    <div class="changelog-change">
        - You can now update the URL for a pool, not just the properties.
          See ProxoolFacade's
          <a href="api/org/logicalcobwebs/proxool/ProxoolFacade.html#updateConnectionPool(java.lang.String, java.util.Properties)">updateConnectionPool.</a>
    </div>

</div>
<div class="changelog-release">
    <div class="changelog-title">
        0.5 - 3 December 2002
    </div>
    <div class="changelog-change">
        - Fix finalisation of old instances. If you deploy to some environments in
          a certain way then it is possible for the class to be reloaded without the
          finalize() method being called. This will result in spurious house keeping
          threads remaining. The new ReloadMonitor avoids this.
    </div>

    <div class="changelog-change">
        - Various improvements to the logging to make it more informative and
          cleaner.
    </div>

    <div class="changelog-change">
        - Checkstyle improvements. We now enforce variable names and line length.
          Javadoc enforcement to come soon.
    </div>

    <div class="changelog-change">
        - Made the onBirth() method of ConnectionListenerIF interface failsafe. And
          removed obsolete cleanupClob() method (which was never called anyway)..
    </div>

    <div class="changelog-change">
        - Removed redundant logFilename stuff from ConnectionPoolDefinition. All
          logging is handled by Jakarta Commons's Logging anyway.
    </div>

    <div class="changelog-change">
        - Fix when removing pools that meant that when you tried to add them again
          Proxool thought it was a duplicate (credit to Dan Milstein).
    </div>

    <div class="changelog-change">
        - Improvements to the way Proxool detects changes to the pool definition
          when resending the Properties object when you get a connection. Now
          detects when it has changed which means that we don't do
          unnecessary configuration and log is improved (we now log properties
          as they are set or updated).
    </div>

    <div class="changelog-change">
        - Fix to the ProxyConnection within the equals() method that was causing
          identical conections to be incorrectly reported as unequal (which leads to
          problems when adding them to some collections).
    </div>

    <div class="changelog-change">
        - Improvements to test classes. Lots more tests.
    </div>

    <div class="changelog-change">
        - Added support for resetting connection properties when it is returned to
          the pool (autoCommit, catalog, readOnly, transactionIsolation, typeMap
          and holdability). These  properties are reset to the values when the connection
          was made everytime it is returned. (credit to Tim Morley)
    </div>

    <div class="changelog-change">
        - Connection.isClosed() now returns true when it is back in the pool.
    </div>

    <div class="changelog-change">
        - New trace property allows you to log each execution, the SQL, the parameters
          used, and the execution time (DEBUG level). Use proxool.trace=true property.
          You can also get this information if you register a ConnectionListenerIF (use
          ProxoolFacade's setConnectionListener() method). This won't effect performance
          if you're not listening or have trace off.
    </div>

    <div class="changelog-change">
        - Prototyping is now off by default. To enable prototyping you need to set the
          proxool.prototype-count property to something sensible (like 5, for instance).
          [Prototyping is where spare connections are when the number of available
          connections approaches zero.]
    </div>

    <div class="changelog-change">
        - Fix for catching fatal SQL exceptions. This is a feature that throws away connections
        that encounter certain types of exception.
    </div>

</div>

<div class="changelog-release">
    <div class="changelog-title">
        0.4 - 19 September 2002
    </div>
    <div class="changelog-change">
        - Rethink of how we organise our source code so that we can easily build to
        include different optional components.
    </div>
    <div class="changelog-change">
        - Use the Jakarta Commons' ultra-thin log wrapper. This allows you to plugin
        whatever logging component you like.
    </div>
    <div class="changelog-change">
        - Switched to use of the Proxy class so that we are not tied to a particular
        version of the JDK. However, this does mean a bit of patching to work with
        JDK&nbsp;1.2 (Proxy was introduced in 1.3). Fortunately, this patch is handled
        easily using Ant.
    </div>
    <div class="changelog-change">
        - Test classes now make use of Hypersonic. A pure Java database with a very small
        footprint. This means we can run the tests without having to rely on the existence
        of a separate database.
    </div>
    <div class="changelog-change">
        - Layout and code style changes in accordance with
        <a class="resource-link" href="http://checkstyle.sourceforge.net/">CheckStyle</a>
    </div>
    <div class="changelog-change">
        - New XMLConfigurator using JAXP to configure your connection pools.
    </div>
    <div class="changelog-change">
        - Improvments in
        <a href="http://www.junit.org">Junit</a> testing.
    </div>
</div>
                  </td>
                </tr>
              </tbody>
            </table>
          </td>
        </tr>

      </tbody>
    </table>
  </div>
  </body>

  <head>
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="Pragma" content="no-cache">
  </head>

</html>