Merge from master
This commit is contained in:
15
.gitattributes
vendored
15
.gitattributes
vendored
@@ -1 +1,16 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
* text=auto
|
* text=auto
|
||||||
|
|||||||
28
.github/pull_request_template.md
vendored
Normal file
28
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
Thanks for your contribution to [Apache Commons](https://commons.apache.org/)! Your help is appreciated!
|
||||||
|
|
||||||
|
Before you push a pull request, review this list:
|
||||||
|
|
||||||
|
- [ ] Read the [contribution guidelines](CONTRIBUTING.md) for this project.
|
||||||
|
- [ ] Run a successful build using the default [Maven](https://maven.apache.org/) goal with `mvn`; that's `mvn` on the command line by itself.
|
||||||
|
- [ ] Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied. This may not always be possible but is a best-practice.
|
||||||
|
- [ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
|
||||||
|
- [ ] Each commit in the pull request should have a meaningful subject line and body. Note that commits might be squashed by a maintainer on merge.
|
||||||
8
.github/workflows/codeql-analysis.yml
vendored
8
.github/workflows/codeql-analysis.yml
vendored
@@ -48,7 +48,7 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
|
- uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
|
||||||
with:
|
with:
|
||||||
path: ~/.m2/repository
|
path: ~/.m2/repository
|
||||||
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
||||||
@@ -57,7 +57,7 @@ jobs:
|
|||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # 3.27.5
|
uses: github/codeql-action/init@dd746615b3b9d728a6a37ca2045b68ca76d4841a # 3.28.8
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
@@ -68,7 +68,7 @@ jobs:
|
|||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
# 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)
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # 3.27.5
|
uses: github/codeql-action/autobuild@dd746615b3b9d728a6a37ca2045b68ca76d4841a # 3.28.8
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
# 📚 https://git.io/JvXDl
|
# 📚 https://git.io/JvXDl
|
||||||
@@ -82,4 +82,4 @@ jobs:
|
|||||||
# make release
|
# make release
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # 3.27.5
|
uses: github/codeql-action/analyze@dd746615b3b9d728a6a37ca2045b68ca76d4841a # 3.28.8
|
||||||
|
|||||||
2
.github/workflows/maven.yml
vendored
2
.github/workflows/maven.yml
vendored
@@ -39,7 +39,7 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK ${{ matrix.java }}
|
- name: Set up JDK ${{ matrix.java }}
|
||||||
uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
|
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
java-version: ${{ matrix.java }}
|
java-version: ${{ matrix.java }}
|
||||||
|
|||||||
4
.github/workflows/scorecards-analysis.yml
vendored
4
.github/workflows/scorecards-analysis.yml
vendored
@@ -57,13 +57,13 @@ jobs:
|
|||||||
publish_results: true
|
publish_results: true
|
||||||
|
|
||||||
- name: "Upload artifact"
|
- name: "Upload artifact"
|
||||||
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # 4.4.3
|
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # 4.6.0
|
||||||
with:
|
with:
|
||||||
name: SARIF file
|
name: SARIF file
|
||||||
path: results.sarif
|
path: results.sarif
|
||||||
retention-days: 5
|
retention-days: 5
|
||||||
|
|
||||||
- name: "Upload to code-scanning"
|
- name: "Upload to code-scanning"
|
||||||
uses: github/codeql-action/upload-sarif@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # 3.27.5
|
uses: github/codeql-action/upload-sarif@dd746615b3b9d728a6a37ca2045b68ca76d4841a # 3.28.8
|
||||||
with:
|
with:
|
||||||
sarif_file: results.sarif
|
sarif_file: results.sarif
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -29,3 +29,4 @@
|
|||||||
|
|
||||||
### VS Code ###
|
### VS Code ###
|
||||||
.vscode/
|
.vscode/
|
||||||
|
/.DS_Store
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
(the "License"); you may not use this file except in compliance with
|
(the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@@ -60,18 +60,21 @@ Making Changes
|
|||||||
--------------
|
--------------
|
||||||
|
|
||||||
+ Create a _topic branch_ for your isolated work.
|
+ Create a _topic branch_ for your isolated work.
|
||||||
* Usually you should base your branch on the `master` branch.
|
* Usually you should base your branch from the `master` branch.
|
||||||
* A good topic branch name can be the JIRA bug ID plus a keyword, e.g. `LOGGING-123-InputStream`.
|
* A good topic branch name can be the JIRA bug ID plus a keyword, e.g. `LOGGING-123-InputStream`.
|
||||||
* If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests.
|
* If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests.
|
||||||
+ Make commits of logical units.
|
+ 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.
|
* 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. `LOGGING-123: Close input stream earlier`
|
* For example, `[LOGGING-123] Close input stream sooner`
|
||||||
+ Respect the original code style:
|
+ Respect the original code style:
|
||||||
+ Only use spaces for indentation.
|
+ Only use spaces for indentation; you can check for unnecessary whitespace with `git diff` before committing.
|
||||||
+ 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.
|
+ 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.
|
+ Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied. This may not always be possible but is a best-practice.
|
||||||
+ Make sure you have added the necessary tests for your changes, typically in `src/test/java`.
|
Unit tests are typically in the `src/test/java` directory.
|
||||||
+ Run all the tests with `mvn clean verify` to ensure nothing else was accidentally broken.
|
+ Run a successful build using the default [Maven](https://maven.apache.org/) goal with `mvn`; that's `mvn` on the command line by itself.
|
||||||
|
+ Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
|
||||||
|
+ Each commit in the pull request should have a meaningful subject line and body. Note that commits might be squashed by a maintainer on merge.
|
||||||
|
|
||||||
|
|
||||||
Making Trivial Changes
|
Making Trivial Changes
|
||||||
----------------------
|
----------------------
|
||||||
@@ -79,7 +82,7 @@ Making Trivial Changes
|
|||||||
The JIRA tickets are used to generate the changelog for the next release.
|
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.
|
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.
|
In this case, it is appropriate to start the first line of a commit with '[doc]' or '[javadoc]' instead of a ticket number.
|
||||||
|
|
||||||
|
|
||||||
Submitting Changes
|
Submitting Changes
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Apache Commons Logging
|
Apache Commons Logging
|
||||||
Copyright 2001-2024 The Apache Software Foundation
|
Copyright 2001-2025 The Apache Software Foundation
|
||||||
|
|
||||||
This product includes software developed at
|
This product includes software developed at
|
||||||
The Apache Software Foundation (https://www.apache.org/).
|
The Apache Software Foundation (https://www.apache.org/).
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>Proposal for Logging Library Package</title>
|
<title>Proposal for Logging Library Package</title>
|
||||||
</head>
|
</head>
|
||||||
<body bgcolor="white">
|
<body>
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<h1>Proposal for <em>Logging</em> Package</h1>
|
<h1>Proposal for <em>Logging</em> Package</h1>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
(the "License"); you may not use this file except in compliance with
|
(the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
|||||||
@@ -12,6 +12,47 @@ Changes in this version
|
|||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
Fixed Bugs
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Javadoc is missing its Overview page. Thanks to Gary Gregory.
|
||||||
|
* Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory.
|
||||||
|
|
||||||
|
Changes
|
||||||
|
-------
|
||||||
|
|
||||||
|
* Bump org.apache.commons:commons-parent from 72 to 81 #285, #287, #295, #298, #303, #310, #339. Thanks to Gary Gregory, Dependabot.
|
||||||
|
* Bump org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0 #288 [test]. Thanks to Gary Gregory, Dependabot.
|
||||||
|
* Bump log4j2.version from 2.23.1 to 2.24.3 #292, #299, #319, #328. Thanks to Gary Gregory, Dependabot.
|
||||||
|
|
||||||
|
Removed:
|
||||||
|
* Remove "cobertura" plugin, we use JaCoco, Cobertura is unmaintained. Thanks to Gary Gregory.
|
||||||
|
|
||||||
|
Historical list of changes: https://commons.apache.org/proper/commons-logging/changes.html
|
||||||
|
|
||||||
|
Download it from https://commons.apache.org/proper/commons-logging/download_logging.cgi
|
||||||
|
|
||||||
|
For complete information on Apache Commons Logging, including instructions on how to submit bug reports,
|
||||||
|
patches, or suggestions for improvement, see the Apache Commons Logging website:
|
||||||
|
|
||||||
|
https://commons.apache.org/proper/commons-logging/
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Apache Commons Logging 1.3.5 Release Notes
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
The Apache Commons Logging team is pleased to announce the release of Apache Commons Logging 1.3.5.
|
||||||
|
|
||||||
|
Apache Commons Logging is a thin adapter allowing configurable bridging to other,
|
||||||
|
well-known logging systems.
|
||||||
|
|
||||||
|
This is a feature and maintenance release. Java 8 or later is required.
|
||||||
|
|
||||||
|
Changes in this version
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
Changes
|
Changes
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@@ -50,7 +91,7 @@ Changes in this version
|
|||||||
Fixed Bugs
|
Fixed Bugs
|
||||||
----------
|
----------
|
||||||
|
|
||||||
* LOGGING-192: Fix factory loading from context class loader #280, #281. Thanks to Björn Kautler, Piotr Karwasz.
|
* LOGGING-192: Fix factory loading from context class loader #280, #281. Thanks to Bj<EFBFBD>rn Kautler, Piotr Karwasz.
|
||||||
|
|
||||||
Changes
|
Changes
|
||||||
-------
|
-------
|
||||||
@@ -166,9 +207,9 @@ Fixed Bugs
|
|||||||
|
|
||||||
* Remove references to very old JDK and Commons Logging versions #201. Thanks to Elliotte Rusty Harold.
|
* Remove references to very old JDK and Commons Logging versions #201. Thanks to Elliotte Rusty Harold.
|
||||||
* Update from Logj 1 to the Log4j 2 API compatibility layer #231. Thanks to Gary Gregory, Piotr P. Karwasz.
|
* Update from Logj 1 to the Log4j 2 API compatibility layer #231. Thanks to Gary Gregory, Piotr P. Karwasz.
|
||||||
* Allow Servlet 4 in OSGi environment #191. Thanks to Václav Haisman.
|
* Allow Servlet 4 in OSGi environment #191. Thanks to V<EFBFBD>clav Haisman.
|
||||||
* Fix generics warnings #213. Thanks to Elliotte Rusty Harold.
|
* Fix generics warnings #213. Thanks to Elliotte Rusty Harold.
|
||||||
* LOGGING-189: Fix Import-Package entry for org.slf4j #188. Thanks to Václav Haisman, Sebb, Hannes Wellmann, Gary Gregory, Piotr P. Karwasz.
|
* LOGGING-189: Fix Import-Package entry for org.slf4j #188. Thanks to V<EFBFBD>clav Haisman, Sebb, Hannes Wellmann, Gary Gregory, Piotr P. Karwasz.
|
||||||
|
|
||||||
Changes
|
Changes
|
||||||
-------
|
-------
|
||||||
|
|||||||
38
STATUS.html
38
STATUS.html
@@ -21,21 +21,21 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>Status File for Apache Commons "Logging" Component</title>
|
<title>Status File for Apache Commons "Logging" Component</title>
|
||||||
<head>
|
<head>
|
||||||
<body bgcolor="white">
|
<body>
|
||||||
|
|
||||||
|
<div>
|
||||||
<div align="center">
|
|
||||||
<h1>The Apache Commons <em>Logging</em> Component</h1>
|
<h1>The Apache Commons <em>Logging</em> Component</h1>
|
||||||
<a href="#Introduction">[Introduction]</a>
|
<ol>
|
||||||
<a href="#Dependencies">[Dependencies]</a>
|
<li><a href="#Introduction">Introduction</a></li>
|
||||||
<a href="#Release Info">[Release Info]</a>
|
<li><a href="#Dependencies">Dependencies</a></li>
|
||||||
<a href="#Committers">[Committers]</a>
|
<li><a href="#Release Info">Release Info</a></li>
|
||||||
<a href="#Action Items">[Action Items]</a>
|
<li><a href="#Committers">Committers</a></li>
|
||||||
<br /><br />
|
<li><a href="#Action Items">Action Items</a></li>
|
||||||
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<a name="Introduction"></a>
|
<a id="Introduction"></a>
|
||||||
<h3>1. INTRODUCTION</h3>
|
<h3>1. INTRODUCTION</h3>
|
||||||
|
|
||||||
|
|
||||||
@@ -54,6 +54,7 @@ developer to not tie himself to a particular logging implementation.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
The package does :
|
The package does :
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Have an API which should be as simple to use as possible</li>
|
<li>Have an API which should be as simple to use as possible</li>
|
||||||
<li>Provide support for Avalon's Logkit</li>
|
<li>Provide support for Avalon's Logkit</li>
|
||||||
@@ -65,19 +66,17 @@ The package does :
|
|||||||
<li>Provide pluggable support for other logging APIs</li>
|
<li>Provide pluggable support for other logging APIs</li>
|
||||||
<li>Provide a simple System.out logger</li>
|
<li>Provide a simple System.out logger</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Non-goals:
|
Non-goals:
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>This package will not perform logging itself, except at the most basic
|
<li>This package will not perform logging itself, except at the most basic
|
||||||
level.</li>
|
level.</li>
|
||||||
<li>We do not seek to become a "standard" API.</li>
|
<li>We do not seek to become a "standard" API.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
|
||||||
|
|
||||||
|
<a id="Dependencies"></a>
|
||||||
<a name="Dependencies"></a>
|
|
||||||
<h3>2. DEPENDENCIES</h3>
|
<h3>2. DEPENDENCIES</h3>
|
||||||
|
|
||||||
<p>The <em>Logging</em> component is dependent upon the following external
|
<p>The <em>Logging</em> component is dependent upon the following external
|
||||||
@@ -99,7 +98,7 @@ components for compilation:</p>
|
|||||||
<p> Of course, the user must ensure that any logging systems that they wish
|
<p> Of course, the user must ensure that any logging systems that they wish
|
||||||
to use are present in the classpath when they use this component. </p>
|
to use are present in the classpath when they use this component. </p>
|
||||||
|
|
||||||
<a name="Release Info"></a>
|
<a id="Release Info"></a>
|
||||||
<h3>3. RELEASE INFO</h3>
|
<h3>3. RELEASE INFO</h3>
|
||||||
|
|
||||||
<table border="1">
|
<table border="1">
|
||||||
@@ -133,9 +132,7 @@ to use are present in the classpath when they use this component. </p>
|
|||||||
|
|
||||||
<p>Planned Next Release: TBD</p>
|
<p>Planned Next Release: TBD</p>
|
||||||
|
|
||||||
|
<a id="Committers"></a>
|
||||||
|
|
||||||
<a name="Committers"></a>
|
|
||||||
<h3>4. COMMITTERS</h3>
|
<h3>4. COMMITTERS</h3>
|
||||||
|
|
||||||
<p>The following individuals are the primary developers and maintainers of this
|
<p>The following individuals are the primary developers and maintainers of this
|
||||||
@@ -154,11 +151,10 @@ component to ensure that it continues to meet a variety of needs.</p>
|
|||||||
<li>Juozas Baliuka</li>
|
<li>Juozas Baliuka</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<a id="Action Items"></a>
|
||||||
<a name="Action Items"></a>
|
|
||||||
<h3>5. ACTION ITEMS</h3>
|
<h3>5. ACTION ITEMS</h3>
|
||||||
|
|
||||||
<p>TO DO List:</p>
|
<p>TO DO List: Empty.</p>
|
||||||
|
|
||||||
<table border="1">
|
<table border="1">
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
11
pom.xml
11
pom.xml
@@ -16,7 +16,7 @@ KIND, either express or implied. See the License for the
|
|||||||
specific language governing permissions and limitations
|
specific language governing permissions and limitations
|
||||||
under the License.
|
under the License.
|
||||||
-->
|
-->
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<!--
|
<!--
|
||||||
Note that due to the special requirements of logging unit-tests, most
|
Note that due to the special requirements of logging unit-tests, most
|
||||||
tests are executed in the "integration-test" phase rather than the
|
tests are executed in the "integration-test" phase rather than the
|
||||||
@@ -26,7 +26,7 @@ under the License.
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.apache.commons</groupId>
|
<groupId>org.apache.commons</groupId>
|
||||||
<artifactId>commons-parent</artifactId>
|
<artifactId>commons-parent</artifactId>
|
||||||
<version>78</version>
|
<version>81</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>commons-logging</groupId>
|
<groupId>commons-logging</groupId>
|
||||||
@@ -50,13 +50,13 @@ under the License.
|
|||||||
<commons.jira.id>LOGGING</commons.jira.id>
|
<commons.jira.id>LOGGING</commons.jira.id>
|
||||||
<commons.jira.pid>12310484</commons.jira.pid>
|
<commons.jira.pid>12310484</commons.jira.pid>
|
||||||
<!-- The RC version used in the staging repository URL. -->
|
<!-- The RC version used in the staging repository URL. -->
|
||||||
<commons.rc.version>RC1</commons.rc.version>
|
<commons.rc.version>RC2</commons.rc.version>
|
||||||
<skipSurefireReport>true</skipSurefireReport>
|
<skipSurefireReport>true</skipSurefireReport>
|
||||||
<!-- Since version 3.2 additional classpath dependencies are allowed. -->
|
<!-- Since version 3.2 additional classpath dependencies are allowed. -->
|
||||||
<commons.failsafe.version>3.2.1</commons.failsafe.version>
|
<commons.failsafe.version>3.2.1</commons.failsafe.version>
|
||||||
<!-- Allow default test run order to be changed -->
|
<!-- Allow default test run order to be changed -->
|
||||||
<failsafe.runorder>filesystem</failsafe.runorder>
|
<failsafe.runorder>filesystem</failsafe.runorder>
|
||||||
<log4j2.version>2.24.2</log4j2.version>
|
<log4j2.version>2.24.3</log4j2.version>
|
||||||
<logback.version>1.3.14</logback.version>
|
<logback.version>1.3.14</logback.version>
|
||||||
<slf4j.version>2.0.16</slf4j.version>
|
<slf4j.version>2.0.16</slf4j.version>
|
||||||
<findsecbugs.version>1.13.0</findsecbugs.version>
|
<findsecbugs.version>1.13.0</findsecbugs.version>
|
||||||
@@ -71,7 +71,8 @@ under the License.
|
|||||||
org.slf4j;version="[1.7, 3)";resolution:=optional,
|
org.slf4j;version="[1.7, 3)";resolution:=optional,
|
||||||
org.slf4j.spi;version="[1.7, 3)";resolution:=optional
|
org.slf4j.spi;version="[1.7, 3)";resolution:=optional
|
||||||
</commons.osgi.import>
|
</commons.osgi.import>
|
||||||
<project.build.outputTimestamp>2024-11-22T15:35:19Z</project.build.outputTimestamp>
|
<!-- project.build.outputTimestamp is managed by Maven plugins, see https://maven.apache.org/guides/mini/guide-reproducible-builds.html -->
|
||||||
|
<project.build.outputTimestamp>2024-08-19T13:43:35Z</project.build.outputTimestamp>
|
||||||
<!-- JaCoCo: Don't make code coverage worse than: -->
|
<!-- JaCoCo: Don't make code coverage worse than: -->
|
||||||
<commons.jacoco.haltOnFailure>true</commons.jacoco.haltOnFailure>
|
<commons.jacoco.haltOnFailure>true</commons.jacoco.haltOnFailure>
|
||||||
<commons.jacoco.classRatio>0.42</commons.jacoco.classRatio>
|
<commons.jacoco.classRatio>0.42</commons.jacoco.classRatio>
|
||||||
|
|||||||
@@ -38,18 +38,22 @@ and commit
|
|||||||
The <action> type attribute can be add,update,fix,remove.
|
The <action> type attribute can be add,update,fix,remove.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<document xmlns="http://maven.apache.org/changes/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
|
<document xmlns="http://maven.apache.org/changes/2.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/changes/2.0.0 https://maven.apache.org/xsd/changes-2.0.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>Release Notes</title>
|
<title>Release Notes</title>
|
||||||
</properties>
|
</properties>
|
||||||
<body>
|
<body>
|
||||||
<release version="1.3.5" date="2024-11-22" description="This is a feature and maintenance release. Java 8 or later is required.">
|
<release version="1.3.5" date="2025-01-31" description="This is a feature and maintenance release. Java 8 or later is required.">
|
||||||
<!-- FIX -->
|
<!-- FIX -->
|
||||||
|
<action dev="ggregory" type="fix" due-to="Gary Gregory">Javadoc is missing its Overview page.</action>
|
||||||
|
<action dev="ggregory" type="fix" due-to="Gary Gregory">Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80).</action>
|
||||||
<!-- ADD -->
|
<!-- ADD -->
|
||||||
<!-- UPDATE -->
|
<!-- UPDATE -->
|
||||||
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-parent from 72 to 78 #285, #287, #295, #298, #303, #310.</action>
|
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-parent from 72 to 81 #285, #287, #295, #298, #303, #310, #339.</action>
|
||||||
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0 #288 [test].</action>
|
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0 #288 [test].</action>
|
||||||
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">Bump log4j2.version from 2.23.1 to 2.24.2 #292, #299, #319.</action>
|
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">Bump log4j2.version from 2.23.1 to 2.24.3 #292, #299, #319, #328.</action>
|
||||||
<!-- REMOVE -->
|
<!-- REMOVE -->
|
||||||
<action type="remove" dev="ggregory" due-to="Gary Gregory">Remove "cobertura" plugin, we use JaCoco, Cobertura is unmaintained.</action>
|
<action type="remove" dev="ggregory" due-to="Gary Gregory">Remove "cobertura" plugin, we use JaCoco, Cobertura is unmaintained.</action>
|
||||||
</release>
|
</release>
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ Removed:
|
|||||||
## End of main loop
|
## End of main loop
|
||||||
#end
|
#end
|
||||||
|
|
||||||
Historical list of changes: ${project.url}changes-report.html
|
Historical list of changes: ${project.url}changes.html
|
||||||
|
|
||||||
Download it from ${project.url}download_logging.cgi
|
Download it from ${project.url}download_logging.cgi
|
||||||
|
|
||||||
|
|||||||
@@ -72,5 +72,6 @@ limitations under the License.
|
|||||||
</module>
|
</module>
|
||||||
<module name="WhitespaceAfter" />
|
<module name="WhitespaceAfter" />
|
||||||
<module name="ParenPad" />
|
<module name="ParenPad" />
|
||||||
|
<module name="TypecastParenPad" />
|
||||||
</module>
|
</module>
|
||||||
</module>
|
</module>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
<ruleset name="mybraces" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<ruleset name="mybraces" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
|
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.net/ruleset_2_0_0.xsd">
|
||||||
<description>Excludes from default PMD rules.</description>
|
<description>Excludes from default PMD rules.</description>
|
||||||
<rule ref="category/java/errorprone.xml/EmptyCatchBlock">
|
<rule ref="category/java/errorprone.xml/EmptyCatchBlock">
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ under the License.
|
|||||||
-->
|
-->
|
||||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
|
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 http://maven.apache.org/xsd/assembly-2.2.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd">
|
||||||
<id>bin</id>
|
<id>bin</id>
|
||||||
<formats>
|
<formats>
|
||||||
<format>tar.gz</format>
|
<format>tar.gz</format>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ under the License.
|
|||||||
-->
|
-->
|
||||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
|
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 http://maven.apache.org/xsd/assembly-2.2.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd">
|
||||||
<id>src</id>
|
<id>src</id>
|
||||||
<formats>
|
<formats>
|
||||||
<format>tar.gz</format>
|
<format>tar.gz</format>
|
||||||
|
|||||||
@@ -566,7 +566,6 @@ public abstract class LogFactory {
|
|||||||
*
|
*
|
||||||
* @param clazz Class.
|
* @param clazz Class.
|
||||||
* @return a ClassLoader.
|
* @return a ClassLoader.
|
||||||
*
|
|
||||||
* @since 1.1
|
* @since 1.1
|
||||||
*/
|
*/
|
||||||
protected static ClassLoader getClassLoader(final Class<?> clazz) {
|
protected static ClassLoader getClassLoader(final Class<?> clazz) {
|
||||||
@@ -886,7 +885,7 @@ public abstract class LogFactory {
|
|||||||
// implementations via the TCCL, we don't try to load the default LogFactory
|
// implementations via the TCCL, we don't try to load the default LogFactory
|
||||||
// implementation via the context class loader because:
|
// implementation via the context class loader because:
|
||||||
// * that can cause problems (see comments in newFactory method)
|
// * that can cause problems (see comments in newFactory method)
|
||||||
// * no-one should be customising the code of the default class
|
// * no-one should be customizing the code of the default class
|
||||||
// Yes, we do give up the ability for the child to ship a newer
|
// Yes, we do give up the ability for the child to ship a newer
|
||||||
// version of the LogFactoryImpl class and have it used dynamically
|
// version of the LogFactoryImpl class and have it used dynamically
|
||||||
// by an old LogFactory class in the parent, but that isn't
|
// by an old LogFactory class in the parent, but that isn't
|
||||||
|
|||||||
@@ -490,7 +490,6 @@ public class LogFactoryImpl extends LogFactory {
|
|||||||
* Follows the discovery process described in the class Javadoc.
|
* Follows the discovery process described in the class Javadoc.
|
||||||
*
|
*
|
||||||
* @param logCategory the name of the log category
|
* @param logCategory the name of the log category
|
||||||
*
|
|
||||||
* @throws LogConfigurationException if an error in discovery occurs,
|
* @throws LogConfigurationException if an error in discovery occurs,
|
||||||
* or if no adapter at all can be instantiated
|
* or if no adapter at all can be instantiated
|
||||||
*/
|
*/
|
||||||
@@ -809,7 +808,6 @@ public class LogFactoryImpl extends LogFactory {
|
|||||||
* call {@code getInstance(String)} with it.
|
* call {@code getInstance(String)} with it.
|
||||||
*
|
*
|
||||||
* @param clazz Class for which a suitable Log name will be derived
|
* @param clazz Class for which a suitable Log name will be derived
|
||||||
*
|
|
||||||
* @throws LogConfigurationException if a suitable {@code Log}
|
* @throws LogConfigurationException if a suitable {@code Log}
|
||||||
* instance cannot be returned
|
* instance cannot be returned
|
||||||
*/
|
*/
|
||||||
@@ -866,9 +864,7 @@ public class LogFactoryImpl extends LogFactory {
|
|||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @return the {@code Constructor} that can be called to instantiate new {@link org.apache.commons.logging.Log} instances.
|
* @return the {@code Constructor} that can be called to instantiate new {@link org.apache.commons.logging.Log} instances.
|
||||||
*
|
|
||||||
* @throws LogConfigurationException if a suitable constructor cannot be returned
|
* @throws LogConfigurationException if a suitable constructor cannot be returned
|
||||||
*
|
|
||||||
* @deprecated Never invoked by this class; subclasses should not assume it will be.
|
* @deprecated Never invoked by this class; subclasses should not assume it will be.
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@@ -888,10 +884,9 @@ public class LogFactoryImpl extends LogFactory {
|
|||||||
/**
|
/**
|
||||||
* Given two related class loaders, return the one which is a child of
|
* Given two related class loaders, return the one which is a child of
|
||||||
* the other.
|
* the other.
|
||||||
* <p>
|
*
|
||||||
* @param c1 is a class loader (including the null class loader)
|
* @param c1 is a class loader (including the null class loader)
|
||||||
* @param c2 is a class loader (including the null class loader)
|
* @param c2 is a class loader (including the null class loader)
|
||||||
*
|
|
||||||
* @return c1 if it has c2 as an ancestor, c2 if it has c1 as an ancestor,
|
* @return c1 if it has c2 as an ancestor, c2 if it has c1 as an ancestor,
|
||||||
* and null if neither is an ancestor of the other.
|
* and null if neither is an ancestor of the other.
|
||||||
*/
|
*/
|
||||||
@@ -956,7 +951,6 @@ public class LogFactoryImpl extends LogFactory {
|
|||||||
* @param logAdapterClassName is the class name of the Log implementation
|
* @param logAdapterClassName is the class name of the Log implementation
|
||||||
* that could not be instantiated. Cannot be {@code null}.
|
* that could not be instantiated. Cannot be {@code null}.
|
||||||
* @param discoveryFlaw is the Throwable created by the class loader
|
* @param discoveryFlaw is the Throwable created by the class loader
|
||||||
*
|
|
||||||
* @throws LogConfigurationException ALWAYS
|
* @throws LogConfigurationException ALWAYS
|
||||||
*/
|
*/
|
||||||
private void handleFlawedDiscovery(final String logAdapterClassName,
|
private void handleFlawedDiscovery(final String logAdapterClassName,
|
||||||
@@ -1191,7 +1185,6 @@ public class LogFactoryImpl extends LogFactory {
|
|||||||
* which is required by Jdk14Logger.
|
* which is required by Jdk14Logger.
|
||||||
*
|
*
|
||||||
* @return Whether <em>JDK 1.4 or later</em> logging is available.
|
* @return Whether <em>JDK 1.4 or later</em> logging is available.
|
||||||
*
|
|
||||||
* @deprecated Never invoked by this class; subclasses should not assume it will be.
|
* @deprecated Never invoked by this class; subclasses should not assume it will be.
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@@ -1203,7 +1196,6 @@ public class LogFactoryImpl extends LogFactory {
|
|||||||
* Tests whether a <em>Log4J</em> implementation available.
|
* Tests whether a <em>Log4J</em> implementation available.
|
||||||
*
|
*
|
||||||
* @return whether a <em>Log4J</em> implementation available.
|
* @return whether a <em>Log4J</em> implementation available.
|
||||||
*
|
|
||||||
* @deprecated Never invoked by this class; subclasses should not assume it will be.
|
* @deprecated Never invoked by this class; subclasses should not assume it will be.
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@@ -1262,7 +1254,6 @@ public class LogFactoryImpl extends LogFactory {
|
|||||||
*
|
*
|
||||||
* @param name Name of the new logger
|
* @param name Name of the new logger
|
||||||
* @return a new {@link org.apache.commons.logging.Log}
|
* @return a new {@link org.apache.commons.logging.Log}
|
||||||
*
|
|
||||||
* @throws LogConfigurationException if a new instance cannot be created
|
* @throws LogConfigurationException if a new instance cannot be created
|
||||||
*/
|
*/
|
||||||
protected Log newInstance(final String name) throws LogConfigurationException {
|
protected Log newInstance(final String name) throws LogConfigurationException {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>Overview Documentation for COMMONS-LOGGING</title>
|
<title>Overview Documentation for COMMONS-LOGGING</title>
|
||||||
</head>
|
</head>
|
||||||
<body bgcolor="white">
|
<body>
|
||||||
<p>The <em>Logging Wrapper Library</em> component of the Apache Commons
|
<p>The <em>Logging Wrapper Library</em> component of the Apache Commons
|
||||||
subproject offers wrappers around an extensible set of concrete logging
|
subproject offers wrappers around an extensible set of concrete logging
|
||||||
implementations, so that application code based on it does not need to be
|
implementations, so that application code based on it does not need to be
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
// 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
|
||||||
|
//
|
||||||
|
// https://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.
|
||||||
|
|||||||
@@ -17,30 +17,39 @@
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<project xmlns="http://maven.apache.org/DECORATION/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<site xmlns="http://maven.apache.org/SITE/2.0.0"
|
||||||
xsi:schemaLocation="http://maven.apache.org/DECORATION/1.1.0 http://maven.apache.org/xsd/decoration-1.1.0.xsd">
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
<bannerRight>
|
xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 https://maven.apache.org/xsd/site-2.0.0.xsd"
|
||||||
<name>Commons Logging</name>
|
name="Apache Commons Logging">
|
||||||
<src>/images/logo.png</src>
|
<bannerRight name="Commons Logging" href="/index.html">
|
||||||
<href>https://commons.apache.org/logging/</href>
|
<image src="/images/logo.png"/>
|
||||||
</bannerRight>
|
</bannerRight>
|
||||||
<body>
|
<body>
|
||||||
<menu name="Commons Logging">
|
<menu name="Commons Logging">
|
||||||
<item name="Overview" href="/index.html" />
|
<!-- Start: For all components. -->
|
||||||
|
<item name="About" href="/index.html" />
|
||||||
|
<item name="Asking Questions" href="/mail-lists.html" />
|
||||||
|
<item name="Release History" href="/changes.html" />
|
||||||
|
<item name="Issue Tracking" href="/issue-management.html" />
|
||||||
|
<item name="Dependency Management" href="/dependency-info.html" />
|
||||||
|
<item name="Sources" href="/scm.html" />
|
||||||
|
<item name="Security" href="security.html" />
|
||||||
|
<item name="License" href="https://www.apache.org/licenses/LICENSE-2.0" />
|
||||||
|
<item name="Code of Conduct" href="https://www.apache.org/foundation/policies/conduct.html" />
|
||||||
<item name="Download" href="/download_logging.cgi" />
|
<item name="Download" href="/download_logging.cgi" />
|
||||||
|
<item name="Javadoc">
|
||||||
|
<item name="Javadoc Current" href="apidocs/index.html" />
|
||||||
|
<item name="Javadoc Archive" href="https://javadoc.io/doc/commons-logging/commons-logging" />
|
||||||
|
</item>
|
||||||
|
<!-- End: For all components. -->
|
||||||
|
<!-- Specific to this component: -->
|
||||||
<item name="User Guide" href="/guide.html" />
|
<item name="User Guide" href="/guide.html" />
|
||||||
<item name="Troubleshooting Guide" href="/troubleshooting.html" />
|
<item name="Troubleshooting Guide" href="/troubleshooting.html" />
|
||||||
<item name="Release Notes" href="/RELEASE-NOTES.txt" />
|
|
||||||
<item name='Javadoc (Latest release)' href='/apidocs/index.html' />
|
|
||||||
<item name='Javadoc Archive' href='https://javadoc.io/doc/commons-logging/commons-logging' />
|
|
||||||
</menu>
|
|
||||||
<menu name="Development">
|
|
||||||
<item name="Building" href="/building.html" />
|
<item name="Building" href="/building.html" />
|
||||||
<item name="Mailing Lists" href="/mail-lists.html" />
|
|
||||||
<item name="Issue Tracking" href="/issue-tracking.html" />
|
|
||||||
<item name="Proposal" href="/proposal.html" />
|
<item name="Proposal" href="/proposal.html" />
|
||||||
<item name="Tech Guide" href="/tech.html" />
|
<item name="Tech Guide" href="/tech.html" />
|
||||||
<item name="Wiki" href="https://wiki.apache.org/commons/Logging" />
|
<item name="Wiki" href="https://wiki.apache.org/commons/Logging" />
|
||||||
|
<item name="Release Notes" href="/RELEASE-NOTES.txt" />
|
||||||
</menu>
|
</menu>
|
||||||
</body>
|
</body>
|
||||||
</project>
|
</site>
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>Building</title>
|
<title>Building</title>
|
||||||
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ 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 not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@@ -56,10 +56,12 @@ limitations under the License.
|
|||||||
| |
|
| |
|
||||||
+======================================================================+
|
+======================================================================+
|
||||||
-->
|
-->
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>Download Apache Commons Logging</title>
|
<title>Download Apache Commons Logging</title>
|
||||||
<author email="dev@commons.apache.org">Apache Commons Documentation Team</author>
|
<author email="dev@commons.apache.org">Apache Commons Team</author>
|
||||||
</properties>
|
</properties>
|
||||||
<body>
|
<body>
|
||||||
<section name="Download Apache Commons Logging">
|
<section name="Download Apache Commons Logging">
|
||||||
@@ -79,7 +81,7 @@ limitations under the License.
|
|||||||
mirrors (at the end of the mirrors list) that should be
|
mirrors (at the end of the mirrors list) that should be
|
||||||
available.
|
available.
|
||||||
<br></br>
|
<br></br>
|
||||||
[if-any logo]<a href="[link]"><img align="right" src="[logo]" border="0"></img></a>[end]
|
[if-any logo]<a href="[link]"><img align="right" src="[logo]" border="0" alt="Logo"></img></a>[end]
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<form action="[location]" method="get" id="SelectMirror">
|
<form action="[location]" method="get" id="SelectMirror">
|
||||||
|
|||||||
@@ -19,8 +19,9 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>User Guide</title>
|
<title>User Guide</title>
|
||||||
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
||||||
@@ -28,7 +29,6 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
<section name='Contents'>
|
<section name='Contents'>
|
||||||
<p>
|
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href='#Introduction'>Introduction</a></li>
|
<li><a href='#Introduction'>Introduction</a></li>
|
||||||
<li><a href='#Quick Start'>Quick Start</a>
|
<li><a href='#Quick Start'>Quick Start</a>
|
||||||
@@ -85,7 +85,6 @@
|
|||||||
<li><a href='#Frequently Asked Questions'>Frequently Asked Questions</a>
|
<li><a href='#Frequently Asked Questions'>Frequently Asked Questions</a>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</p>
|
|
||||||
</section>
|
</section>
|
||||||
<section name="Introduction">
|
<section name="Introduction">
|
||||||
<p>
|
<p>
|
||||||
@@ -232,14 +231,12 @@ is responsible for handling such issues.
|
|||||||
To use the JCL SPI from a Java class,
|
To use the JCL SPI from a Java class,
|
||||||
include the following import statements:
|
include the following import statements:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
|
||||||
<code>
|
<code>
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
<br/>
|
<br/>
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
<br/>
|
<br/>
|
||||||
</code>
|
</code>
|
||||||
</ul>
|
|
||||||
<p>
|
<p>
|
||||||
Note that some components using JCL may
|
Note that some components using JCL may
|
||||||
either extend Log,
|
either extend Log,
|
||||||
@@ -251,7 +248,6 @@ on how commons-logging should be used in such components.
|
|||||||
For each class definition, declare and initialize a
|
For each class definition, declare and initialize a
|
||||||
<code>log</code> attribute as follows:
|
<code>log</code> attribute as follows:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
|
||||||
<source>
|
<source>
|
||||||
public class CLASS
|
public class CLASS
|
||||||
{
|
{
|
||||||
@@ -259,7 +255,6 @@ public class CLASS
|
|||||||
...
|
...
|
||||||
;
|
;
|
||||||
</source>
|
</source>
|
||||||
</ul>
|
|
||||||
<p>
|
<p>
|
||||||
Note that for application code, declaring the log member as "static" is more
|
Note that for application code, declaring the log member as "static" is more
|
||||||
efficient as one Log object is created per class, and is recommended.
|
efficient as one Log object is created per class, and is recommended.
|
||||||
@@ -278,7 +273,6 @@ The <code>org.apache.commons.logging.Log</code> interface defines the
|
|||||||
following methods for use
|
following methods for use
|
||||||
in writing log/trace messages to the log:
|
in writing log/trace messages to the log:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
|
||||||
<source>
|
<source>
|
||||||
log.fatal(Object message);
|
log.fatal(Object message);
|
||||||
log.fatal(Object message, Throwable t);
|
log.fatal(Object message, Throwable t);
|
||||||
@@ -293,7 +287,6 @@ in writing log/trace messages to the log:
|
|||||||
log.trace(Object message);
|
log.trace(Object message);
|
||||||
log.trace(Object message, Throwable t);
|
log.trace(Object message, Throwable t);
|
||||||
</source>
|
</source>
|
||||||
</ul>
|
|
||||||
<p>
|
<p>
|
||||||
Semantics for these methods are such that it is expected
|
Semantics for these methods are such that it is expected
|
||||||
that the severity, from highest to lowest, of messages is ordered as above.
|
that the severity, from highest to lowest, of messages is ordered as above.
|
||||||
@@ -301,7 +294,6 @@ that the severity, from highest to lowest, of messages is ordered as above.
|
|||||||
<p>
|
<p>
|
||||||
In addition to the logging methods, the following are provided for code guards:
|
In addition to the logging methods, the following are provided for code guards:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
|
||||||
<source>
|
<source>
|
||||||
log.isFatalEnabled();
|
log.isFatalEnabled();
|
||||||
log.isErrorEnabled();
|
log.isErrorEnabled();
|
||||||
@@ -310,7 +302,6 @@ In addition to the logging methods, the following are provided for code guards:
|
|||||||
log.isDebugEnabled();
|
log.isDebugEnabled();
|
||||||
log.isTraceEnabled();
|
log.isTraceEnabled();
|
||||||
</source>
|
</source>
|
||||||
</ul>
|
|
||||||
</subsection>
|
</subsection>
|
||||||
<subsection name="Serialization Issues">
|
<subsection name="Serialization Issues">
|
||||||
<p>Prior to release 1.0.4, none of the standard Log implementations were
|
<p>Prior to release 1.0.4, none of the standard Log implementations were
|
||||||
@@ -434,13 +425,13 @@ The following guidelines are suggested:
|
|||||||
<li>
|
<li>
|
||||||
<b>fatal</b> - Severe errors that cause premature termination.
|
<b>fatal</b> - Severe errors that cause premature termination.
|
||||||
Expect these to be immediately visible on a status console.
|
Expect these to be immediately visible on a status console.
|
||||||
See also <a HREF="#National%20Language%20Support%20And%20Internationalization">
|
See also <a href="#National%20Language%20Support%20And%20Internationalization">
|
||||||
Internationalization</a>.
|
Internationalization</a>.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<b>error</b> - Other runtime errors or unexpected conditions.
|
<b>error</b> - Other runtime errors or unexpected conditions.
|
||||||
Expect these to be immediately visible on a status console.
|
Expect these to be immediately visible on a status console.
|
||||||
See also <a HREF="#National%20Language%20Support%20And%20Internationalization">
|
See also <a href="#National%20Language%20Support%20And%20Internationalization">
|
||||||
Internationalization</a>.
|
Internationalization</a>.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
@@ -448,14 +439,14 @@ Internationalization</a>.
|
|||||||
other runtime situations that are undesirable or unexpected, but not
|
other runtime situations that are undesirable or unexpected, but not
|
||||||
necessarily "wrong".
|
necessarily "wrong".
|
||||||
Expect these to be immediately visible on a status console.
|
Expect these to be immediately visible on a status console.
|
||||||
See also <a HREF="#National%20Language%20Support%20And%20Internationalization">
|
See also <a href="#National%20Language%20Support%20And%20Internationalization">
|
||||||
Internationalization</a>.
|
Internationalization</a>.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<b>info</b> - Interesting runtime events (startup/shutdown).
|
<b>info</b> - Interesting runtime events (startup/shutdown).
|
||||||
Expect these to be immediately visible on a console,
|
Expect these to be immediately visible on a console,
|
||||||
so be conservative and keep to a minimum.
|
so be conservative and keep to a minimum.
|
||||||
See also <a HREF="#National%20Language%20Support%20And%20Internationalization">
|
See also <a href="#National%20Language%20Support%20And%20Internationalization">
|
||||||
Internationalization</a>.
|
Internationalization</a>.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
@@ -561,11 +552,9 @@ If more control is desired for the level of detail of these
|
|||||||
'enterprise' exceptions, then consider creating a special
|
'enterprise' exceptions, then consider creating a special
|
||||||
logger just for these exceptions:
|
logger just for these exceptions:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
|
||||||
<source>
|
<source>
|
||||||
Log log = LogFactory.getLog("org.apache.<i>component</i>.enterprise");
|
Log log = LogFactory.getLog("org.apache.<i>component</i>.enterprise");
|
||||||
</source>
|
</source>
|
||||||
</ul>
|
|
||||||
<p>
|
<p>
|
||||||
This allows the 'enterprise' level information to be turned on/off explicitly
|
This allows the 'enterprise' level information to be turned on/off explicitly
|
||||||
by most logger implementations.
|
by most logger implementations.
|
||||||
@@ -669,6 +658,7 @@ new <code>LogFactory</code> implementations that provide alternative discovery s
|
|||||||
When creating new implementations for <code>Log</code> and <code>LogFactory</code>,
|
When creating new implementations for <code>Log</code> and <code>LogFactory</code>,
|
||||||
it is important to understand the implied contract between the factory
|
it is important to understand the implied contract between the factory
|
||||||
and the log implementations:
|
and the log implementations:
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><b>Life cycle</b>
|
<li><b>Life cycle</b>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
@@ -691,7 +681,6 @@ is met.
|
|||||||
</blockquote>
|
</blockquote>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
|
||||||
</subsection>
|
</subsection>
|
||||||
<subsection name='Creating a Log Implementation'>
|
<subsection name='Creating a Log Implementation'>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -19,8 +19,9 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>Overview</title>
|
<title>Overview</title>
|
||||||
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
||||||
@@ -82,23 +83,23 @@ This gives short introductions to topics such as advanced class loading.
|
|||||||
<a href="https//commons.apache.org/proper/commons-logging/download_logging.cgi">here</a>.
|
<a href="https//commons.apache.org/proper/commons-logging/download_logging.cgi">here</a>.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The full release history is <a href="changes-report.html">here</a>.
|
The full release history is <a href="changes.html">here</a>.
|
||||||
</p>
|
</p>
|
||||||
<subsection name='Release 1.3.x'>
|
<subsection name='Release 1.3.x'>
|
||||||
<p>
|
<p>
|
||||||
See <a href="changes-report.html">change-report</a>.
|
See <a href="changes.html">change-report</a>.
|
||||||
</p>
|
</p>
|
||||||
</subsection>
|
</subsection>
|
||||||
<subsection name='Release 1.2 - July 2014'>
|
<subsection name='Release 1.2 - July 2014'>
|
||||||
<p>The main purpose of the 1.2 release is to drop support for Java 1.1.</p>
|
<p>The main purpose of the 1.2 release is to drop support for Java 1.1.</p>
|
||||||
<p>For a full list of changes since the 1.1.3 release, please refer to the
|
<p>For a full list of changes since the 1.1.3 release, please refer to the
|
||||||
<a href="changes-report.html">change-report</a>.</p>
|
<a href="changes.html">change-report</a>.</p>
|
||||||
</subsection>
|
</subsection>
|
||||||
<subsection name='Release 1.1.3 - May 2013'>
|
<subsection name='Release 1.1.3 - May 2013'>
|
||||||
<p>The 1.1.3 release only updates the Bundle-SymbolicName in the manifest
|
<p>The 1.1.3 release only updates the Bundle-SymbolicName in the manifest
|
||||||
to "org.apache.commons.logging".</p>
|
to "org.apache.commons.logging".</p>
|
||||||
<p>For a full list of changes since the 1.1.1 release, please refer to the
|
<p>For a full list of changes since the 1.1.1 release, please refer to the
|
||||||
<a href="changes-report.html">change-report</a>.</p>
|
<a href="changes.html">change-report</a>.</p>
|
||||||
</subsection>
|
</subsection>
|
||||||
<subsection name='Release 1.1.2 - March 2013'>
|
<subsection name='Release 1.1.2 - March 2013'>
|
||||||
<p>The 1.1.2 release is a packaging of bug fixes since release 1.1.1.</p>
|
<p>The 1.1.2 release is a packaging of bug fixes since release 1.1.1.</p>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ 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 not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@@ -41,10 +41,12 @@ limitations under the License.
|
|||||||
| |
|
| |
|
||||||
+======================================================================+
|
+======================================================================+
|
||||||
-->
|
-->
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>Apache Commons Logging Issue tracking</title>
|
<title>Apache Commons Logging Issue tracking</title>
|
||||||
<author email="dev@commons.apache.org">Apache Commons Documentation Team</author>
|
<author email="dev@commons.apache.org">Apache Commons Team</author>
|
||||||
</properties>
|
</properties>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
@@ -64,6 +66,7 @@ limitations under the License.
|
|||||||
<p>
|
<p>
|
||||||
If you would like to report a bug, or raise an enhancement request with
|
If you would like to report a bug, or raise an enhancement request with
|
||||||
Apache Commons Logging please do the following:
|
Apache Commons Logging please do the following:
|
||||||
|
</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310484&sorter/field=issuekey&sorter/order=DESC&status=1&status=3&status=4">Search existing open bugs</a>.
|
<li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310484&sorter/field=issuekey&sorter/order=DESC&status=1&status=3&status=4">Search existing open bugs</a>.
|
||||||
If you find your issue listed then please add a comment with your details.</li>
|
If you find your issue listed then please add a comment with your details.</li>
|
||||||
@@ -73,16 +76,15 @@ limitations under the License.
|
|||||||
<li>Submit either a <a href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310484&issuetype=1&priority=4&assignee=-1">bug report</a>
|
<li>Submit either a <a href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310484&issuetype=1&priority=4&assignee=-1">bug report</a>
|
||||||
or <a href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310484&issuetype=4&priority=4&assignee=-1">enhancement request</a>.</li>
|
or <a href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310484&issuetype=4&priority=4&assignee=-1">enhancement request</a>.</li>
|
||||||
</ol>
|
</ol>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Please also remember these points:
|
Please also remember these points:
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>the more information you provide, the better we can help you</li>
|
<li>the more information you provide, the better we can help you</li>
|
||||||
<li>test cases are vital, particularly for any proposed enhancements</li>
|
<li>test cases are vital, particularly for any proposed enhancements</li>
|
||||||
<li>the developers of Apache Commons Logging are all unpaid volunteers</li>
|
<li>the developers of Apache Commons Logging are all unpaid volunteers</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
For more information on creating patches see the
|
For more information on creating patches see the
|
||||||
@@ -91,12 +93,12 @@ limitations under the License.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
You may also find these links useful:
|
You may also find these links useful:
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310484&sorter/field=issuekey&sorter/order=DESC&status=1&status=3&status=4">All Open Apache Commons Logging bugs</a></li>
|
<li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310484&sorter/field=issuekey&sorter/order=DESC&status=1&status=3&status=4">All Open Apache Commons Logging bugs</a></li>
|
||||||
<li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310484&sorter/field=issuekey&sorter/order=DESC&status=5&status=6">All Resolved Apache Commons Logging bugs</a></li>
|
<li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310484&sorter/field=issuekey&sorter/order=DESC&status=5&status=6">All Resolved Apache Commons Logging bugs</a></li>
|
||||||
<li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310484&sorter/field=issuekey&sorter/order=DESC">All Apache Commons Logging bugs</a></li>
|
<li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310484&sorter/field=issuekey&sorter/order=DESC">All Apache Commons Logging bugs</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
|
||||||
</section>
|
</section>
|
||||||
</body>
|
</body>
|
||||||
</document>
|
</document>
|
||||||
|
|||||||
@@ -15,8 +15,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>JUnit Test Results</title>
|
<title>JUnit Test Results</title>
|
||||||
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ 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 not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@@ -39,10 +39,12 @@ limitations under the License.
|
|||||||
| |
|
| |
|
||||||
+======================================================================+
|
+======================================================================+
|
||||||
-->
|
-->
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>Apache Commons Logging Mailing Lists</title>
|
<title>Apache Commons Logging Mailing Lists</title>
|
||||||
<author email="dev@commons.apache.org">Apache Commons Documentation Team</author>
|
<author email="dev@commons.apache.org">Apache Commons Team</author>
|
||||||
</properties>
|
</properties>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
@@ -53,10 +55,10 @@ limitations under the License.
|
|||||||
To make it easier for people to only read messages related to components they are interested in,
|
To make it easier for people to only read messages related to components they are interested in,
|
||||||
the convention in Commons is to prefix the subject line of messages with the component's name,
|
the convention in Commons is to prefix the subject line of messages with the component's name,
|
||||||
for example:
|
for example:
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>[logging] Problem with the ...</li>
|
<li>[logging] Problem with the ...</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
|
||||||
<p>
|
<p>
|
||||||
Questions related to the usage of Apache Commons Logging should be posted to the
|
Questions related to the usage of Apache Commons Logging should be posted to the
|
||||||
<a href="https://lists.apache.org/list.html?user@commons.apache.org">User List</a>.
|
<a href="https://lists.apache.org/list.html?user@commons.apache.org">User List</a>.
|
||||||
|
|||||||
@@ -17,7 +17,9 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>Proposal for Logging Library Package</title>
|
<title>Proposal for Logging Library Package</title>
|
||||||
</properties>
|
</properties>
|
||||||
@@ -51,21 +53,21 @@ implementations.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
The package should :
|
The package should :
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Have an API which should be as simple to use as possible</li>
|
<li>Have an API which should be as simple to use as possible</li>
|
||||||
<li>Provide support for Log4j</li>
|
<li>Provide support for Log4j</li>
|
||||||
<li>Provide pluggable support for other logging APIs</li>
|
<li>Provide pluggable support for other logging APIs</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Non-goals:
|
Non-goals:
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>This package will not perform logging itself, except at the most basic
|
<li>This package will not perform logging itself, except at the most basic
|
||||||
level.</li>
|
level.</li>
|
||||||
<li>We do not seek to become a "standard" API.</li>
|
<li>We do not seek to become a "standard" API.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
|
||||||
|
|
||||||
</subsection>
|
</subsection>
|
||||||
<subsection name="(1.5) Interaction With Other Packages">
|
<subsection name="(1.5) Interaction With Other Packages">
|
||||||
|
|||||||
@@ -17,8 +17,9 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>Technology Guide</title>
|
<title>Technology Guide</title>
|
||||||
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
||||||
|
|||||||
@@ -19,8 +19,9 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<document>
|
<document xmlns="http://maven.apache.org/XDOC/2.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
|
||||||
<properties>
|
<properties>
|
||||||
<title>Troubleshooting Guide</title>
|
<title>Troubleshooting Guide</title>
|
||||||
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
||||||
@@ -37,7 +38,6 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href="#When To Use Diagnostic Logging">When To Use Diagnostic Logging</a>
|
<a href="#When To Use Diagnostic Logging">When To Use Diagnostic Logging</a>
|
||||||
<ul/>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="#How To Use Diagnostic logging">How To Use Diagnostic logging</a>
|
<a href="#How To Use Diagnostic logging">How To Use Diagnostic logging</a>
|
||||||
@@ -86,15 +86,12 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href="#Apache Tomcat">Apache Tomcat</a>
|
<a href="#Apache Tomcat">Apache Tomcat</a>
|
||||||
<ul/>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="#JBoss Application Server">JBoss Application Server</a>
|
<a href="#JBoss Application Server">JBoss Application Server</a>
|
||||||
<ul/>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="#Other Containers">Other Containers</a>
|
<a href="#Other Containers">Other Containers</a>
|
||||||
<ul/>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@@ -134,19 +131,19 @@ Diagnostics uses the concept of an Object ID (OID). This allows the identity of
|
|||||||
to be tracked without relying on useful <code>toString</code> implementations.
|
to be tracked without relying on useful <code>toString</code> implementations.
|
||||||
These are of the form:
|
These are of the form:
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
<em>classname</em>@<em>system identity hash code</em>
|
<em>classname</em>@<em>system identity hash code</em>
|
||||||
</pre></code>
|
</code>
|
||||||
<p>
|
<p>
|
||||||
The <em>system identity hash code</em> is found by calling <code>System.identityHashCode()</code>
|
The <em>system identity hash code</em> is found by calling <code>System.identityHashCode()</code>
|
||||||
which should uniquely identify a particular instance. The classname is usually the fully qualified
|
which should uniquely identify a particular instance. The classname is usually the fully qualified
|
||||||
class name though in a few cases, <code>org.apache.commons.logging.impl.LogFactoryImpl</code> may be
|
class name though in a few cases, <code>org.apache.commons.logging.impl.LogFactoryImpl</code> may be
|
||||||
shortened to <code>LogFactoryImpl</code> to increase ease of reading. For example:
|
shortened to <code>LogFactoryImpl</code> to increase ease of reading. For example:
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
sun.misc.Launcher$AppClassLoader@20120943
|
sun.misc.Launcher$AppClassLoader@20120943
|
||||||
LogFactoryImpl@1671711
|
LogFactoryImpl@1671711
|
||||||
</pre></code>
|
</code>
|
||||||
<p>
|
<p>
|
||||||
OIDs are intended to be used to cross-reference. They allow particular instances of classloaders
|
OIDs are intended to be used to cross-reference. They allow particular instances of classloaders
|
||||||
and JCL classes to be tracked in different contexts. This plays a vital role in building
|
and JCL classes to be tracked in different contexts. This plays a vital role in building
|
||||||
@@ -158,9 +155,9 @@ up the understanding of the classloader environment required to diagnose JCL pro
|
|||||||
Each diagnostic message is prefixed with details of the relevant class in a standard format.
|
Each diagnostic message is prefixed with details of the relevant class in a standard format.
|
||||||
This takes the form:
|
This takes the form:
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
[<em>class-identifier</em> from <em>ClassLoader OID</em>]
|
[<em>class-identifier</em> from <em>ClassLoader OID</em>]
|
||||||
</pre></code>
|
</code>
|
||||||
<p>
|
<p>
|
||||||
<em>ClassLoader OID</em> is the <a href='#OIDs'>OID</a> of a classloader which loaded
|
<em>ClassLoader OID</em> is the <a href='#OIDs'>OID</a> of a classloader which loaded
|
||||||
the class issuing the message.
|
the class issuing the message.
|
||||||
@@ -170,19 +167,19 @@ the class issuing the message.
|
|||||||
In the case of
|
In the case of
|
||||||
<code>LogFactory</code>, this is just <code>LogFactory</code>. For example (line split):
|
<code>LogFactory</code>, this is just <code>LogFactory</code>. For example (line split):
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
[LogFactory
|
[LogFactory
|
||||||
from sun.misc.Launcher$AppClassLoader@20120943] BOOTSTRAP COMPLETED
|
from sun.misc.Launcher$AppClassLoader@20120943] BOOTSTRAP COMPLETED
|
||||||
</pre></code>
|
</code>
|
||||||
<p>
|
<p>
|
||||||
In the case of
|
In the case of
|
||||||
<code>LogFactoryImpl</code>, the prefix is the instance OID. This can be cross referenced
|
<code>LogFactoryImpl</code>, the prefix is the instance OID. This can be cross referenced
|
||||||
to discover the details of the TCCL used to manage this instance. For example (line split):
|
to discover the details of the TCCL used to manage this instance. For example (line split):
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
[LogFactoryImpl@1671711
|
[LogFactoryImpl@1671711
|
||||||
from sun.misc.Launcher$AppClassLoader@20120943] Instance created.
|
from sun.misc.Launcher$AppClassLoader@20120943] Instance created.
|
||||||
</pre></code>
|
</code>
|
||||||
</subsection>
|
</subsection>
|
||||||
<subsection name='ClassLoader Hierarchy Tree'>
|
<subsection name='ClassLoader Hierarchy Tree'>
|
||||||
<p>
|
<p>
|
||||||
@@ -193,12 +190,12 @@ Each classloader is represented (visually) by an OID (to allow cross referencing
|
|||||||
and the relationship indicated in <code><em>child</em> --> <em>parent</em></code> fashion.
|
and the relationship indicated in <code><em>child</em> --> <em>parent</em></code> fashion.
|
||||||
For example (line split for easy reading):
|
For example (line split for easy reading):
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
ClassLoader tree:java.net.URLClassLoader@3526198
|
ClassLoader tree:java.net.URLClassLoader@3526198
|
||||||
--> sun.misc.Launcher$AppClassLoader@20120943 (SYSTEM)
|
--> sun.misc.Launcher$AppClassLoader@20120943 (SYSTEM)
|
||||||
--> sun.misc.Launcher$ExtClassLoader@11126876
|
--> sun.misc.Launcher$ExtClassLoader@11126876
|
||||||
--> BOOT
|
--> BOOT
|
||||||
</pre></code>
|
</code>
|
||||||
<p>
|
<p>
|
||||||
Represents a hierarchy with four elements ending in the boot classloader.
|
Represents a hierarchy with four elements ending in the boot classloader.
|
||||||
</p>
|
</p>
|
||||||
@@ -216,15 +213,15 @@ are logged.
|
|||||||
<p>
|
<p>
|
||||||
Many Sun classloaders have confusing <code>toString</code> values. For example, the OID may be
|
Many Sun classloaders have confusing <code>toString</code> values. For example, the OID may be
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
sun.misc.Launcher$AppClassLoader@20120943
|
sun.misc.Launcher$AppClassLoader@20120943
|
||||||
</pre></code>
|
</code>
|
||||||
<p>
|
<p>
|
||||||
with a <code>toString</code> value of
|
with a <code>toString</code> value of
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
sun.misc.Launcher$AppClassLoader@133056f
|
sun.misc.Launcher$AppClassLoader@133056f
|
||||||
</pre></code>
|
</code>
|
||||||
<p>
|
<p>
|
||||||
Other classloader implementations may give very useful information (such as the local classpath).
|
Other classloader implementations may give very useful information (such as the local classpath).
|
||||||
</p>
|
</p>
|
||||||
@@ -252,7 +249,7 @@ allowing the <a href='#OIDs'>OID</a> later to be cross-referenced to the <code>t
|
|||||||
and the <a href='#ClassLoader%20Hierarchy%20Tree'>classloader tree</a>. For example, the
|
and the <a href='#ClassLoader%20Hierarchy%20Tree'>classloader tree</a>. For example, the
|
||||||
following log snippet details the TCCL (lines split):
|
following log snippet details the TCCL (lines split):
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
[LogFactory from sun.misc.Launcher$AppClassLoader@20120943]
|
[LogFactory from sun.misc.Launcher$AppClassLoader@20120943]
|
||||||
[LOOKUP] LogFactory implementation requested for the first time for context
|
[LOOKUP] LogFactory implementation requested for the first time for context
|
||||||
classloader java.net.URLClassLoader@3526198
|
classloader java.net.URLClassLoader@3526198
|
||||||
@@ -263,7 +260,7 @@ following log snippet details the TCCL (lines split):
|
|||||||
--> sun.misc.Launcher$AppClassLoader@20120943 (SYSTEM)
|
--> sun.misc.Launcher$AppClassLoader@20120943 (SYSTEM)
|
||||||
--> sun.misc.Launcher$ExtClassLoader@11126876
|
--> sun.misc.Launcher$ExtClassLoader@11126876
|
||||||
--> BOOT
|
--> BOOT
|
||||||
</pre></code>
|
</code>
|
||||||
</subsection>
|
</subsection>
|
||||||
<subsection name='Log Discovery Diagnostics'>
|
<subsection name='Log Discovery Diagnostics'>
|
||||||
<p>
|
<p>
|
||||||
@@ -305,11 +302,11 @@ The Apache Commons team would be grateful if reports were posted to the developm
|
|||||||
of other containers using a custom implementation.
|
of other containers using a custom implementation.
|
||||||
</p>
|
</p>
|
||||||
<subsection name='The Incompatible LogFactory Issue'>
|
<subsection name='The Incompatible LogFactory Issue'>
|
||||||
<subsection name='Symptoms'>
|
<h4 id='Symptoms'>Symptoms</h4>
|
||||||
<p>
|
<p>
|
||||||
An exception is thrown by JCL with a message similar to:
|
An exception is thrown by JCL with a message similar to:
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
The chosen LogFactory implementation does not extend LogFactory. Please check your configuration.
|
The chosen LogFactory implementation does not extend LogFactory. Please check your configuration.
|
||||||
(Caused by java.lang.ClassCastException: The application has specified that a custom LogFactory
|
(Caused by java.lang.ClassCastException: The application has specified that a custom LogFactory
|
||||||
implementation should be used but Class 'com.ibm.ws.commons.logging.TrLogFactory' cannot be converted
|
implementation should be used but Class 'com.ibm.ws.commons.logging.TrLogFactory' cannot be converted
|
||||||
@@ -319,14 +316,13 @@ of other containers using a custom implementation.
|
|||||||
LogFactory then it is likely that the container has set one without your knowledge.
|
LogFactory then it is likely that the container has set one without your knowledge.
|
||||||
In this case, consider using the commons-logging-adapters.jar file or specifying the standard
|
In this case, consider using the commons-logging-adapters.jar file or specifying the standard
|
||||||
LogFactory from the command line. Help can be found @https//commons.apache.org/logging.
|
LogFactory from the command line. Help can be found @https//commons.apache.org/logging.
|
||||||
</pre></code>
|
</code>
|
||||||
<p>
|
<p>
|
||||||
This is a WebSphere example so the name of the custom LogFactory is
|
This is a WebSphere example so the name of the custom LogFactory is
|
||||||
<code>com.ibm.ws.commons.logging.TrLogFactory</code>. For other containers, this class name will
|
<code>com.ibm.ws.commons.logging.TrLogFactory</code>. For other containers, this class name will
|
||||||
differ.
|
differ.
|
||||||
</p>
|
</p>
|
||||||
</subsection>
|
<h4 id='Explanation'>Explanation</h4>
|
||||||
<subsection name='Explanation'>
|
|
||||||
<p>
|
<p>
|
||||||
A custom <code>LogFactory</code> implementation can only be used if the implementation class loaded
|
A custom <code>LogFactory</code> implementation can only be used if the implementation class loaded
|
||||||
dynamically at runtime can be cast to the <code>LogFactory</code> class that loaded it. There are
|
dynamically at runtime can be cast to the <code>LogFactory</code> class that loaded it. There are
|
||||||
@@ -357,8 +353,7 @@ containers which have custom implementations: the above runtime exception may be
|
|||||||
under certain classloading policies without the user knowingly specifying a custom
|
under certain classloading policies without the user knowingly specifying a custom
|
||||||
implementation.
|
implementation.
|
||||||
</p>
|
</p>
|
||||||
</subsection>
|
<h4 id='Fixes'>Fixes</h4>
|
||||||
<subsection name='Fixes'>
|
|
||||||
<p>
|
<p>
|
||||||
There are various ways to fix this problem. Which fix is right depends on the circumstances.
|
There are various ways to fix this problem. Which fix is right depends on the circumstances.
|
||||||
</p>
|
</p>
|
||||||
@@ -371,9 +366,9 @@ implementation.
|
|||||||
If you want to bypass the container adaption mechanism then set the appropriate system property
|
If you want to bypass the container adaption mechanism then set the appropriate system property
|
||||||
to the default value when the container is started:
|
to the default value when the container is started:
|
||||||
</p>
|
</p>
|
||||||
<code><pre>
|
<code>
|
||||||
-Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
|
-Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
|
||||||
</pre></code>
|
</code>
|
||||||
<p>
|
<p>
|
||||||
If you want to continue to use the default container mechanism then:
|
If you want to continue to use the default container mechanism then:
|
||||||
</p>
|
</p>
|
||||||
@@ -393,7 +388,6 @@ implementation.
|
|||||||
<a href='#Using JCL Diagnostics'>diagnostics</a> and consult the logs.
|
<a href='#Using JCL Diagnostics'>diagnostics</a> and consult the logs.
|
||||||
</p>
|
</p>
|
||||||
</subsection>
|
</subsection>
|
||||||
</subsection>
|
|
||||||
</section>
|
</section>
|
||||||
<section name='Containers With Custom ClassLoading Behaviour for Logging'>
|
<section name='Containers With Custom ClassLoading Behaviour for Logging'>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ import junit.framework.TestCase;
|
|||||||
|
|
||||||
public class WeakHashtableTestCase extends TestCase {
|
public class WeakHashtableTestCase extends TestCase {
|
||||||
|
|
||||||
public static class StupidThread extends Thread {
|
public static class TestThread extends Thread {
|
||||||
|
|
||||||
public StupidThread(final String name) {
|
public TestThread(final String name) {
|
||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,7 +183,7 @@ public class WeakHashtableTestCase extends TestCase {
|
|||||||
for (int j=1; j <= OUTER_LOOP; j++) {
|
for (int j=1; j <= OUTER_LOOP; j++) {
|
||||||
hashtable = new WeakHashtable();
|
hashtable = new WeakHashtable();
|
||||||
for (int i = 0; i < t.length; i++) {
|
for (int i = 0; i < t.length; i++) {
|
||||||
t[i] = new StupidThread("Thread:" + i);
|
t[i] = new TestThread("Thread:" + i);
|
||||||
t[i].setDaemon(true); // Otherwise we cannot exit
|
t[i].setDaemon(true); // Otherwise we cannot exit
|
||||||
t[i].start();
|
t[i].start();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ public abstract class StandardTests extends TestCase {
|
|||||||
* </ul>
|
* </ul>
|
||||||
*
|
*
|
||||||
* @param logEvents is the list of log events received.
|
* @param logEvents is the list of log events received.
|
||||||
*
|
|
||||||
* @param thrown False if logPlainMessages was called
|
* @param thrown False if logPlainMessages was called
|
||||||
* (ie the TestAppender is expected to have received
|
* (ie the TestAppender is expected to have received
|
||||||
* logevents with no associated exception info). True if
|
* logevents with no associated exception info). True if
|
||||||
|
|||||||
Reference in New Issue
Block a user