pax_global_header 0000666 0000000 0000000 00000000064 14473117325 0014521 g ustar 00root root 0000000 0000000 52 comment=f612e2f0830f459fc5d2a2fa6004e7c8d2ebf03f
commons-dbcp-rel-commons-dbcp-2.10.0/ 0000775 0000000 0000000 00000000000 14473117325 0017321 5 ustar 00root root 0000000 0000000 commons-dbcp-rel-commons-dbcp-2.10.0/.asf.yaml 0000664 0000000 0000000 00000002530 14473117325 0021034 0 ustar 00root root 0000000 0000000 # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
github:
description: "Apache Commons DBCP"
homepage: https://commons.apache.org/dbcp/
notifications:
commits: commits@commons.apache.org
issues: issues@commons.apache.org
pullrequests: issues@commons.apache.org
jira_options: link label
jobs: notifications@commons.apache.org
issues_bot_dependabot: notifications@commons.apache.org
pullrequests_bot_dependabot: notifications@commons.apache.org
issues_bot_codecov-commenter: notifications@commons.apache.org
pullrequests_bot_codecov-commenter: notifications@commons.apache.org
commons-dbcp-rel-commons-dbcp-2.10.0/.github/ 0000775 0000000 0000000 00000000000 14473117325 0020661 5 ustar 00root root 0000000 0000000 commons-dbcp-rel-commons-dbcp-2.10.0/.github/GH-ROBOTS.txt 0000664 0000000 0000000 00000001633 14473117325 0022731 0 ustar 00root root 0000000 0000000 # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Keeps on creating FUD PRs in test code
# Does not follow Apache disclosure policies
User-agent: JLLeitschuh/security-research
Disallow: *
commons-dbcp-rel-commons-dbcp-2.10.0/.github/dependabot.yml 0000664 0000000 0000000 00000002006 14473117325 0023507 0 ustar 00root root 0000000 0000000 # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
version: 2
updates:
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: "weekly"
day: "friday"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "friday"
commons-dbcp-rel-commons-dbcp-2.10.0/.github/workflows/ 0000775 0000000 0000000 00000000000 14473117325 0022716 5 ustar 00root root 0000000 0000000 commons-dbcp-rel-commons-dbcp-2.10.0/.github/workflows/codeql-analysis.yml 0000664 0000000 0000000 00000006270 14473117325 0026536 0 ustar 00root root 0000000 0000000 # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '33 9 * * 4'
permissions:
contents: read
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'java' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
persist-credentials: false
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4
# âšī¸ Command-line programs to run using the OS shell.
# đ https://git.io/JvXDl
# âī¸ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4
commons-dbcp-rel-commons-dbcp-2.10.0/.github/workflows/coverage.yml 0000664 0000000 0000000 00000003442 14473117325 0025237 0 ustar 00root root 0000000 0000000 # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Coverage
on: [push, pull_request]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 8 ]
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
persist-credentials: false
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3.12.0
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
- name: Build with Maven
run: mvn -V test jacoco:report --file pom.xml --no-transfer-progress
- name: Upload coverage to Codecov
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4
with:
files: ./target/site/jacoco/jacoco.xml
commons-dbcp-rel-commons-dbcp-2.10.0/.github/workflows/maven.yml 0000664 0000000 0000000 00000003461 14473117325 0024553 0 ustar 00root root 0000000 0000000 # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Java CI
on: [push, pull_request]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
java: [ 8, 11, 17 ]
experimental: [false]
# include:
# - java: 18-ea
# experimental: true
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
persist-credentials: false
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3.12.0
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
- name: Build with Maven
run: mvn -V --file pom.xml --no-transfer-progress
commons-dbcp-rel-commons-dbcp-2.10.0/.github/workflows/scorecards-analysis.yml 0000664 0000000 0000000 00000004745 14473117325 0027424 0 ustar 00root root 0000000 0000000 # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache license, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the license for the specific language governing permissions and
# limitations under the license.
name: "Scorecards supply-chain security"
on:
branch_protection_rule:
schedule:
- cron: "30 1 * * 6" # Weekly on Saturdays
push:
branches: [ "master" ]
permissions: read-all
jobs:
analysis:
name: "Scorecards analysis"
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to the code-scanning dashboard.
security-events: write
actions: read
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
steps:
- name: "Checkout code"
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # 2.2.0
with:
results_file: results.sarif
results_format: sarif
# A read-only PAT token, which is sufficient for the action to function.
# The relevant discussion: https://github.com/ossf/scorecard-action/issues/188
repo_token: ${{ secrets.GITHUB_TOKEN }}
# Publish the results for public repositories to enable scorecard badges.
# For more details: https://github.com/ossf/scorecard-action#publishing-results
publish_results: true
- name: "Upload artifact"
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # 3.1.0
with:
name: SARIF file
path: results.sarif
retention-days: 5
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@a09933a12a80f87b87005513f0abb1494c27a716 # 2.21.4
with:
sarif_file: results.sarif
commons-dbcp-rel-commons-dbcp-2.10.0/.gitignore 0000664 0000000 0000000 00000000377 14473117325 0021320 0 ustar 00root root 0000000 0000000 target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
site-content
/.checkstyle
/.classpath
/.pmd
/.project
/.settings
/ObjectStore/
/bin/
# no IDE stuff in our SCM
.classpath
.settings
.idea
*.iml
.nbproject
commons-dbcp-rel-commons-dbcp-2.10.0/CODE_OF_CONDUCT.md 0000664 0000000 0000000 00000001641 14473117325 0022122 0 ustar 00root root 0000000 0000000
The Apache code of conduct page is [https://www.apache.org/foundation/policies/conduct.html](https://www.apache.org/foundation/policies/conduct.html).
commons-dbcp-rel-commons-dbcp-2.10.0/CONTRIBUTING.md 0000664 0000000 0000000 00000014566 14473117325 0021566 0 ustar 00root root 0000000 0000000
Contributing to Apache Commons DBCP
======================
You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to
the open source community. Before you dig right into the code there are a few guidelines that we need contributors to
follow so that we can have a chance of keeping on top of things.
Getting Started
---------------
+ Make sure you have a [JIRA account](https://issues.apache.org/jira/).
+ Make sure you have a [GitHub account](https://github.com/signup/free).
+ If you're planning to implement a new feature it makes sense to discuss your changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons DBCP's scope.
+ Submit a [Jira Ticket][jira] for your issue, assuming one does not already exist.
+ Clearly describe the issue including steps to reproduce when it is a bug.
+ Make sure you fill in the earliest version that you know has the issue.
+ Find the corresponding [repository on GitHub](https://github.com/apache/?query=commons-),
[fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository.
Making Changes
--------------
+ Create a _topic branch_ for your isolated work.
* Usually you should base your branch on the `master` branch.
* A good topic branch name can be the JIRA bug id plus a keyword, e.g. `DBCP-123-InputStream`.
* If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests.
+ Make commits of logical units.
* Make sure your commit messages are meaningful and in the proper format. Your commit message should contain the key of the JIRA issue.
* e.g. `DBCP-123: Close input stream earlier`
+ Respect the original code style:
+ Only use spaces for indentation.
+ Create minimal diffs - disable _On Save_ actions like _Reformat Source Code_ or _Organize Imports_. If you feel the source code should be reformatted create a separate PR for this change first.
+ Check for unnecessary whitespace with `git diff` -- check before committing.
+ Make sure you have added the necessary tests for your changes, typically in `src/test/java`.
+ Run all the tests with `mvn clean verify` to assure nothing else was accidentally broken.
Making Trivial Changes
----------------------
The JIRA tickets are used to generate the changelog for the next release.
For changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA.
In this case, it is appropriate to start the first line of a commit with '(doc)' instead of a ticket number.
Submitting Changes
------------------
+ Sign and submit the Apache [Contributor License Agreement][cla] if you haven't already.
* Note that small patches & typical bug fixes do not require a CLA as
clause 5 of the [Apache License](https://www.apache.org/licenses/LICENSE-2.0.html#contributions)
covers them.
+ Push your changes to a topic branch in your fork of the repository.
+ Submit a _Pull Request_ to the corresponding repository in the `apache` organization.
* Verify _Files Changed_ shows only your intended changes and does not
include additional files like `target/*.class`
+ Update your JIRA ticket and include a link to the pull request in the ticket.
If you prefer to not use GitHub, then you can instead use
`git format-patch` (or `svn diff`) and attach the patch file to the JIRA issue.
Additional Resources
--------------------
+ [Contributing patches](https://commons.apache.org/patches.html)
+ [Apache Commons DBCP JIRA project page][jira]
+ [Contributor License Agreement][cla]
+ [General GitHub documentation](https://help.github.com/)
+ [GitHub pull request documentation](https://help.github.com/articles/creating-a-pull-request/)
+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
+ `#apache-commons` IRC channel on `irc.freenode.net`
[cla]:https://www.apache.org/licenses/#clas
[jira]:https://issues.apache.org/jira/browse/DBCP
commons-dbcp-rel-commons-dbcp-2.10.0/LICENSE.txt 0000664 0000000 0000000 00000026136 14473117325 0021154 0 ustar 00root root 0000000 0000000
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
commons-dbcp-rel-commons-dbcp-2.10.0/NOTICE.txt 0000664 0000000 0000000 00000000256 14473117325 0021046 0 ustar 00root root 0000000 0000000 Apache Commons DBCP
Copyright 2001-2023 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (https://www.apache.org/).
commons-dbcp-rel-commons-dbcp-2.10.0/README.md 0000664 0000000 0000000 00000032777 14473117325 0020620 0 ustar 00root root 0000000 0000000
Apache Commons DBCP
===================
[](https://github.com/apache/commons-dbcp/actions)
[](https://app.codecov.io/gh/apache/commons-dbcp)
[](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-dbcp2/?gav=true)
[](https://javadoc.io/doc/org.apache.commons/commons-dbcp2/2.10.0)
[](https://github.com/apache/commons-dbcp/actions/workflows/codeql-analysis.yml?query=workflow%3ACodeQL)
[](https://api.securityscorecards.dev/projects/github.com/apache/commons-dbcp)
Apache Commons DBCP software implements Database Connection Pooling
Documentation
-------------
More information can be found on the [Apache Commons DBCP homepage](https://commons.apache.org/proper/commons-dbcp).
The [Javadoc](https://commons.apache.org/proper/commons-dbcp/apidocs) can be browsed.
Questions related to the usage of Apache Commons DBCP should be posted to the [user mailing list][ml].
Where can I get the latest release?
-----------------------------------
You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi).
Alternatively, you can pull it from the central Maven repositories:
```xml
org.apache.commons
commons-dbcp2
2.10.0
```
Contributing
------------
We accept Pull Requests via GitHub. The [developer mailing list](https://commons.apache.org/mail-lists.html) is the main channel of communication for contributors.
There are some guidelines which will make applying PRs easier for us:
+ No tabs! Please use spaces for indentation.
+ Respect the code style.
+ Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
+ Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running ```mvn```.
If you plan to contribute on a regular basis, please consider filing a [contributor license agreement](https://www.apache.org/licenses/#clas).
You can learn more about contributing via GitHub in our [contribution guidelines](CONTRIBUTING.md).
License
-------
This code is under the [Apache License v2](https://www.apache.org/licenses/LICENSE-2.0).
See the `NOTICE.txt` file for required notices and attributions.
Donations
---------
You like Apache Commons DBCP? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support the development.
Additional Resources
--------------------
+ [Apache Commons Homepage](https://commons.apache.org/)
+ [Apache Issue Tracker (JIRA)](https://issues.apache.org/jira/browse/DBCP)
+ [Apache Commons Slack Channel](https://the-asf.slack.com/archives/C60NVB8AD)
+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
+ `#apache-commons` IRC channel on `irc.freenode.org`
Apache Commons Components
-------------------------
| Component | GitHub Repository | Apache Homepage |
| --------- | ----------------- | ----------------|
| Apache Commons BCEL | [commons-bcel](https://github.com/apache/commons-bcel) | [commons-bcel](https://commons.apache.org/proper/commons-bcel) |
| Apache Commons Beanutils | [commons-beanutils](https://github.com/apache/commons-beanutils) | [commons-beanutils](https://commons.apache.org/proper/commons-beanutils) |
| Apache Commons BSF | [commons-bsf](https://github.com/apache/commons-bsf) | [commons-bsf](https://commons.apache.org/proper/commons-bsf) |
| Apache Commons Build-plugin | [commons-build-plugin](https://github.com/apache/commons-build-plugin) | [commons-build-plugin](https://commons.apache.org/proper/commons-build-plugin) |
| Apache Commons Chain | [commons-chain](https://github.com/apache/commons-chain) | [commons-chain](https://commons.apache.org/proper/commons-chain) |
| Apache Commons CLI | [commons-cli](https://github.com/apache/commons-cli) | [commons-cli](https://commons.apache.org/proper/commons-cli) |
| Apache Commons Codec | [commons-codec](https://github.com/apache/commons-codec) | [commons-codec](https://commons.apache.org/proper/commons-codec) |
| Apache Commons Collections | [commons-collections](https://github.com/apache/commons-collections) | [commons-collections](https://commons.apache.org/proper/commons-collections) |
| Apache Commons Compress | [commons-compress](https://github.com/apache/commons-compress) | [commons-compress](https://commons.apache.org/proper/commons-compress) |
| Apache Commons Configuration | [commons-configuration](https://github.com/apache/commons-configuration) | [commons-configuration](https://commons.apache.org/proper/commons-configuration) |
| Apache Commons Crypto | [commons-crypto](https://github.com/apache/commons-crypto) | [commons-crypto](https://commons.apache.org/proper/commons-crypto) |
| Apache Commons CSV | [commons-csv](https://github.com/apache/commons-csv) | [commons-csv](https://commons.apache.org/proper/commons-csv) |
| Apache Commons Daemon | [commons-daemon](https://github.com/apache/commons-daemon) | [commons-daemon](https://commons.apache.org/proper/commons-daemon) |
| Apache Commons DBCP | [commons-dbcp](https://github.com/apache/commons-dbcp) | [commons-dbcp](https://commons.apache.org/proper/commons-dbcp) |
| Apache Commons Dbutils | [commons-dbutils](https://github.com/apache/commons-dbutils) | [commons-dbutils](https://commons.apache.org/proper/commons-dbutils) |
| Apache Commons Digester | [commons-digester](https://github.com/apache/commons-digester) | [commons-digester](https://commons.apache.org/proper/commons-digester) |
| Apache Commons Email | [commons-email](https://github.com/apache/commons-email) | [commons-email](https://commons.apache.org/proper/commons-email) |
| Apache Commons Exec | [commons-exec](https://github.com/apache/commons-exec) | [commons-exec](https://commons.apache.org/proper/commons-exec) |
| Apache Commons Fileupload | [commons-fileupload](https://github.com/apache/commons-fileupload) | [commons-fileupload](https://commons.apache.org/proper/commons-fileupload) |
| Apache Commons Functor | [commons-functor](https://github.com/apache/commons-functor) | [commons-functor](https://commons.apache.org/proper/commons-functor) |
| Apache Commons Geometry | [commons-geometry](https://github.com/apache/commons-geometry) | [commons-geometry](https://commons.apache.org/proper/commons-geometry) |
| Apache Commons Graph | [commons-graph](https://github.com/apache/commons-graph) | [commons-graph](https://commons.apache.org/proper/commons-graph) |
| Apache Commons Imaging | [commons-imaging](https://github.com/apache/commons-imaging) | [commons-imaging](https://commons.apache.org/proper/commons-imaging) |
| Apache Commons IO | [commons-io](https://github.com/apache/commons-io) | [commons-io](https://commons.apache.org/proper/commons-io) |
| Apache Commons JCI | [commons-jci](https://github.com/apache/commons-jci) | [commons-jci](https://commons.apache.org/proper/commons-jci) |
| Apache Commons JCS | [commons-jcs](https://github.com/apache/commons-jcs) | [commons-jcs](https://commons.apache.org/proper/commons-jcs) |
| Apache Commons Jelly | [commons-jelly](https://github.com/apache/commons-jelly) | [commons-jelly](https://commons.apache.org/proper/commons-jelly) |
| Apache Commons Jexl | [commons-jexl](https://github.com/apache/commons-jexl) | [commons-jexl](https://commons.apache.org/proper/commons-jexl) |
| Apache Commons Jxpath | [commons-jxpath](https://github.com/apache/commons-jxpath) | [commons-jxpath](https://commons.apache.org/proper/commons-jxpath) |
| Apache Commons Lang | [commons-lang](https://github.com/apache/commons-lang) | [commons-lang](https://commons.apache.org/proper/commons-lang) |
| Apache Commons Logging | [commons-logging](https://github.com/apache/commons-logging) | [commons-logging](https://commons.apache.org/proper/commons-logging) |
| Apache Commons Math | [commons-math](https://github.com/apache/commons-math) | [commons-math](https://commons.apache.org/proper/commons-math) |
| Apache Commons Net | [commons-net](https://github.com/apache/commons-net) | [commons-net](https://commons.apache.org/proper/commons-net) |
| Apache Commons Numbers | [commons-numbers](https://github.com/apache/commons-numbers) | [commons-numbers](https://commons.apache.org/proper/commons-numbers) |
| Apache Commons Parent | [commons-parent](https://github.com/apache/commons-parent) | [commons-parent](https://commons.apache.org/proper/commons-parent) |
| Apache Commons Pool | [commons-pool](https://github.com/apache/commons-pool) | [commons-pool](https://commons.apache.org/proper/commons-pool) |
| Apache Commons Proxy | [commons-proxy](https://github.com/apache/commons-proxy) | [commons-proxy](https://commons.apache.org/proper/commons-proxy) |
| Apache Commons RDF | [commons-rdf](https://github.com/apache/commons-rdf) | [commons-rdf](https://commons.apache.org/proper/commons-rdf) |
| Apache Commons Release-plugin | [commons-release-plugin](https://github.com/apache/commons-release-plugin) | [commons-release-plugin](https://commons.apache.org/proper/commons-release-plugin) |
| Apache Commons Rng | [commons-rng](https://github.com/apache/commons-rng) | [commons-rng](https://commons.apache.org/proper/commons-rng) |
| Apache Commons Scxml | [commons-scxml](https://github.com/apache/commons-scxml) | [commons-scxml](https://commons.apache.org/proper/commons-scxml) |
| Apache Commons Signing | [commons-signing](https://github.com/apache/commons-signing) | [commons-signing](https://commons.apache.org/proper/commons-signing) |
| Apache Commons Skin | [commons-skin](https://github.com/apache/commons-skin) | [commons-skin](https://commons.apache.org/proper/commons-skin) |
| Apache Commons Statistics | [commons-statistics](https://github.com/apache/commons-statistics) | [commons-statistics](https://commons.apache.org/proper/commons-statistics) |
| Apache Commons Testing | [commons-testing](https://github.com/apache/commons-testing) | [commons-testing](https://commons.apache.org/proper/commons-testing) |
| Apache Commons Text | [commons-text](https://github.com/apache/commons-text) | [commons-text](https://commons.apache.org/proper/commons-text) |
| Apache Commons Validator | [commons-validator](https://github.com/apache/commons-validator) | [commons-validator](https://commons.apache.org/proper/commons-validator) |
| Apache Commons VFS | [commons-vfs](https://github.com/apache/commons-vfs) | [commons-vfs](https://commons.apache.org/proper/commons-vfs) |
| Apache Commons Weaver | [commons-weaver](https://github.com/apache/commons-weaver) | [commons-weaver](https://commons.apache.org/proper/commons-weaver) |
commons-dbcp-rel-commons-dbcp-2.10.0/RELEASE-NOTES.txt 0000664 0000000 0000000 00000101242 14473117325 0022030 0 ustar 00root root 0000000 0000000 Apache Commons DBCP
Version 2.10.0
RELEASE NOTES
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.10.0.
Apache Commons DBCP software implements Database Connection Pooling.
This is a minor release, including bug fixes and enhancements.
Changes in this version include:
New features:
o Add and use AbandonedTrace#setLastUsed(Instant). Thanks to Gary Gregory.
o - Add and use Duration versions of now deprecated APIs that use ints and longs.
- Internally track durations with Duration objects instead of ints and longs.
- See the JApiCmp report for the complete list. Thanks to Gary Gregory.
o Add PMD check to default Maven goal. Thanks to Gary Gregory.
o Add Utils.getDisconnectionSqlCodes() and Utils.DISCONNECTION_SQL_CODES. Thanks to Gary Gregory.
o Make BasicDataSource.getConnectionPool() public. Thanks to Gary Gregory.
o Add github/codeql-action. Thanks to Gary Gregory.
Fixed Bugs:
o Fix StackOverflowError in PoolableConnection.isDisconnectionSqlException #123. Thanks to newnewcoder, Gary Gregory.
o PerUserPoolDataSourceFactory.getNewInstance(Reference) parsed defaultMaxWaitMillis as an int instead of a long. Thanks to Gary Gregory.
o Reimplement time tracking in AbandonedTrace with an Instant instead of a long. Thanks to Gary Gregory.
o Migrate away from deprecated APIs in Apache Commons Pool. Thanks to Gary Gregory.
o Fix possible NullPointerException in BasicDataSourceFactory.validatePropertyNames(). Thanks to Gary Gregory.
o Fix possible NullPointerException in BasicDataSourceFactory.getObjectInstance(). Thanks to Gary Gregory.
o DBCP-585: Connection level JMX queries result in concurrent access to connection objects, causing errors #179. Thanks to Kurtcebe Eroglu, Gary Gregory, Phil Steitz.
o UserPassKey should be Serializable. Thanks to Gary Gregory.
o LifetimeExceededException should extend SQLException. Thanks to Gary Gregory.
o Replace Exception with SQLException in some method signatures (preserves binary compatibility, not source). Thanks to Gary Gregory.
o Don't leak Connections when PoolableConnectionFactory.makeObject() fails to create a JMX ObjectName. Thanks to Gary Gregory.
o Performance: No need for map lookups if we traverse map entries instead of keys. Thanks to SpotBugs, Gary Gregory.
o Performance: Refactor to use a static inner class in DataSourceXAConnectionFactory. Thanks to SpotBugs, Gary Gregory.
o Reuse pattern of throwing XAException instead of NullPointerException in LocalXAConnectionFactory.LocalXAResource. Thanks to SpotBugs, Gary Gregory.
o SpotBugs: An overridable method is called from constructors in PoolableCallableStatement. Thanks to SpotBugs, Gary Gregory.
o SpotBugs: An overridable method is called from constructors in PoolablePreparedStatement. Thanks to SpotBugs, Gary Gregory.
o Wrong property name logged in ConnectionFactoryFactory.createConnectionFactory(BasicDataSource, Driver). Thanks to Gary Gregory.
o Throw SQLException instead of NullPointerException when the connection is already closed. Thanks to Gary Gregory.
o CPDSConnectionFactory.makeObject() does not need to wrap and rethrow SQLException. Thanks to Gary Gregory.
o PoolingDataSource.close() now always throws SQLException. Thanks to Gary Gregory.
o [StepSecurity] ci: Harden GitHub Actions #282. Thanks to step-security-bot, Gary Gregory.
o Fixes typos, missing or misplaced characters, and grammar issues #299. Thanks to Martin Wiesner.
Changes:
o Bump actions/cache from 2.1.6 to 3.0.8 #147, #176. Thanks to Dependabot, Gary Gregory.
o Bump actions/checkout from 2.3.4 to 3.0.2 #139, #143, #173. Thanks to Dependabot, Gary Gregory.
o Bump actions/setup-java from 2 to 3.6.0 #229. Thanks to Gary Gregory, Dependabot.
o Bump actions/upload-artifact from 3.1.0 to 3.1.1 #231. Thanks to Dependabot.
o Bump checkstyle from 8.44 to 9.3 #121, #130, #149, #158, #190. Thanks to Dependabot.
o Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #210. Thanks to Dependabot.
o Bump commons-pool2 2.10.0 to 2.11.1. Thanks to Gary Gregory, Dependabot.
o Bump junit-jupiter from 5.8.0-M1 to 5.9.1 #125, #136, #157, #203, #218. Thanks to Dependabot.
o Bump spotbugs-maven-plugin from 4.3.0 to 4.7.3.0 #140, #154, #161, #178, #192, #200, #204, #213, #234. Thanks to Dependabot.
o Bump spotbugs from 4.3.0 to 4.7.3 #124, #133, #151, #164, #177, #189, #214, #230. Thanks to Dependabot, Gary Gregory.
o Bump org.mockito:mockito-core from 3.11.2 to 4.11.0, #128, #138, #152, #175, #188. #193, #208, #215, #232, #235, #246, #252. Thanks to Gary Gregory, Dependabot.
o Bump maven-javadoc-plugin from 3.3.0 to 3.4.1 #131, #184. Thanks to Dependabot.
o Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #132, #172, #195. Thanks to Dependabot, Gary Gregory.
o Bump pmd from 6.44.0 to 6.52.0. Thanks to Dependabot, Gary Gregory.
o Bump narayana-jta from 5.12.0.Final to 5.12.7.Final #134, #156, #163, #185, #197. Thanks to Dependabot.
o Bump japicmp-maven-plugin from 0.15.3 to 0.17.1 #137, #166, #174, #211, #238. Thanks to Dependabot.
o Bump h2 from 1.4.200 to 2.2.220 #153, #183, #196, #287.
Update SQL for migration from H2 1.4.200 to 2.0.204 where "KEY" and "VALUE" are now reserved keywords. Thanks to Gary Gregory, Dependabot.
o Bump jboss-logging from 3.4.2.Final to 3.4.3.Final #162. Thanks to Dependabot.
o Bump slf4j-simple from 1.7.30 to 1.7.36 #169. Thanks to Dependabot.
o Bump commons-parent from 52 to 60 #180, #219, #254, #278. Thanks to Dependabot, Gary Gregory.
o Bump JaCoCo from 0.8.7 to 0.8.8. Thanks to Gary Gregory.
o Bump maven-surefire-plugin 2.22.2 to 3.0.0-M7. Thanks to Gary Gregory.
o Bump apache-rat-plugin 0.13 to 0.14. Thanks to Gary Gregory.
o Bump commons-lang3 from 3.12 to 3.13.0. Thanks to Gary Gregory.
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download page: https://commons.apache.org/dbcp/download_dbcp.cgi
-----------------------------------------------------------------------------
Apache Commons DBCP
Version 2.9.0
RELEASE NOTES
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.9.0.
Apache Commons DBCP software implements Database Connection Pooling.
This is a minor release, including bug fixes and enhancements.
Changes in this version include:
New features:
o Add and reuse Constants.KEY_USER and Constants.KEY_PASSWORD. Thanks to Gary Gregory.
o Add and reuse DataSourceMXBean. Thanks to Frank Gasdorf, Gary Gregory.
o Add and reuse DriverAdapterCPDS.{get|set}DurationBetweenEvictionRuns(), deprecate {get|set}TimeBetweenEvictionRunsMillis(long). Thanks to Gary Gregory.
o Add and reuse DriverAdapterCPDS.{get|set}MinEvictableIdleDuration(), deprecate {get|set}MinEvictableIdleTimeMillis(int). Thanks to Gary Gregory.
o Add and reuse CPDSConnectionFactory.setMaxConnLifetime(Duration), deprecate setMaxConnLifetimeMillis(long). Thanks to Gary Gregory.
o Add and reuse KeyedCPDSConnectionFactory.setMaxConnLifetime(Duration), deprecate setMaxConnLifetimeMillis(long). Thanks to Gary Gregory.
o Add and reuse KeyedCPDSConnectionFactory.setMaxConnLifetime(Duration), deprecate setMaxConnLifetimeMillis(long). Thanks to Gary Gregory.
o Add and reuse InstanceKeyDataSource.{get|set}DefaultMaxWait(Duration), deprecate {get|set}DefaultMaxWaitMillis(long). Thanks to Gary Gregory.
Fixed Bugs:
o DBCP-569: Fix test random failure on TestSynchronizationOrder.testInterposedSynchronization, #84. Thanks to Florent Guillaume.
o DBCP-568: ManagedConnection must clear its cached state after transaction completes, #75. Thanks to Florent Guillaume.
o Minor Improvements #78. Thanks to Arturo Bernal.
o DBCP-567: Use abort rather than close to clean up abandoned connections. Thanks to Phil Steitz, Gary Gregory, Phil Steitz, Romain Manni-Bucau.
o Performance Enhancement: Call toArray with Zero Array Size #20. Thanks to Gary Gregory, DaGeRe.
o DBCP-562: Avoid exposing password via JMX #38. Thanks to Frank Gasdorf, Gary Gregory.
o DBCP-575: Remove redundant initializers #98. Thanks to Arturo Bernal.
o DBCP-577: Simplify test assertions #100, #113. Thanks to Arturo Bernal.
o DBCP-573: DataSource implementations do not implement Wrapper interface correctly #93. Thanks to RÊda Housni Alaoui, Gary Gregory.
o Replace FindBugs with SpotBugs.
o DataSourceConnectionFactory.getUserPassword() may expose internal representation by returning DataSourceConnectionFactory.userPassword.
o DataSourceXAConnectionFactory.getUserPassword() may expose internal representation by returning DataSourceXAConnectionFactory.userPassword.
o DriverAdapterCPDS.getPasswordCharArray() may expose internal representation by returning DriverAdapterCPDS.userPassword.
o new org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory(TransactionManager, XADataSource, String, char[], TransactionSynchronizationRegistry) may expose internal representation by storing an externally mutable object into DataSourceXAConnectionFactory.userPassword.
o org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory.setPassword(char[]) may expose internal representation by storing an externally mutable object into DataSourceXAConnectionFactory.userPassword.
o org.apache.commons.dbcp2.PStmtKey.getColumnIndexes() may expose internal representation by returning PStmtKey.columnIndexes.
o org.apache.commons.dbcp2.PStmtKey.getColumnNames() may expose internal representation by returning PStmtKey.columnNames.
o DBCP-578: Use Collections.synchronizedList() Instead Of Vector #101. Thanks to Arturo Bernal.
o DBCP-576: Simplify and inline variables #99. Thanks to Arturo Bernal.
o Update PoolKey#toString() to avoid revealing a user name is here. Thanks to Gary Gregory.
o Internal package private UserPassKey class stores its user name as a char[] as it already does the password. Thanks to Gary Gregory.
o DBCP-579: Performance of DelegatingConnection.prepareStatement(String) regressed enormously in 2.8.0 compared to 1.4.
DelegatingConnection should also cache connection schema string to avoid calling the Connection#getSchema() for each key creation.
DelegatingConnection should also cache connection catalog string to avoid calling the Connection#getCatalog() for each key creation. Thanks to Shaktisinh Jhala, Gary Gregory.
o BasicDataSource should test for the presence of a security manager dynamically, not once on initialization. Thanks to Gary Gregory.
Changes:
o Bump mockito-core from 3.5.11 to 3.11.2 #66, #72, #77, #85, #91, #105, #110, #116. Thanks to Dependabot.
o Bump actions/checkout from v2.3.2 to v2.3.4 #65, #74. Thanks to Dependabot.
o Bump actions/cache from v2 to v2.1.6 #90, #108. Thanks to Dependabot.
o Bump commons-pool2 from 2.8.1 to 2.9.0. Thanks to Gary Gregory.
o Bump actions/setup-java from v1.4.2 to v2 #69. Thanks to Dependabot, Gary Gregory.
o Bump japicmp-maven-plugin from 0.14.3 to 0.15.2 #71, #82. Thanks to Dependabot, Gary Gregory.
o Bump maven-pmd-plugin from 3.13.0 to 3.14.0 #76. Thanks to Dependabot.
o Bump japicmp-maven-plugin from 0.14.4 to 0.15.3, #83. Thanks to Dependabot, Gary Gregory.
o Bump Hamcrest 1.3 -> 2.2 #70. Thanks to John Patrick.
o Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #88. Thanks to Gary Gregory.
o Bump junit-jupiter from 5.7.0 to 5.8.0-M1, #89, #106. Thanks to Gary Gregory.
o Bump narayana-jta from 5.10.6.Final to 5.12.0.Final #103, #111. Thanks to Dependabot.
o Bump maven-javadoc-plugin from 3.2.0 to 3.3.0 #107. Thanks to Dependabot.
o Bump commons.jacoco.version 0.8.6 -> 0.8.7. Thanks to Gary Gregory.
o Bump jboss-logging from 3.4.1.Final to 3.4.2.Final #109. Thanks to Dependabot.
o Bump org.jboss:jboss-transaction-spi from 7.6.0.Final to 7.6.1.Final. Thanks to Gary Gregory.
o Bump commons-pool2 from 2.9.0 to 2.10.0. Thanks to Gary Gregory.
o Bump checkstyle to 8.44. Thanks to Gary Gregory.
o Bump spotbugs from 4.2.3 to 4.3.0 #117. Thanks to Dependabot.
o Bump spotbugs-maven-plugin from 4.2.3 to 4.3.0 #118. Thanks to Dependabot.
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download page: https://commons.apache.org/dbcp/download_dbcp.cgi
-----------------------------------------------------------------------------
Apache Commons DBCP
Version 2.8.0
RELEASE NOTES
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.8.0.
Apache Commons DBCP software implements Database Connection Pooling.
This is a minor release, including bug fixes and enhancements.
Changes in this version include:
New features:
o DBCP-564: Fix BasicManagedDataSource leak of connections opened after transaction is rollback-only #39. Thanks to Florent Guillaume.
o DBCP-566: Add clearStatementPoolOnReturn #42. Thanks to Robert Paschek, Gary Gregory, Phil Steitz.
o DBCP-559: Add start, restart methods to BasicDataSource. #50. Thanks to Phil Steitz.
Fixed Bugs:
o DBCP-555: NPE when creating a SQLExceptionList with a null list. Thanks to Gary Gregory.
o DBCP-558: Fix DelegatingConnection readOnly and autoCommit caching mechanism #35. Thanks to louislatreille.
o Fix regression introduced by unreleased code clean-up #63. Thanks to Sebastian Haas.
Changes:
o Update to PR#36 - PrepareStatement and prepareCall methods are extracted #37. Thanks to DoiMasayuki, Alexander Norz, Gary Gregory.
o Mask out user name and password from DriverAdapterCPDS.toString(). Thanks to Gary Gregory.
o DBCP-650: Update Apache Commons Pool from 2.7.0 to 2.8.1, #48. Thanks to Gary Gregory, Dependabot.
o Update tests from H2 1.4.199 to 1.4.200. Thanks to Gary Gregory.
o Update tests from Mockito 3.0.0 to 3.5.11 #47, #60, #64. Thanks to Gary Gregory, Dependabot.
o Update tests from jboss-logging 3.4.0.Final to 3.4.1.Final. Thanks to Gary Gregory.
o Update tests from narayana-jta 5.9.5.Final to 5.10.6.Final, #61. Thanks to Gary Gregory.
o Update tests from junit-jupiter 5.5.1 to 5.7.0 #62. Thanks to Gary Gregory.
o Update tests from org.slf4j:slf4j-simple 1.7.26 to 1.7.30. Thanks to Gary Gregory.
o Update build from com.github.siom79.japicmp:japicmp-maven-plugin 0.13.1 to 0.14.3. Thanks to Gary Gregory.
o Update build from maven-javadoc-plugin 3.1.1 to 3.2.0. Thanks to Gary Gregory.
o Update build from maven-pmd-plugin 3.12.0 to 3.13.0. Thanks to Gary Gregory.
o Update org.apache.commons:commons-parent from 48 to 51. Thanks to Gary Gregory.
o Update jacoco-maven-plugin from 0.8.4 to 0.8.6. Thanks to Gary Gregory.
o Update maven-checkstyle-plugin from 3.0.0 to 3.1.1. Thanks to Gary Gregory.
o Update actions/checkout from v1 to v2.3.2, #44, #51. Thanks to Dependabot.
o Update actions/setup-java from v1.4.0 to v1.4.2 #58. Thanks to Dependabot.
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download page: https://commons.apache.org/dbcp/download_dbcp.cgi
-----------------------------------------------------------------------------
Apache Commons DBCP
Version 2.7.0
RELEASE NOTES
7 July 2019
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.7.0.
Apache Commons DBCP software implements Database Connection Pooling.
This is a minor release, including bug fixes and enhancements.
Changes in this version include:
New features:
o DBCP-539: ManagedDataSource#close() should declare used exceptions. Thanks to Jacques Le Roux.
o DBCP-547: Add a ConnectionFactory class name setting for BasicDataSource.createConnectionFactory() #33. Thanks to leechoongyon, Gary Gregory.
o Add missing Javadocs. Thanks to Gary Gregory.
Fixed Bugs:
o DBCP-538: Wrong JMX base name derived in BasicDataSource#updateJmxName. Thanks to Ragnar Haugan, Gary Gregory.
o DBCP-546: Avoid NPE when calling DriverAdapterCPDS.toString(). Thanks to Sergey Chupov.
o DBCP-550: java.util.IllegalFormatException while building a message for a SQLFeatureNotSupportedException in Jdbc41Bridge.getObject(ResultSet,String,Class). Thanks to Gary Gregory.
o Fix Javadoc link in README.md #21. Thanks to LichKing-lee.
Changes:
o DBCP-540: Close ObjectOutputStream before calling toByteArray() on underlying ByteArrayOutputStream #28. Thanks to emopers.
o DBCP-541: Upgrade to JUnit Jupiter #19. Thanks to Allon Murienik.
o DBCP-542: Fix tests on Java 11. Thanks to Zheng Feng, Gary Gregory.
o DBCP-543: Update Apache Commons Pool from 2.6.1 to 2.6.2. Thanks to Gary Gregory.
o DBCP-529: Add 'jmxName' property to web configuration parameters listing. Thanks to Yuri.
o DBCP-548: Update Apache Commons Pool from 2.6.2 to 2.7.0. Thanks to Gary Gregory.
o DBCP-549: Make org.apache.commons.dbcp2.AbandonedTrace.removeTrace(AbandonedTrace) null-safe. Thanks to Gary Gregory.
o DBCP-551: org.apache.commons.dbcp2.DelegatingStatement.close() should try to close ALL of its result sets even when an exception occurs. Thanks to Gary Gregory.
o DBCP-552: org.apache.commons.dbcp2.DelegatingConnection.passivate() should close ALL of its resources even when an exception occurs. Thanks to Gary Gregory.
o DBCP-553: org.apache.commons.dbcp2.PoolablePreparedStatement.passivate() should close ALL of its resources even when an exception occurs. Thanks to Gary Gregory.
o DBCP-554: org.apache.commons.dbcp2.PoolableCallableStatement.passivate() should close ALL of its resources even when an exception occurs. Thanks to Gary Gregory.
o Update tests from org.mockito:mockito-core 2.28.2 to 3.0.0. Thanks to Gary Gregory.
o Update tests from H2 1.4.198 to 1.4.199. Thanks to Gary Gregory.
o Update tests from com.h2database:h2 1.4.197 to 1.4.199. Thanks to Gary Gregory.
o Update tests from org.jboss.narayana.jta:narayana-jta 5.9.2.Final to 5.9.5.Final. Thanks to Gary Gregory.
o Update tests from org.jboss.logging:jboss-logging 3.3.2.Final to 3.4.0.Final. Thanks to Gary Gregory.
o Update tests from org.mockito:mockito-core 2.24.0 to 2.28.2. Thanks to Gary Gregory.
o Update tests from org.mockito:mockito-core 2.28.2 to 3.0.0. Thanks to Gary Gregory.
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download page: https://commons.apache.org/dbcp/download_dbcp.cgi
-----------------------------------------------------------------------------
Apache Commons DBCP
Version 2.6.0
RELEASE NOTES
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.6.0.
Apache Commons DBCP software implements Database Connection Pooling.
This is a minor release, including bug fixes and enhancements.
Changes in this version include:
New features:
o DBCP-534: Allow for manual connection eviction. Thanks to Peter Wicks.
o DBCP-514: Allow DBCP to register with a TransactionSynchronizationRegistry for XA cases. Thanks to Tom Jenkinson, Gary Gregory.
o DBCP-519: Add some toString() methods for debugging (never printing passwords.) Thanks to Gary Gregory.
o DBCP-527: Add getters to some classes. Thanks to Gary Gregory.
o DBCP-528: org.apache.commons.dbcp2.DriverManagerConnectionFactory should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
Fixed Bugs:
o DBCP-518: Allow DBCP to work with old Java 6/JDBC drivers without throwing AbstractMethodError. Thanks to Gary Gregory.
Changes:
o DBCP-517: Make defensive copies of char[] passwords. Thanks to Gary Gregory.
o DBCP-515: Do not try to register synchronization when the transaction is no longer active. Thanks to Tom Jenkinson, Gary Gregory.
o DBCP-516: Do not double returnObject back to the pool if there is a transaction context with a shared connection. Thanks to Tom Jenkinson, Gary Gregory.
o DBCP-520: BasicManagedDataSource needs to pass the TSR with creating DataSourceXAConnectionFactory. Thanks to Zheng Feng.
o DBCP-537: Update Apache Commons Pool from 2.6.0 to 2.6.1. Thanks to Gary Gregory.
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download page: https://commons.apache.org/dbcp/download_dbcp.cgi
-----------------------------------------------------------------------------
Apache Commons DBCP
Version 2.5.0
RELEASE NOTES
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.5.0.
Apache Commons DBCP software implements Database Connection Pooling.
This is a minor release, including bug fixes and enhancements and requires Java 8 to support JDBC 4.2.
Changes in this version include:
New features:
o DBCP-506: Support JDBC 4.2. Thanks to Gary Gregory.
o DBCP-479: Support default schema in configuration. Thanks to Guillaume Husta, Gary Gregory.
Fixed Bugs:
o DBCP-508: Prepared statement keys should take a Connection's schema into account. Thanks to Gary Gregory.
o DBCP-512: Avoid exceptions when closing a connection in mutli-threaded use case. Thanks to Gary Gregory.
Changes:
o DBCP-505: Update Java requirement from version 7 to 8. Thanks to Gary Gregory.
o DBCP-427: Examines 'SQLException's thrown by underlying connections or statements for fatal (disconnection) errors. Thanks to Vladimir Konkov, Phil Steitz, Gary Gregory.
o DBCP-507: Change default for fail-fast connections from false to true. Thanks to Vladimir Konkov, Phil Steitz, Gary Gregory.
o DBCP-504: Increase test coverage. Thanks to Bruno P. Kinoshita.
o DBCP-510: Update Apache Commons Pool from 2.5.0 to 2.6.0. Thanks to Gary Gregory.
Note that Clirr incorrectly reports one binary incompatible change because it is not aware of Java 8 and default methods:
[ERROR] 7012: org.apache.commons.dbcp2.BasicDataSourceMXBean: Method 'public java.lang.String getDefaultSchema()' has been added to an interface
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
-----------------------------------------------------------------------------
Download page: https://commons.apache.org/dbcp/download_dbcp.cgi
Apache Commons DBCP
Version 2.4.0
RELEASE NOTES
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.4.0.
Apache Commons DBCP software implements Database Connection Pooling.
This is a minor release, including bug fixes and enhancements, which you can download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
Changes in this version include:
Fixed Bugs:
o DBCP-484: Connection leak during XATransaction in high load. Thanks to Emanuel Freitas.
o DBCP-496: Add support for pooling CallableStatements to the org.apache.commons.dbcp2.cpdsadapter package. Thanks to Gary Gregory.
Changes:
o DBCP-492: Drop Ant build. Thanks to Gary Gregory.
o DBCP-491: Ensure DBCP ConnectionListener can deal with transaction managers which invoke rollback in a separate thread. Thanks to Zheng Feng, Gary Gregory.
o DBCP-494: org.apache.commons.dbcp2.PStmtKey should make copies of given arrays in constructors. Thanks to Gary Gregory.
o DBCP-495: Remove duplicate code in org.apache.commons.dbcp2.cpdsadapter.PStmtKeyCPDS. Thanks to Gary Gregory.
o DBCP-497: Deprecate use of PStmtKeyCPDS in favor of PStmtKey. Thanks to Gary Gregory.
o DBCP-498: org.apache.commons.dbcp2.DataSourceConnectionFactory should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-499: org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-500: org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-501: org.apache.commons.dbcp2.datasources.CPDSConnectionFactory should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-502: org.apache.commons.dbcp2.datasources internals should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-503: org.apache.commons.dbcp2.datasources.InstanceKeyDataSourceFactory.closeAll() does not close all. Thanks to Gary Gregory.
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
-----------------------------------------------------------------------------
Apache Commons DBCP
Version 2.3.0
RELEASE NOTES
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.3.0.
Apache Commons DBCP software implements Database Connection Pooling.
This is a minor release, including bug fixes and enhancements.
Changes in this version include:
Fixed Bugs:
o DBCP-476: AbandonedTrace.getTrace() contains race condition Thanks to Gary Evesson, Richard Cordova.
o DBCP-482: Avoid javax.management.InstanceNotFoundException on shutdown when a bean is not registered. Thanks to Dennis Lloyd, Gary Gregory.
Changes:
o DBCP-483: Make constant public: org.apache.commons.dbcp2.PoolingDriver.URL_PREFIX. Thanks to Gary Gregory.
o DBCP-486: DriverAdapterCPDS.setUser(), setPassword(), and getPooledConnection() with null arguments throw NullPointerExceptions when connection properties are set. Thanks to Gary Gregory.
o DBCP-487: Add API org.apache.commons.dbcp2.datasources.PerUserPoolDataSource.clear(). Thanks to Gary Gregory.
o DBCP-488: NPE for org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS.setConnectionProperties(null). Thanks to Gary Gregory.
o DBCP-490: The method org.apache.commons.dbcp2.PoolingDriver.getConnectionPool(String) does not tell you which pool name is not registered when it throws an exception. Thanks to Gary Gregory.
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
-----------------------------------------------------------------------------
Apache Commons DBCP
Version 2.2.0
RELEASE NOTES
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.2.0.
Apache Commons DBCP software implements Database Connection Pooling.
This is a minor release, including bug fixes and enhancements.
Changes in this version include:
New features:
o DBCP-451: Add constructor DriverManagerConnectionFactory(String).
o DBCP-462: Refactoring to prepare for a future patch to enable pooling of all
prepared and callable statements in PoolingConnection. Thanks to Keiichi Fujino.
o DBCP-458: Make it simpler to extend BasicDataSource to allow sub-classes to
provide custom GenericObjectPool implementations. Thanks to Adrian Tarau.
o DBCP-474: Enable pooling of all prepared and callable statements
inPoolingConnection. Thanks to Keiichi Fujino.
Fixed Bugs:
o DBCP-481: Update Apache Commons Pool from 2.4.2 to 2.5.0. Thanks to Gary Gregory.
o DBCP-454: OSGi declarations contain multiple import headers for javax.transaction. Thanks to Philipp Marx, Matt Sicker.
o DBCP-478: Wrong parameter name in site documentation for BasicDataSource Configuration Parameters. Thanks to nicola mele.
o DBCP-452: Add jmxName to properties set by BasicDataSourceFactory. This
enables container-managed pools created from JNDI Resource
definitions to enable JMX by supplying a valid root JMX name.
o DBCP-446: NullPointerException thrown when calling ManagedConnection.isClosed(). Thanks to Gary Gregory, feng yang, Euclides M, Phil Steitz.
o DBCP-444: InvalidateConnection can result in closed connection returned by getConnection.
o DBCP-449: Complete the fix for DBCP-418, enabling PoolableConnection class to load in environments
(such as GAE) where the JMX ManagementFactory is not available. Thanks to Grzegorz D..
o DBCP-455: Ensure that the cacheState setting is used when statement pooling is
disabled. Thanks to Kyohei Nakamura.
o DBCP-453: Ensure that setSoftMinEvictableIdleTimeMillis is used when working with
BasicDataSource. Thanks to Philipp Marx.
o DBCP-456: Correct the name of the configuration attribute
softMinEvictableIdleTimeMillis. Thanks to Kyohei Nakamura.
o DBCP-472: Avoid potential infinite loops when checking if an SQLException is fatal
for a connection or not.
o DBCP-468: Expand the fail-fast for fatal connection errors feature to include
managed connections.
o DBCP-463: Correct a typo in the method name
PoolableConnectionFactory#setMaxOpenPreparedStatements. The old method
remains but is deprecated so not to break clients currently using the
incorrect name.
o DBCP-459: Ensure that a thread's interrupt status is visible to the caller if the
thread is interrupted during a call to
PoolingDataSource.getConnection().
o DBCP-457: When using a BasicDataSource, pass changes related to the handling of
abandoned connections to the underlying pool so that the pool
configuration may be updated dynamically.
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
-----------------------------------------------------------------------------
Apache Commons DBCP
Version 2.1.1
RELEASE NOTES
The Apache Commons DBCP team is pleased to announce the release of Apache Commons DBCP 2.1.1.
Apache Commons DBCP software implements Database Connection Pooling.
This is a patch release, including bug fixes only.
Changes in this version include:
Fixed Bugs:
o DBCP-441: Added BasicDataSource abandonedUsageTracking property missing from BasicDataSourceFactory.
o DBCP-442: SharedPoolDataSource getConnection fails when testOnBorrow is set with
a null validation query.
o DBCP-438: Nested connections in a transaction (local) throws null pointer. Thanks to Raihan Kibria.
o DBCP-437: BasicDataSource does not set disconnectionSql properties on its PoolableConnectionFactory.
Changes:
o Updated pool version to 2.4.2. The fix for POOL-300 may cause DBCP
users to see more reports of abandoned connections (if removal and logging
are configured). Prior to the fix for POOL-300, the PrintWriter used to log
abandoned connection stack traces was not being flushed on each log event.
For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons DBCP website:
https://commons.apache.org/dbcp/
Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
commons-dbcp-rel-commons-dbcp-2.10.0/SECURITY.md 0000664 0000000 0000000 00000001604 14473117325 0021113 0 ustar 00root root 0000000 0000000
The Apache Commons security page is [https://commons.apache.org/security.html](https://commons.apache.org/security.html).
commons-dbcp-rel-commons-dbcp-2.10.0/dbcp-RC.sh 0000775 0000000 0000000 00000004462 14473117325 0021100 0 ustar 00root root 0000000 0000000 #!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -----------------------------------------------------------------------------
# Generates a dbcp RC and publishes (a superset of) maven artifacts to Nexus.
# Should be run from top-level directory of a fresh checkout of the RC tag.
#
# Preconditions:
# 0) dbcp-pre-RC has been run to update the download page and release notes
# and these have been checked in and included in the RC tag.
# 1) Release artifacts from previous runs have been svn deleted from local
# svn pub/sub dev checkout.
# 2) Nexus repo from previous RC has been dropped.
#
# -----------------------------------------------------------------------------
# Set script variables
version=2.4.0
repo_path=~/.m2/repository/org/apache/commons/commons-dbcp2/${version}
release_path=~/dbcp-rc #checkout of https://dist.apache.org/repos/dist/dev/commons/dbcp
#
# Delete any locally installed artifacts from previous runs
rm -rf ${repo_path}
echo "Cleaned maven repo."
#
# Generate site and release artifacts, deploy locally and upload to Nexus
mvn clean site
mvn deploy -Prelease
#
# Copy the zips/tarballs and release notes to the local svn pub path
cp ${repo_path}/*bin.zip* ${release_path}/binaries
cp ${repo_path}/*bin.tar.gz* ${release_path}/binaries
cp ${repo_path}/*src.zip* ${release_path}/source
cp ${repo_path}/*src.tar.gz* ${release_path}/source
cp RELEASE-NOTES.txt ${release_path}
echo "Release candidate complete."
echo "svn add the generated artifacts and commit after inspection."
echo "log in to repository.apache.org, manually (sic) drop the cruft and close the repo."
commons-dbcp-rel-commons-dbcp-2.10.0/dbcp-pre-RC.sh 0000775 0000000 0000000 00000002620 14473117325 0021656 0 ustar 00root root 0000000 0000000 #!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -----------------------------------------------------------------------------
#
# Shell script to update download page and release notes prior
# to preparing a commons dbcp release candidate.
#
# Note: RELEASE-NOTES.txt may need a little reformatting prior
# to checkin. Both RELEASE-NOTES.txt and the generated download
# page need to be checked in after review.
#
# ----------------------------------------------------------------------------
version=2.4.0
mvn changes:announcement-generate -Prelease-notes -Dchanges.version=${version}
mvn commons:download-page -Dcommons.componentid=dbcp -Dcommons.release.version=${version}
commons-dbcp-rel-commons-dbcp-2.10.0/dbcp-release.sh 0000775 0000000 0000000 00000005072 14473117325 0022212 0 ustar 00root root 0000000 0000000 #!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -----------------------------------------------------------------------------
# Performs the local svn steps necessary to publish a dbcp release.
#
# Preconditions:
# 0) Successful release VOTE has completed, based on artifacts in rc_path
# (checkout of https://dist.apache.org/repos/dist/dev/commons/dbcp)
# 1) release_path points to a local checkout of
# https://dist.apache.org/repos/dist/release/commons/dbcp
# 2) RELEASE-NOTES.txt for the new release is in top level of rc_path
#
# NOTE: This script does not do any of the following:
# 0) Commit the local changes to actually publish the artifacts
# 1) Cleanup old versions in dist
#
# -----------------------------------------------------------------------------
# Set script variables
version=2.4.0 # version being released
last_version=2.3.0 # previous version, will be replaced in README.html
rc_path=~/dbcp-rc # checkout of https://dist.apache.org/repos/dist/dev/commons/dbcp
release_path=~/dbcp-release #https://dist.apache.org/repos/dist/release/commons/dbcp
#
# Move release notes
cp $rc_path/RELEASE-NOTES.txt $release_path
svn rm $rc_path/RELEASE-NOTES.txt
#
# Update README.html
sed -i "" "s/$last_version/$version/g" $release_path/README.html
# OSX ^^ required suffix
#
# DBCP uses symlinks, so below not needed unless this changes.
#cp $release_path/README.html $release_path/source
#cp $release_path/README.html $release_path/binaries
# ^^^^^^^^^^ Maybe we can toss these? ^^^^^^^
#
# Move release artifacts
svn mv $rc_path/source/* $release_path/source
svn mv $rc_path/binaries/* $release_path/binaries
#
echo "Local svn changes complete."
echo "Inspect the files in $release_path and commit to publish the release."
echo "Also remember to commit $rc_path to drop RC artifacts and svn rm"
echo "obsolete artifacts from $release_path."
commons-dbcp-rel-commons-dbcp-2.10.0/doc/ 0000775 0000000 0000000 00000000000 14473117325 0020066 5 ustar 00root root 0000000 0000000 commons-dbcp-rel-commons-dbcp-2.10.0/doc/BasicDataSourceExample.java 0000664 0000000 0000000 00000010662 14473117325 0025246 0 ustar 00root root 0000000 0000000 /*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
//
// Here are the dbcp-specific classes.
// Note that they are only used in the setupDataSource
// method. In normal use, your classes interact
// only with the standard JDBC API
//
import org.apache.commons.dbcp2.BasicDataSource;
//
// Here's a simple example of how to use the BasicDataSource.
//
//
// Note that this example is very similar to the PoolingDriver
// example.
//
// To compile this example, you'll want:
// * commons-pool-2.3.jar
// * commons-dbcp-2.1.jar
// in your classpath.
//
// To run this example, you'll want:
// * commons-pool-2.3.jar
// * commons-dbcp-2.1.jar
// * commons-logging-1.2.jar
// in your classpath.
//
//
// Invoke the class using two arguments:
// * the connect string for your underlying JDBC driver
// * the query you'd like to execute
// You'll also want to ensure your underlying JDBC driver
// is registered. You can use the "jdbc.drivers"
// property to do this.
//
// For example:
// java -Djdbc.drivers=org.h2.Driver \
// -classpath commons-pool2-2.3.jar:commons-dbcp2-2.1.jar:commons-logging-1.2.jar:h2-1.3.152.jar:. \
// BasicDataSourceExample \
// "jdbc:h2:~/test" \
// "SELECT 1"
//
public class BasicDataSourceExample {
public static void main(String[] args) {
// First we set up the BasicDataSource.
// Normally this would be handled auto-magically by
// an external configuration, but in this example we'll
// do it manually.
//
System.out.println("Setting up data source.");
DataSource dataSource = setupDataSource(args[0]);
System.out.println("Done.");
//
// Now, we can use JDBC DataSource as we normally would.
//
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
try {
System.out.println("Creating connection.");
conn = dataSource.getConnection();
System.out.println("Creating statement.");
stmt = conn.createStatement();
System.out.println("Executing statement.");
rset = stmt.executeQuery(args[1]);
System.out.println("Results:");
int numcols = rset.getMetaData().getColumnCount();
while(rset.next()) {
for(int i=1;i<=numcols;i++) {
System.out.print("\t" + rset.getString(i));
}
System.out.println("");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rset != null)
rset.close();
} catch (Exception e) {
}
try {
if (stmt != null)
stmt.close();
} catch (Exception e) {
}
try {
if (conn != null)
conn.close();
} catch (Exception e) {
}
}
}
public static DataSource setupDataSource(String connectURI) {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("org.h2.Driver");
ds.setUrl(connectURI);
return ds;
}
public static void printDataSourceStats(DataSource ds) {
BasicDataSource bds = (BasicDataSource) ds;
System.out.println("NumActive: " + bds.getNumActive());
System.out.println("NumIdle: " + bds.getNumIdle());
}
public static void shutdownDataSource(DataSource ds) throws SQLException {
BasicDataSource bds = (BasicDataSource) ds;
bds.close();
}
}
commons-dbcp-rel-commons-dbcp-2.10.0/doc/PoolingDataSourceExample.java 0000664 0000000 0000000 00000014370 14473117325 0025634 0 ustar 00root root 0000000 0000000 /*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
//
// Here are the dbcp-specific classes.
// Note that they are only used in the setupDataSource
// method. In normal use, your classes interact
// only with the standard JDBC API
//
import org.apache.commons.pool2.ObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.dbcp2.ConnectionFactory;
import org.apache.commons.dbcp2.PoolableConnection;
import org.apache.commons.dbcp2.PoolingDataSource;
import org.apache.commons.dbcp2.PoolableConnectionFactory;
import org.apache.commons.dbcp2.DriverManagerConnectionFactory;
//
// Here's a simple example of how to use the PoolingDataSource.
//
//
// Note that this example is very similar to the PoolingDriver
// example. In fact, you could use the same pool in both a
// PoolingDriver and a PoolingDataSource
//
//
// To compile this example, you'll want:
// * commons-pool2-2.3.jar
// * commons-dbcp2-2.1.jar
// in your classpath.
//
// To run this example, you'll want:
// * commons-pool2-2.3.jar
// * commons-dbcp2-2.1.jar
// * commons-logging-1.2.jar
// * the classes for your (underlying) JDBC driver
// in your classpath.
//
// Invoke the class using two arguments:
// * the connect string for your underlying JDBC driver
// * the query you'd like to execute
// You'll also want to ensure your underlying JDBC driver
// is registered. You can use the "jdbc.drivers"
// property to do this.
//
// For example:
// java -Djdbc.drivers=org.h2.Driver \
// -classpath commons-pool2-2.3.jar:commons-dbcp2-2.1.jar:commons-logging-1.2.jar:h2-1.3.152.jar:. \
// PoolingDataSourceExample \
// "jdbc:h2:~/test" \
// "SELECT 1"
//
public class PoolingDataSourceExample {
public static void main(String[] args) {
//
// First we load the underlying JDBC driver.
// You need this if you don't use the jdbc.drivers
// system property.
//
System.out.println("Loading underlying JDBC driver.");
try {
Class.forName("org.h2.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("Done.");
//
// Then, we set up the PoolingDataSource.
// Normally this would be handled auto-magically by
// an external configuration, but in this example we'll
// do it manually.
//
System.out.println("Setting up data source.");
DataSource dataSource = setupDataSource(args[0]);
System.out.println("Done.");
//
// Now, we can use JDBC DataSource as we normally would.
//
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
try {
System.out.println("Creating connection.");
conn = dataSource.getConnection();
System.out.println("Creating statement.");
stmt = conn.createStatement();
System.out.println("Executing statement.");
rset = stmt.executeQuery(args[1]);
System.out.println("Results:");
int numcols = rset.getMetaData().getColumnCount();
while(rset.next()) {
for(int i=1;i<=numcols;i++) {
System.out.print("\t" + rset.getString(i));
}
System.out.println("");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rset != null)
rset.close();
} catch (Exception e) {
}
try {
if (stmt != null)
stmt.close();
} catch (Exception e) {
}
try {
if (conn != null)
conn.close();
} catch (Exception e) {
}
}
}
public static DataSource setupDataSource(String connectURI) {
//
// First, we'll create a ConnectionFactory that the
// pool will use to create Connections.
// We'll use the DriverManagerConnectionFactory,
// using the connect string passed in the command line
// arguments.
//
ConnectionFactory connectionFactory =
new DriverManagerConnectionFactory(connectURI, null);
//
// Next we'll create the PoolableConnectionFactory, which wraps
// the "real" Connections created by the ConnectionFactory with
// the classes that implement the pooling functionality.
//
PoolableConnectionFactory poolableConnectionFactory =
new PoolableConnectionFactory(connectionFactory, null);
//
// Now we'll need a ObjectPool that serves as the
// actual pool of connections.
//
// We'll use a GenericObjectPool instance, although
// any ObjectPool implementation will suffice.
//
ObjectPool connectionPool =
new GenericObjectPool<>(poolableConnectionFactory);
// Set the factory's pool property to the owning pool
poolableConnectionFactory.setPool(connectionPool);
//
// Finally, we create the PoolingDriver itself,
// passing in the object pool we created.
//
PoolingDataSource dataSource =
new PoolingDataSource<>(connectionPool);
return dataSource;
}
}
commons-dbcp-rel-commons-dbcp-2.10.0/doc/PoolingDriverExample.java 0000664 0000000 0000000 00000016645 14473117325 0025044 0 ustar 00root root 0000000 0000000 /*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.dbcp2.ConnectionFactory;
import org.apache.commons.dbcp2.DriverManagerConnectionFactory;
import org.apache.commons.dbcp2.PoolableConnection;
import org.apache.commons.dbcp2.PoolableConnectionFactory;
import org.apache.commons.dbcp2.PoolingDriver;
//
// Here are the dbcp-specific classes.
// Note that they are only used in the setupDriver
// method. In normal use, your classes interact
// only with the standard JDBC API
//
import org.apache.commons.pool2.ObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPool;
//
// Here's a simple example of how to use the PoolingDriver.
//
// To compile this example, you'll want:
// * commons-pool-2.3.jar
// * commons-dbcp-2.1.jar
// in your classpath.
//
// To run this example, you'll want:
// * commons-pool-2.3.jar
// * commons-dbcp-2.1.jar
// * commons-logging-1.2.jar
// in your classpath.
//
// Invoke the class using two arguments:
// * the connect string for your underlying JDBC driver
// * the query you'd like to execute
// You'll also want to ensure your underlying JDBC driver
// is registered. You can use the "jdbc.drivers"
// property to do this.
//
// For example:
// java -Djdbc.drivers=org.h2.Driver \
// -classpath commons-pool2-2.3.jar:commons-dbcp2-2.1.jar:commons-logging-1.2.jar:h2-1.3.152.jar:. \
// PoolingDriverExample \
// "jdbc:h2:~/test" \
// "SELECT 1"
//
public class PoolingDriverExample {
public static void main(String[] args) {
//
// First we load the underlying JDBC driver.
// You need this if you don't use the jdbc.drivers
// system property.
//
System.out.println("Loading underlying JDBC driver.");
try {
Class.forName("org.h2.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("Done.");
//
// Then we set up and register the PoolingDriver.
// Normally this would be handled auto-magically by
// an external configuration, but in this example we'll
// do it manually.
//
System.out.println("Setting up driver.");
try {
setupDriver(args[0]);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Done.");
//
// Now, we can use JDBC as we normally would.
// Using the connect string
// jdbc:apache:commons:dbcp:example
// The general form being:
// jdbc:apache:commons:dbcp:
//
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
try {
System.out.println("Creating connection.");
conn = DriverManager.getConnection("jdbc:apache:commons:dbcp:example");
System.out.println("Creating statement.");
stmt = conn.createStatement();
System.out.println("Executing statement.");
rset = stmt.executeQuery(args[1]);
System.out.println("Results:");
int numcols = rset.getMetaData().getColumnCount();
while(rset.next()) {
for(int i=1;i<=numcols;i++) {
System.out.print("\t" + rset.getString(i));
}
System.out.println("");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rset != null)
rset.close();
} catch (Exception e) {
}
try {
if (stmt != null)
stmt.close();
} catch (Exception e) {
}
try {
if (conn != null)
conn.close();
} catch (Exception e) {
}
}
// Display some pool statistics
try {
printDriverStats();
} catch (Exception e) {
e.printStackTrace();
}
// closes the pool
try {
shutdownDriver();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void setupDriver(String connectURI) throws Exception {
//
// First, we'll create a ConnectionFactory that the
// pool will use to create Connections.
// We'll use the DriverManagerConnectionFactory,
// using the connect string passed in the command line
// arguments.
//
ConnectionFactory connectionFactory =
new DriverManagerConnectionFactory(connectURI, null);
//
// Next, we'll create the PoolableConnectionFactory, which wraps
// the "real" Connections created by the ConnectionFactory with
// the classes that implement the pooling functionality.
//
PoolableConnectionFactory poolableConnectionFactory =
new PoolableConnectionFactory(connectionFactory, null);
//
// Now we'll need a ObjectPool that serves as the
// actual pool of connections.
//
// We'll use a GenericObjectPool instance, although
// any ObjectPool implementation will suffice.
//
ObjectPool connectionPool =
new GenericObjectPool<>(poolableConnectionFactory);
// Set the factory's pool property to the owning pool
poolableConnectionFactory.setPool(connectionPool);
//
// Finally, we create the PoolingDriver itself...
//
Class.forName("org.apache.commons.dbcp2.PoolingDriver");
PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");
//
// ...and register our pool with it.
//
driver.registerPool("example", connectionPool);
//
// Now we can just use the connect string "jdbc:apache:commons:dbcp:example"
// to access our pool of Connections.
//
}
public static void printDriverStats() throws Exception {
PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");
ObjectPool extends Connection> connectionPool = driver.getConnectionPool("example");
System.out.println("NumActive: " + connectionPool.getNumActive());
System.out.println("NumIdle: " + connectionPool.getNumIdle());
}
public static void shutdownDriver() throws Exception {
PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");
driver.closePool("example");
}
}
commons-dbcp-rel-commons-dbcp-2.10.0/doc/README.txt 0000664 0000000 0000000 00000002707 14473117325 0021572 0 ustar 00root root 0000000 0000000 ===================================================================================
Before running these examples make sure you have registered the database
driver you want to use. If you don't you will get the following error:
"org.apache.commons.dbcp2.DbcpException: java.sql.SQLException: No suitable driver"
The DriverManager class will attempt to load the driver classes referenced
in the "jdbc.drivers" system property. For example you might specify
-Djdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver
as command line argument to the java VM.
A program can also explicitly load JDBC drivers at any time. For
example, the my.sql.Driver is loaded with the following statement:
Class.forName("my.sql.Driver");
===================================================================================
PoolingDriverExample.java
Provides a simple example of how to use the DBCP package with a
PoolingDriver.
Look at the comments with that file for instructions on how to
build and run it.
PoolingDataSource.java
Provides a simple example of how to use the DBCP package with a
PoolingDataSource.
Look at the comments with that file for instructions on how to
build and run it.
See also the Javadoc documentation (use "ant doc" to generate it),
especially the package documentation for org.apache.commons.dbcp
for an overview of how it all works.
The test cases (the source files whose names start with "Test")
provide some additional examples.
commons-dbcp-rel-commons-dbcp-2.10.0/doc/abandon.jsp 0000664 0000000 0000000 00000011120 14473117325 0022201 0 ustar 00root root 0000000 0000000
Couldn't build an initial context : " + e);
return null;
}
try {
Object value = ctx.lookup("java:/comp/env/jdbc/abandoned");
out.println("
DataSource lookup");
out.println("
jdbc value : " + value);
out.println("
jdbc class : " + value.getClass().getName());
out.println("
");
if (value instanceof DataSource) {
return (DataSource) value;
}
else {
return null;
}
} catch (NamingException e) {
out.println("
JNDI lookup failed : " + e);
return null;
}
}
private void getConnection1(DataSource ds, JspWriter out) throws Exception {
System.err.println("BEGIN getConnection1()");
out.println("
BEGIN getConnection1()");
Connection conn = ds.getConnection();
System.err.println("conn: " + conn);
out.println("
conn: " + conn);
System.err.println("END getConnection1()");
out.println("
END getConnection1()");
}
private void getConnection2(DataSource ds, JspWriter out) throws Exception {
System.err.println("BEGIN getConnection2()");
out.println("
BEGIN getConnection2()");
Connection conn = ds.getConnection();
System.err.println("conn: " + conn);
out.println("
conn: " + conn);
System.err.println("END getConnection2()");
out.println("
END getConnection2()");
}
private void getConnection3(DataSource ds, JspWriter out) throws Exception {
System.err.println("BEGIN getConnection3()");
out.println("
BEGIN getConnection3()");
Connection conn = ds.getConnection();
System.err.println("conn: " + conn);
out.println("
conn: " + conn);
System.err.println("END getConnection3()");
out.println("
END getConnection3()");
}
]]>
DBCP Abandoned Connection Test
DBCP Abandoned Connection Test
DataSource ds = getDataSource(out);
if (ds != null) {
getConnection1(ds, out);
getConnection2(ds, out);
getConnection3(ds, out);
}
OK
commons-dbcp-rel-commons-dbcp-2.10.0/doc/static_structure_dia.gif 0000664 0000000 0000000 00000023643 14473117325 0025011 0 ustar 00root root 0000000 0000000 GIF89a#÷ũ ĀĀĀĀÜĀĻĘđ@ ` Ā ā @ @ @@ `@ @ @ Ā@ ā@ ` ` @` `` ` ` Ā` ā` @ ` Ā ā @ ` Ā ā Ā Ā @Ā `Ā Ā Ā ĀĀ āĀ ā ā @ā `ā ā ā Āā āā @ @@ @` @ @ @Ā @ā @ @ @@ @` @ @ @Ā @ā @ @@ @@@@@`@@@@ @@Ā@@ā@@ `@ `@@`@``@`@ `@Ā`@ā`@ @ @@@`@@ @Ā@ā@ @ @@ @` @ @ @Ā @ā @ Ā@ Ā@@Ā@`Ā@Ā@ Ā@ĀĀ@āĀ@ ā@ ā@@ā@`ā@ā@ ā@Āā@āā@ @ ` Ā ā @ ` Ā ā @ @@@`@@ @Ā@ā@ ` `@```` `Ā`ā` @` Āā @ ` Ā ā Ā Ā@Ā`ĀĀ ĀĀĀāĀ ā ā@ā`āā āĀāāā Ā Ā@ Ā` Ā Ā ĀĀ Āā Ā Ā Ā@ Ā` Ā Ā ĀĀ Āā Ā @Ā @Ā@@Ā`@Ā@Ā @ĀĀ@Āā@Ā `Ā `Ā@`Ā``Ā`Ā `ĀĀ`Āā`Ā Ā Ā@Ā`ĀĀ ĀĀĀāĀ Ā Ā@ Ā` Ā Ā ĀĀ Āā Ā ĀĀ ĀĀ@ĀĀ`ĀĀĀĀ ĀĀ˙ûđ ¤˙ ˙ ˙˙ ˙˙ ˙ ˙˙˙˙˙!ų ũ , #@ū û H° Á*\ȰĄÃ#JHąĸÅ3jÜČąŖĮ CI˛¤É(SĒ\ɲĨË Æ)pæAq>´YRįË@oÄéŗbQGwæ:0éE§FûA
JĩĒÕĢXŗjŨ:5b×>ŋ6@VėÖŗ
ÍĒT%ÛļpãĘKˇŽŌĻ2ĨâĨYŦ^ŧ5ËūmÚ7°ĐÁ<ˇ&âĮ};ÖKô1ãÄ˙úĩ{w0åÉgæë82dÂ~IWŽ|y2ãŌ{ĨVxķęØymĒöüįmÃNŧ8ČŽo+î4ųōįĐŖKNķęØé^ĪÎŊģ÷īāÃūŋO^{ųķčĶĢ_v;û÷#ŨÃOŋž}ōōīëēŋŋ˙˙ B_"Uā&¨āJ.x`F(áũAHá^¨ávčĄx~(âvđĪ(ύâ,ļčâ0Æ(ã4ÖhŖ!hŪ&Ūčã@)ä7æ¨ãO=9d=
ĸ˙(%QJeVfųäPZФ|MĩŲÁy^_â¨bd=ŲæWĸg\rųfSz ']ĻY$ĪÉéį jčf¨2$čĄF*éVjéxkMĒéĻļØčR*ę¨m}V§5ĘŲduîŲ*ĢūpÖ ëŦ¨Â¨ĶEęŽŧöęŠ =Zë°Ä. ¯ČN(ląĖ6;#°vmJU7íPÎfĢ-ÉÆĩlLÆĒ§áŽë˛ļē'ånųfģęFfN^{ŦrÍYͤÂnŦú+kĀâëŋã+oˇp}ģíÃÍÚ_t¤č0Ä×*1ÃwLt{,ōČ$2I'ŦōĘ,#˛H/ˇ,ķĖ4ŗíÅįŧiĖķņ\ķĪŧŪL(ģŽM+FŋēĻJ'mt_M=Ģ8ŋčķ{ˇļÚlŽÕļ×ÉZlĻ1Q\{VąÚm`a
ôÜ- ķŨÅ^m3ūŨ|÷
ŪUë7xļåĒŽˇ9vm{U,ˇØõ¸ÜYŗFųŧAÎøæq^Ú w=øč
h6éøvĻõæĸĄæ˛
í:äĢ6ųÛŠáúîO8ī jô;đÄ?č{ņAáüō˧uzęÍG/ũôɡ
=õØg}ÕxwīįđqīũøÆIūų¯}°6úđûŦîûîÖ.Â÷y?ēå,ūĀ Ūūįĸ;)Mj×ēĸÆĀĸŨxzWĨF5ą%ķ3X¤IUd ąÄ4§Ah'ä×ú´ž9.á.)xP8ÄŌ
E%¸úđū@ÄNžHÄ"ą8=<ĸČD¨¯P"(Å*Z{T|PˇhÁ+zŅAYüΞ57iĢē´ä&&pū+ÚF;ÅQPmJc õˇ%Ģ}ņ.ëÕšHH
ŦĘ!ĨČF:r9äN$IÉJˤ&mXČNÚJxÂķ¤(Y4ÉMzņ@ĸŌMhÆVŌÉÄŌ[ÉG
ę(+]FPŲÆpe
ãû(ĖWÚqkĸÚģôL"ŌVäå(Ŋ7ÆPNķĪĻ6ÍmzķÖ '8ĮINe]ĨåL§:˛AÚą_í[ŧ.zĒļūęâ:÷IˇgJSS˙Ü"ģøIPŋ
1 ×Ė:ĘPũ,´Ą¨é$JŅ.ĒAĩ¨F7zū´æo^š$FÄ$Îēqô¤,3KF'ĮĄôĨĸkžß.4¸qŪLySĶ`õ6Y{PtŗSĄâ4WÃLjĐ×,FÖãéė<˛6#ÕZ)SˇĘ!ęĘ"ō*WĮĘ(¤¨g]YmzÔ°ĩ5sjŖiPĮ˛ÚÕbŊĢ^÷j¸°ä¨ąŖĢeØzVŲõŧÁnl*Rž:y},E#+3ĘJö˛ĒSĖbûŋFõ0ũë`ÔÖ8N3FĩLy$gÚhÉ4ĸ-ū-be+:ÖĻąŊSHšZŗĘåķtÕ]*/pĨKÕFK>SÜgAëRâ.% .éō[Ŧt×Ãõ)#ĩ[Pĩ|7hÍ%¯zšĶõē3įĨY|ßŌųÖĖžôĩ(~īßūŗžū
0`ē_ø>°!ģā "4ĄK°ÉáQJŲáūČeŋ<ŗrüļĐzmôdN §ĻA_.pNîs 2EÜŠķ¨ÂĸDņ÷
ãNÚ¸Áņáq Šc y-B0&.všŅĢ\eg(ãéĮGN'\Č"gÂ\æĸŗ#VĪęëWasū§ė)DŠQ 3&>ålŽ4ÂŌz˛*Ā`ŲĒHī
Ølĩ7p]q˛ÆL)įų&t×fNd&Ģt˙üåQĶĩ>-ęRÔĻNõíĻiZģí\O¤jæ*UšĒ¤[Õ¯7O
Î.Ļ'>§bCãŲÍoĻåĄĄL)A*×ČbuĢ]øjĒTŽŽŗmZŌÖ°i¸ģļļÄéV¨ĐnOī[Ņã˛;Ũ§TdēOw_u<Ø[áęÉøFÛáwgo
ī˛bzöÆuÁYUHZ˛ÚOŠxņ[ĶøÅ7iĮ°ö¸¤ūhx(N}īØ˙đčëWëײŧŗ].sKŲ~˛DôÍlnõy(tfąæJÉOvĨÍYs{;éĩD%
Ŗlbë9á@
ĒMôî/îâzÎël`Q/=ûÉ
ōĩ¯ín_ĘĩYkÛŊŧĶŊģŪ×9÷ŊûũR}˙ģāÉøÅ]î¸AļâŗëđņŖgŋlÃ`§|b´'
w5ˇĐŪĶÎ>ŊęÉúÕģūāģ2ũëOĒvŌSyŖˇŊBgēÚQ._`
YiĖ2~!Ŋ
įÚ§,iůüÁųęG~Ļ;ū¯OŪÎ÷ēR5w~ÉŪûúEŋúžūölxįwŋü\=ō?cņ?7æÎsÅYNŌ. øvčt8}Kw@ hKPŖa3.ú§w~÷×}čwų81øS"¸jÎ5&4oÁ\EÕZR[ßļVãöQ˙FXøYõ1UäV[w{Ė'^9ī\*hm>ER%!y§P¸S8į6ē6,(pXZ4heUĻVpåmú@ÕQxEjX2Gx;ģa9Ą8Tn°s9SnsmAŗ~d2(CWØpŦS;ūĄÃ8pss8UpŖ;?8FŪ´]eä
ÂČÎņ5[ŗmļs[§ÕY´UŠ(WĒåHYøoįŲ&KhŪ48TĩøõÁ]8ØoŊ1/3
%FbWø9ŗÃU[nu6xx&7USVÖoȸ8cŖĶ[_¨Tn¸SpŪ8qkĸ%Â"üäīČ0U%šŗĮu8ãĨ<¸;q´šm)ÕÕ;IĩYúö¸Y;Ė×wč:šŦcVhE[ÖVf8Īf=enØ:[s,yū3ظČuu;¸o¸X2ZÕē)p< čļ1i°wčLŠQb!Áe]Q QTWI`íĩ Ö^šca9"XĮwe~í%l kųE&ņH{vyxęDGâ|i\ĒPŗfę9įp=(!dēuDVŠZē3u)o6ĒÚŠPēĒŦ:ĨŌǞ:Ģ ¤Ŗv<ļĢ÷ļnēÚĢĮĻžŦkJqÂZŦĘÆjŦ7CĢĖĘĒŅŦ"m¨ēuĪ
¸k]:Äšo
y?Ō§j2rÕ
[o(ÛxŊC ;BY gŅEĶ)pĄ˙W(ę'úa*:§~*~ãĘK9WųöÆČmäøŽ5WėČo/yyi¯éųŠ^G°žŌÅjąĶ
P{Ž,eŋēĢļ\¸ŦÍÚū˛J˛=ĩmûZDYw
×mŠŗ8ÛXu8]jq8*u§(hĘõĘĢCwÁã6&q-![pe&hõ_XnV6 Ã˛ÖĩwčĶqh_Ĩ´ņ]#kļ÷j2ĸlK!nKw2ĩžZeâq[YÃ:vģˇ_iĩy¸K°J¸)˛Ä¸>č˛K¤Ėņ¸Ë ;šK i÷ąC[c)&ך¤Z_ņ¤ęĨÂŽ÷
Ļ*FŠĨŪ5C-ÚĄū÷Ļ´Ë}_ērBrß#ģZŖ'§ĩkētĒēĀéē´WēZ?Ėų¯Gy
t}Đ;ŊwÔxū$¨O
§āēyÔˇĸûęŧÛû§Ķ°ũy7´+žÜËtŠ1ܡžr$°xēáËĸā÷ˇ&ēÂû~vĻÖ6rlFO4ZĻ[CÍ
ą¤Ā.Ģŋ k>\§đÁĖQ{Á0Z&ŧÁØYšüÁĸé~˸$LOXÂ(|Â,lRîØÂ0|ļ1<ÃÔBÃ6,z7èÃ<ˇ|Â@=FGÁ|6Ä ŋØzŧŠ{ŧŗĢŧ&>ēëLHŧФԤdŊüĻzg¨ģ]žķÛøęŊÎŧ TÅ^ögÄŠdjŧÆą{nüBqzl|ĮĸĻÄéĨĮYÆĮūMëĮÜz<Čy\ČGČVČúUĮģĢp`åČlĮČ,ÉŧÉFaÉvLÉuŅÆ+tĘËē>ęg Ú|,~ļÛēOʡ+ĘâĘÉâ+BZ}NĶKŅûŧĩg'§\ĻZ|y*GKcËe,ŋ{úOÜú+Žä(D8Rʰ Ë,TÍ{mŦÍTÍq Î
ÜĖâjä\ÎZRčāsÎëÜŪõÎIŨėÍ+Ī+ô2XlĪĪ$čÂÔ<Ļ0ŋptĖôtOvĐ4ilŌrĮt
=žW'öîėĪęÍņÛŊļ,ĖÚgsKgČLÆdÆøŅ:ūP]D´Ā=zŅ+í-ráŌ
Ķ1=Ķ7]Å6ĶũĩĶũĶîÔB^D]ÔÚGÔc VLŦ%)ęptx69k
ēÅFI=é4y°/ųÔģ]ũ¨Úėú#ųēcHŲĨėŽ]ČpšŠˇŗ´dũĪÜ×É
æVÕcuwØ^Í6ÕCéŗ¯Ķ:Ŗč^K#Øx}I^[]M×ɰîēÖqíocXĢ ÖĻ}ŲũHGøÚqkÚmíūH
â¨YPûTåX8Uä&ûA˛ŨP*ZŗÔ¸ØšØØŧūi5ØŅaÜsŠŨ+M\!âEû\ÜŊ`Ë-nҏպb¸ēČŪGYŪë5ĩĪ},ßF6
SéË:iX6ßßĻßXŲd{ÜŠŪā\¨qß´žWšÔŽÎážŧŖ Ž2.F#9ĩFRĻbĄĸßYŊlÖŊ\ß%(ĩ'T*ÉÎH¯