[VOTE] Release Apache Log4j 2.21.0

2023-10-13 Thread Christian Grobmeier
This is a vote to release the Apache Log4j 2.21.0.

Website: https://logging-log4j.staged.apache.org/log4j/2.x/
GitHub: https://github.com/apache/logging-log4j2
Commit: 493d9a9daabc72d10582c4682538baa93a2a
Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j
Nexus: https://repository.apache.org/content/repositories/orgapachelogging-1202
Signing key: 0x077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0

Please download, test, and cast your votes on this mailing list.

[ ] +1, release the artifacts
[ ] -1, don't release, because...

This vote is open for 72 hours and will pass unless getting a
net negative vote count. All votes are welcome and we encourage
everyone to test the release, but only the Logging Services PMC
votes are officially counted.

== Release Notes

This release primarily focuses on enhancements to our OSGi and JPMS support and 
contains several bug fixes.
It will be the first release built and signed by the CI using the 
https://keyserver.ubuntu.com/pks/lookup?search=077E8893A6DCC33DD4A4D5B256E73BA9A0B592D0&op=index[ASF
 Logging Services Release Manager GPG key], which is shared in 
https://www.apache.org/dist/logging/KEYS[KEYS].

The Log4j 2.21.0 API, as well as the other artifacts, maintains binary 
compatibility with the previous release.

Apache Log4j 2.21.0 requires Java 8 to run.
The build requires JDK 11 and generates reproducible binaries.

For complete information on Apache Log4j 2, including instructions on how to 
submit bug reports, patches, get support, or suggestions for improvement, see 
http://logging.apache.org/log4j/2.x/[the Apache Log4j 2 website].

=== OSGi changes

All the published artifacts are OSGi bundles or fragments.

This release introduces a change in the bundle symbolic names to allow them to 
function as JPMS module name: all hyphens `-` present in the bundle names of 
previous releases were replaced by dots `.`.

=== JPMS changes

All the published artifacts have been migrated from automatic modules to named 
JPMS modules.
All packages marked as private in the Javadoc are not exported.

The module name of four bridges (`log4j-slf4j-impl`, `log4j-slf4j2-impl`, 
`log4j-to-jul` and `log4j-to-slf4j`) have been changed to adhere to the same 
convention as the OSGi bundle names.


=== Added

* Added marker parent support to `JsonTemplateLayout` (#1381)
* Added https://facebook.github.io/zstd/[ZStandard compression] support (#1508, 
#1514)
* Added a warning for incorrect syntax of highlighting styles (#1545, #1637)

=== Changed

* Open `FileExtension` methods to allow their usage in custom 
``RolloverStrategy``s (#1365, #1683)
* Bumped the minimum Java version required for the build to JDK 11. Runtime 
requirements remain unchanged. (#1369)
* Set the default `minLevel` and `maxLevel` of `LevelRangeFilter` to `OFF` and 
`ALL`, respectively (#1503)
* Removed additional `isFiltered` checks in `AsyncLoggerConfig` (#1550)
* Use Java version-specific warnings in `StackLocator` (#1760)
* Started logging a status error event instead of an NPE in 
`OsgiServiceLocator.loadServices(Class, Lookup, boolean)` when a bundle has no 
valid `BundleContext` for a service type
* Implemented a CI-based release process
* Update Eclipse Angus Activation to version 
https://github.com/eclipse-ee4j/angus-activation/releases/tag/2.0.1[2.0.1] 
(#1591)
* Update Eclipse Angus Mail to version 
https://github.com/eclipse-ee4j/angus-mail/releases/tag/2.0.2[2.0.2] (#1591)
* Update `com.datastax.cassandra:cassandra-driver-core` to version 3.11.5 
(#1591)
* Update Apache Cassandra to version 
https://github.com/apache/cassandra/blob/cassandra-3.11/CHANGES.txt[3.11.16] 
(#1591)
* Update Apache Commons Compress to version 
https://commons.apache.org/proper/commons-compress/changes-report.html#a1.24.0[1.24.0]
 (#1591)
* Update Apache Commons CSV to version 
https://commons.apache.org/proper/commons-csv/changes-report.html#a1.10.0[1.10.0]
 (#1591)
* Update Jackson to version 
https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.15.2[2.15.2] (#1591)
* Update Jakarta Activation API to version 
https://jakarta.ee/specifications/activation/2.1/changelog/[2.1.2] (#1591)
* Update Jakarta Mail API to version 
https://jakarta.ee/specifications/mail/2.1/changelog/[2.1.2] (#1591)
* Update JCTools to version 
https://github.com/JCTools/JCTools/blob/master/RELEASE-NOTES.md[4.0.1] (#1591)
* Update Apache Kafka to version 
https://archive.apache.org/dist/kafka/3.4.0/RELEASE_NOTES.html[3.4.0] (#1591)
* Update Kubernetes client to version 
https://github.com/fabric8io/kubernetes-client/releases?q=5.12.4[5.12.4] (#1591)
* Update `org.mongodb:mongodb-driver-core` to version 4.10.2 (#1591)
* Update `io.netty:netty-bom` to version 4.1.97 (#1591)
* Update Spring Boot to version 
https://github.com/spring-projects/spring-boot/releases/tag/v2.7.15[2.7.15] 
(#1591)
* Update Spring Framework to version 
https://github.com/spring-projects/spring-framework/releases/tag/v5.3.29[5.3.29]
 (#1591)
* Update Tomcat JULI 

Re: [VOTE] Release Apache Log4j 2.21.0

2023-10-13 Thread Volkan Yazıcı
✔ Binaries
✔ Sources
✔ Website (incl. Javadocs)
𐄂 Website URL[1]
✔ Signatures
✔ Checksums

+1

Thanks for taking care of the release Christian!

[1] Christian's recent Jekyll experiment on the `asf-staging` branch
of `logging-site` repository confused the INFRA and it is acting
strangely. This will *NOT* be an issue when we push the website
changes to production, i.e., `asf-site` branch. Though we will try
fixing `asf-staging` anyway in the meantime.

This release incorporates a humongous amount of infrastructural
changes to the project that Piotr and I have been working on for
months. My personal favorites:

1. Support for parallel Maven builds! First run is always a bumpy one
due to the mysterious ways plugins operate. Though so far I have been
enjoying `./mvnw -T2C install -DskipTests` or `./mvnw verify -T2C -pl
\!:log4j-mongodb3,\!:log4j-mongodb4` a lot! See the `-T2C` there? Yup!
(Embedded MongoDb server library's initial setup functionally doesn't
support concurrent runs.)

2. Stellar CI support! We migrated all Maven-based projects
(`logging-parent`, `-log4j2`, `-log4j-tools`, `-log4j-scala`,
`-log4j-kotlin`, `-log4j-transform`, `-log4j-jmx-gui`) to a unified CI
infrastructure where they all share the same automated release process
and `dependabot` auto-merge voodoo! Christian single-handedly cutting
this release himself is a solid proof of this convenience.

3. Major-version-specific URL convenience:
https://logging.apache.org/log4j/kotlin/latest (redirected to `1.x`)
https://logging.apache.org/log4j/kotlin/1.x
Notice the `latest` and `1.x`? We *will* apply the same practice to
Log4j too. You will eventually be seeing:
https://logging.apache.org/log4j/latest (redirected to `2.x`)
https://logging.apache.org/log4j/1.x
https://logging.apache.org/log4j/2.x
https://logging.apache.org/log4j/3.x

4. Every dependency that is upgradable is upgraded.


On Fri, Oct 13, 2023 at 11:09 AM Christian Grobmeier
 wrote:
>
> This is a vote to release the Apache Log4j 2.21.0.
>
> Website: https://logging-log4j.staged.apache.org/log4j/2.x/
> GitHub: https://github.com/apache/logging-log4j2
> Commit: 493d9a9daabc72d10582c4682538baa93a2a
> Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j
> Nexus: 
> https://repository.apache.org/content/repositories/orgapachelogging-1202
> Signing key: 0x077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0
>
> Please download, test, and cast your votes on this mailing list.
>
> [ ] +1, release the artifacts
> [ ] -1, don't release, because...
>
> This vote is open for 72 hours and will pass unless getting a
> net negative vote count. All votes are welcome and we encourage
> everyone to test the release, but only the Logging Services PMC
> votes are officially counted.
>
> == Release Notes
>
> This release primarily focuses on enhancements to our OSGi and JPMS support 
> and contains several bug fixes.
> It will be the first release built and signed by the CI using the 
> https://keyserver.ubuntu.com/pks/lookup?search=077E8893A6DCC33DD4A4D5B256E73BA9A0B592D0&op=index[ASF
>  Logging Services Release Manager GPG key], which is shared in 
> https://www.apache.org/dist/logging/KEYS[KEYS].
>
> The Log4j 2.21.0 API, as well as the other artifacts, maintains binary 
> compatibility with the previous release.
>
> Apache Log4j 2.21.0 requires Java 8 to run.
> The build requires JDK 11 and generates reproducible binaries.
>
> For complete information on Apache Log4j 2, including instructions on how to 
> submit bug reports, patches, get support, or suggestions for improvement, see 
> http://logging.apache.org/log4j/2.x/[the Apache Log4j 2 website].
>
> === OSGi changes
>
> All the published artifacts are OSGi bundles or fragments.
>
> This release introduces a change in the bundle symbolic names to allow them 
> to function as JPMS module name: all hyphens `-` present in the bundle names 
> of previous releases were replaced by dots `.`.
>
> === JPMS changes
>
> All the published artifacts have been migrated from automatic modules to 
> named JPMS modules.
> All packages marked as private in the Javadoc are not exported.
>
> The module name of four bridges (`log4j-slf4j-impl`, `log4j-slf4j2-impl`, 
> `log4j-to-jul` and `log4j-to-slf4j`) have been changed to adhere to the same 
> convention as the OSGi bundle names.
>
>
> === Added
>
> * Added marker parent support to `JsonTemplateLayout` (#1381)
> * Added https://facebook.github.io/zstd/[ZStandard compression] support 
> (#1508, #1514)
> * Added a warning for incorrect syntax of highlighting styles (#1545, #1637)
>
> === Changed
>
> * Open `FileExtension` methods to allow their usage in custom 
> ``RolloverStrategy``s (#1365, #1683)
> * Bumped the minimum Java version required for the build to JDK 11. Runtime 
> requirements remain unchanged. (#1369)
> * Set the default `minLevel` and `maxLevel` of `LevelRangeFilter` to `OFF` 
> and `ALL`, respectively (#1503)
> * Removed additional `isFiltered` checks in `AsyncLoggerConfig` (#1550)
> * U

Re: [VOTE] Release Apache Log4j 2.21.0

2023-10-13 Thread Piotr P. Karwasz
Hi all,

On Fri, 13 Oct 2023 at 12:16, Volkan Yazıcı  wrote:
>
> ✔ Binaries
> ✔ Sources
> ✔ Website (incl. Javadocs)
> 𐄂 Website URL[1]
> ✔ Signatures
> ✔ Checksums
>
> +1

Same here:
 * the binaries in the binary archive, Maven repo and locally
generated are identical. Somehow `log4j-perf` made it to the Maven
repo, but I don't consider it a major problem,
 * the website looks Ok.

+1

> Thanks for taking care of the release Christian!

Same here.

> [1] Christian's recent Jekyll experiment on the `asf-staging` branch
> of `logging-site` repository confused the INFRA and it is acting
> strangely. This will *NOT* be an issue when we push the website
> changes to production, i.e., `asf-site` branch. Though we will try
> fixing `asf-staging` anyway in the meantime.

I think that the problem is that the `asf-staging` branch in
`logging-site` has switched from a `content` folder to an `output`
folder, while some of our 6 other site repos have a `content` folder.
It is fixable, but INFRA offers us an infinite number of
`logging-.staged.apache.org` domains and I think we should use
it.

Whenever we stage the website of a `foo` subproject we can:
 * branch `asf-site` into a `site/foo` branch to be staged on
`logging-foo.staged.apache.org`,
 * review the website,
 * when `foo` is released we can just fast-forward `asf-site` to
`site/foo`. Worst case scenario (if we have multiple votes at the same
time), we can rebase `site/foo` on the current `asf-site` and merge
it.

> 1. Support for parallel Maven builds! First run is always a bumpy one
> due to the mysterious ways plugins operate. Though so far I have been
> enjoying `./mvnw -T2C install -DskipTests` or `./mvnw verify -T2C -pl
> \!:log4j-mongodb3,\!:log4j-mongodb4` a lot! See the `-T2C` there? Yup!
> (Embedded MongoDb server library's initial setup functionally doesn't
> support concurrent runs.)

Yes, Embedded MongoDB is quite error prone: it downloads a generic
MongoDB binary release and runs it on the build host.
Since these binaries depend on certain dynamic libraries, the tests
can fail on some distributions.
Gary, what do you think if we replace Embedded MongoDB with a Docker image?

Piotr


Staging website (was: [VOTE] Release Apache Log4j 2.21.0)

2023-10-13 Thread Christian Grobmeier


>> [1] Christian's recent Jekyll experiment on the `asf-staging` branch
>> of `logging-site` repository confused the INFRA and it is acting
>> strangely. This will *NOT* be an issue when we push the website
>> changes to production, i.e., `asf-site` branch. Though we will try
>> fixing `asf-staging` anyway in the meantime.

On Fri, Oct 13, 2023, at 13:28, Piotr P. Karwasz wrote:
> I think that the problem is that the `asf-staging` branch in
> `logging-site` has switched from a `content` folder to an `output`
> folder, while some of our 6 other site repos have a `content` folder.
> It is fixable, but INFRA offers us an infinite number of
> `logging-.staged.apache.org` domains and I think we should use
> it.

According to this doc:
https://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=INFRA&title=git+-+.asf.yaml+features#Git.asf.yamlfeatures-WebsitedeploymentserviceforGitrepositories

We just have to give it a profile:

staging:
  profile: mystuff

Would result in:

logging-mystuff.staged.apache.org

I can easily migrate to this.

The folder "output" is the default with ASF infra, but it is possible to 
replace it with content:

jekyll:
  whoami: jekyll
  target: asf-staging 
  outputdir: content 

Why is content not causing this issue?
For me both is possible, just trying to understand the best way.

Kind regards,
Christian


Re: [VOTE] Release Apache Log4j Scala 13.0.0

2023-10-13 Thread Volkan Yazıcı
Adding my +1.

With that, the release passes with 3 binding +1 votes from Piotr,
Matt, and me. I will continue the release process.

On Tue, Oct 10, 2023 at 1:21 PM Volkan Yazıcı  wrote:
>
> This is a vote to release the Apache Log4j Scala 13.0.0.
>
> Website: https://logging.staged.apache.org/log4j/scala
> GitHub: https://github.com/apache/logging-log4j-scala
> Commit: 980f4ed0ba53f93d1514df65ddafb6f97396a975
> Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j-scala
> Nexus: 
> https://repository.apache.org/content/repositories/orgapachelogging-1200
> Signing key: 0x077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0
>
> Please download, test, and cast your votes on this mailing list.
>
> [ ] +1, release the artifacts
> [ ] -1, don't release, because...
>
> This vote is open for 72 hours and will pass unless getting a
> net negative vote count. All votes are welcome and we encourage
> everyone to test the release, but only the Logging Services PMC
> votes are officially counted. At least 3 +1 votes and more
> positive than negative votes are required.
>
> === Reproducibility
>
> The `log4j-api-scala_3.jar` artifact targeting Scala 3 in this release
> is not reproducible due to a bug in the Scala 3 compiler[1]. (The
> other 4 artifacts are reproducible!) Though I don't find this a
> release blocker since we can verify that the difference breaking the
> reproducibility is just a member ordering problem, which doesn't have
> any practical effect from a user's point of view.
>
> [1] https://github.com/lampepfl/dotty/issues/18248
>
>  What about CI checks?
>
> Note that CI-based reproducibility checks pass, since the issue
> appears to be only observable when sources are built on hosts with
> different specs.
>
>  How can I check the reproducibility myself?
>
> export 
> NEXUS_REPO=https://repository.apache.org/content/repositories/orgapachelogging-1200
> ./mvnw verify artifact:compare -Dreference.repo=$NEXUS_REPO
>
>  How can I view the difference myself?
>
> ./mvnw package
> mkdir t && cd $_
> wget 
> https://repository.apache.org/content/repositories/orgapachelogging-1200/org/apache/logging/log4j/log4j-api-scala_3/13.0.0/log4j-api-scala_3-13.0.0.jar
> unzip log4j-api-scala_3-13.0.0.jar -d reference
> unzip ../log4j-api-scala_3/target/log4j-api-scala_3-13.0.0.jar -d local
> diff -r reference local
> # `diff` will point out that only `LoggingContext$.class` doesn't match
> javap 'reference/org/apache/logging/log4j/scala/LoggingContext$.class'
> > reference.LoggingContext
> javap 'local/org/apache/logging/log4j/scala/LoggingContext$.class' >
> local.LoggingContext
> diff -u reference.LoggingContext local.LoggingContext
>
>  What is the difference?
>
> Decompiling and comparing `LoggingContext$.class` files produce the
> following output:
>
> --- reference.LoggingContext 2023-10-10 12:58:35.188544183 +0200
> +++ local.LoggingContext 2023-10-10 12:58:41.152551071 +0200
> @@ -114,30 +114,30 @@
>public scala.collection.LazyZip2 lazyZip(scala.collection.Iterable);
>public scala.collection.IterableFactory iterableFactory();
>public scala.Function1 compose(scala.Function1);
> -  public double apply$mcDI$sp(int);
> -  public double apply$mcDJ$sp(long);
> -  public double apply$mcDF$sp(float);
> -  public double apply$mcDD$sp(double);
> +  public int apply$mcII$sp(int);
> +  public int apply$mcIJ$sp(long);
> +  public int apply$mcIF$sp(float);
> +  public int apply$mcID$sp(double);
>public boolean apply$mcZI$sp(int);
>public boolean apply$mcZJ$sp(long);
>public boolean apply$mcZF$sp(float);
>public boolean apply$mcZD$sp(double);
> -  public long apply$mcJI$sp(int);
> -  public long apply$mcJJ$sp(long);
> -  public long apply$mcJF$sp(float);
> -  public long apply$mcJD$sp(double);
> -  public void apply$mcVI$sp(int);
> -  public void apply$mcVJ$sp(long);
> -  public void apply$mcVF$sp(float);
> -  public void apply$mcVD$sp(double);
>public float apply$mcFI$sp(int);
>public float apply$mcFJ$sp(long);
>public float apply$mcFF$sp(float);
>public float apply$mcFD$sp(double);
> -  public int apply$mcII$sp(int);
> -  public int apply$mcIJ$sp(long);
> -  public int apply$mcIF$sp(float);
> -  public int apply$mcID$sp(double);
> +  public void apply$mcVI$sp(int);
> +  public void apply$mcVJ$sp(long);
> +  public void apply$mcVF$sp(float);
> +  public void apply$mcVD$sp(double);
> +  public double apply$mcDI$sp(int);
> +  public double apply$mcDJ$sp(long);
> +  public double apply$mcDF$sp(float);
> +  public double apply$mcDD$sp(double);
> +  public long apply$mcJI$sp(int);
> +  public long apply$mcJJ$sp(long);
> +  public long apply$mcJF$sp(float);
> +  public long apply$mcJD$sp(double);
>public scala.Option unapply(java.lang.Object);
>public scala.PartialFunction elementWise();
>public scala.PartialFunction orElse(scala.PartialFunction);
>
>  Why is it a simple ordering problem?
>
> Since `grep -E 'public (.+) apply\$' | sort` executed against bot

[ANNOUNCE] Apache Log4j Scala 13.0.0 released

2023-10-13 Thread Volkan Yazıcı
Apache Log4j Scala team is pleased to announce the 13.0.0
release. This project provides a Scala-friendly interface to log
against the Log4j API. For further information (support, download,
etc.) see the project website[1].

[1] https://logging.apache.org/log4j/scala

=== Release Notes

The highlights of this major release are Scala 3 support, JPMS
descriptors, and the switch to semantic versioning[2].

[2] https://semver.org

Note that this release is still binary backward compatible with the
earlier release `12.0`. Though we needed to bump the major
version number for the semantic versioning switch to avoid
the confusion related with version ordering.

 Added

* Added support for Scala 3 (LOG4J2-3184, #26)
* Added OSGi and JPMS support

 Changed

* Bumped the Java version to 17 (Scala 2.10 and 2.11 targets still
require Java 8 that build switches to using `maven-toolchains-plugin`)
* Switch the CI to GitHub Actions
* Switched from `sbt` to Maven to take advantage of `logging-parent`
conveniences
* Switched to semantic versioning
* Updated `org.apache.logging.log4j:log4j-api` version to `2.20.0`
* Update `org.apache.logging:logging-parent` to version `10.1.1`
* Started using `log4j-changelog`


Re: [site] Jekyll proposal (in branch)

2023-10-13 Thread Volkan Yazıcı
The current version is certainly way simpler than before, I liked it.

I agree with moving every "data" (members, projects, etc.) to its own data file.

I still prefer all typesetting performed in AsciiDoc. (I am not
telling you to do so immediately. But that is where I'd like this
initiative to go.)

As you yourself experienced from first hand by breaking
`logging.staged.apache.org` domain, anything INFRA supports comes with
a big catch. I prefer rolling our own CI-triggered Jekyll compiler,
rather than relying on the one INFRA provides. But again, this we can
tackle at a later stage. Though at least now you can relate to my
"INFRA fatigue". ;-P

On Thu, Oct 12, 2023 at 6:16 PM Christian Grobmeier
 wrote:
>
> Hello,
>
> I made the Jekyll branch work with the staging environment:
> https://logging.staged.apache.org/
>
> When you change something in the sources, it will be automatically deployed 
> to Staging.
>
> We also have a "news section", aka blog:
> https://logging.staged.apache.org/blog/
>
> To add or change a project, you made want to edit:
> https://github.com/apache/logging-site/blob/jekyll/_data/projects.yml
> You can edit it directly in Github UI if you prefer to try it out.
>
> It will take a few seconds to build and deploy.
>
> I want to move the Team members to a data file as well.
>
> If no objections, I'd like to move this to asf-site
>
> Kind regards,
> Christian
>
>
> On Tue, Oct 10, 2023, at 23:10, Christian Grobmeier wrote:
> > Hello,
> >
> > Based on recent comments, I made a branch for using Jekyll on the
> > leading site. It's a branch, we can discard it. The migration took me
> > 1.5h, excluding this e-mail - not much wasted.
> >
> > https://github.com/apache/logging-site/tree/jekyll
> >
> > This is not yet auto-deployed, but if nobody opposes it, I will move
> > on, merge, and autodeploy.
> >
> > Here is some info:
> >
> > Jekyll supports data files like this:
> > https://github.com/apache/logging-site/blob/jekyll/_data/projects.yml
> >
> > In the future, one could modify those data files directly from GitHub
> > UI to update a status or a team member. It would be autodeployed then.
> > The code for the output is also simple:
> >
> > https://github.com/apache/logging-site/blob/jekyll/index.html
> >
> > The amount of HTML has decreased. In addition, I was able to use
> > Flexbox, which is built-in to browsers (no more slow Bootstrap in this
> > case)
> >
> > We also can make use of SCSS now, which can use advanced CSS (in this
> > case only nesting):
> > https://github.com/apache/logging-site/blob/jekyll/css/site.scss#L44
> >
> > The current team list could be moved to a data file, too, but I left it
> > as adoc to showcase that this Jekyll page can work with adoc as well:
> > https://github.com/apache/logging-site/blob/jekyll/team-list.adoc
> >
> > If you want to work with Jekyll, you can run the scripts:
> >
> > ./run-docker-build.sh (only one time; Docker needs to be installed)
> > ./run-jekyll.sh (when you want to work)
> >
> > This way, you can build locally and check. However, you don't need to
> > do this to update tiny things quickly.
> >
> > Please let me know if you want to object; otherwise, I would love to
> > move this forward.
> >
> > If we, at some later point in time, move on to something like Antora, I
> > will gladly help to migrate; however, since we are using adoc for this
> > website as well, it should be straightforward.
> >
> > As soon as I have a go for this, I will prepare a blog section
> > announcing the latest releases and preparing everything for some
> > announcements we had in mind on the PMC list.
> >
> > Kind regards,
> > Christian


Re: [PR] Bump com.github.spotbugs:spotbugs-annotations from 4.7.3 to 4.8.0 [logging-log4j-jmx-gui]

2023-10-13 Thread via GitHub


vy merged PR #1:
URL: https://github.com/apache/logging-log4j-jmx-gui/pull/1


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@logging.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: Staging website (was: [VOTE] Release Apache Log4j 2.21.0)

2023-10-13 Thread Piotr P. Karwasz
Hi Christian,

On Fri, 13 Oct 2023 at 13:46, Christian Grobmeier  wrote:
> Why is content not causing this issue?
> For me both is possible, just trying to understand the best way.

>From what I understand, if a branch (in any repo) has a configuration:

staging:
  whoami: name_of_the_branch
  profile: 
  subdir: 

INFRA copies the content of the branch into  of a directory
served by Apache HTTPD. Our current merged site should look like:

content/log4jphp/...Log4j PHP stuff...
output/...Jekyll stuff...

When this is done a script determines which folder is the document
root for the server. Since we have both `content` and `output` the
script probably fails (I don't see neither Log4PHP nor your Jekyll
stuff).

Piotr


Re: [site] Jekyll proposal (in branch)

2023-10-13 Thread Ralph Goers
I am getting a 404 trying to access https://logging.staged.apache.org.

Ralph

> On Oct 12, 2023, at 9:16 AM, Christian Grobmeier  wrote:
> 
> Hello,
> 
> I made the Jekyll branch work with the staging environment:
> https://logging.staged.apache.org/
> 
> When you change something in the sources, it will be automatically deployed 
> to Staging.
> 
> We also have a "news section", aka blog:
> https://logging.staged.apache.org/blog/
> 
> To add or change a project, you made want to edit:
> https://github.com/apache/logging-site/blob/jekyll/_data/projects.yml
> You can edit it directly in Github UI if you prefer to try it out.
> 
> It will take a few seconds to build and deploy.
> 
> I want to move the Team members to a data file as well.
> 
> If no objections, I'd like to move this to asf-site
> 
> Kind regards,
> Christian
> 
> 
> On Tue, Oct 10, 2023, at 23:10, Christian Grobmeier wrote:
>> Hello,
>> 
>> Based on recent comments, I made a branch for using Jekyll on the 
>> leading site. It's a branch, we can discard it. The migration took me 
>> 1.5h, excluding this e-mail - not much wasted.
>> 
>> https://github.com/apache/logging-site/tree/jekyll
>> 
>> This is not yet auto-deployed, but if nobody opposes it, I will move 
>> on, merge, and autodeploy.
>> 
>> Here is some info:
>> 
>> Jekyll supports data files like this:
>> https://github.com/apache/logging-site/blob/jekyll/_data/projects.yml
>> 
>> In the future, one could modify those data files directly from GitHub 
>> UI to update a status or a team member. It would be autodeployed then. 
>> The code for the output is also simple:
>> 
>> https://github.com/apache/logging-site/blob/jekyll/index.html
>> 
>> The amount of HTML has decreased. In addition, I was able to use 
>> Flexbox, which is built-in to browsers (no more slow Bootstrap in this 
>> case)
>> 
>> We also can make use of SCSS now, which can use advanced CSS (in this 
>> case only nesting):
>> https://github.com/apache/logging-site/blob/jekyll/css/site.scss#L44
>> 
>> The current team list could be moved to a data file, too, but I left it 
>> as adoc to showcase that this Jekyll page can work with adoc as well:
>> https://github.com/apache/logging-site/blob/jekyll/team-list.adoc
>> 
>> If you want to work with Jekyll, you can run the scripts:
>> 
>> ./run-docker-build.sh (only one time; Docker needs to be installed)
>> ./run-jekyll.sh (when you want to work)
>> 
>> This way, you can build locally and check. However, you don't need to 
>> do this to update tiny things quickly.
>> 
>> Please let me know if you want to object; otherwise, I would love to 
>> move this forward.
>> 
>> If we, at some later point in time, move on to something like Antora, I 
>> will gladly help to migrate; however, since we are using adoc for this 
>> website as well, it should be straightforward.
>> 
>> As soon as I have a go for this, I will prepare a blog section 
>> announcing the latest releases and preparing everything for some 
>> announcements we had in mind on the PMC list.
>> 
>> Kind regards,
>> Christian



Re: Staging website (was: [VOTE] Release Apache Log4j 2.21.0)

2023-10-13 Thread Ralph Goers
I get a 404 trying to access the log4j2 staging web site. Although technically 
not required for a release I am not comfortable voting for the release without 
being able to see the web site.

Ralph

> On Oct 13, 2023, at 6:46 AM, Piotr P. Karwasz  wrote:
> 
> Hi Christian,
> 
> On Fri, 13 Oct 2023 at 13:46, Christian Grobmeier  
> wrote:
>> Why is content not causing this issue?
>> For me both is possible, just trying to understand the best way.
> 
> From what I understand, if a branch (in any repo) has a configuration:
> 
> staging:
>  whoami: name_of_the_branch
>  profile: 
>  subdir: 
> 
> INFRA copies the content of the branch into  of a directory
> served by Apache HTTPD. Our current merged site should look like:
> 
> content/log4jphp/...Log4j PHP stuff...
> output/...Jekyll stuff...
> 
> When this is done a script determines which folder is the document
> root for the server. Since we have both `content` and `output` the
> script probably fails (I don't see neither Log4PHP nor your Jekyll
> stuff).
> 
> Piotr



Re: Staging website (was: [VOTE] Release Apache Log4j 2.21.0)

2023-10-13 Thread Ralph Goers
Nevermind. I was using the wrong url.

Ralph

> On Oct 13, 2023, at 8:21 AM, Ralph Goers  wrote:
> 
> I get a 404 trying to access the log4j2 staging web site. Although 
> technically not required for a release I am not comfortable voting for the 
> release without being able to see the web site.
> 
> Ralph
> 
>> On Oct 13, 2023, at 6:46 AM, Piotr P. Karwasz  
>> wrote:
>> 
>> Hi Christian,
>> 
>> On Fri, 13 Oct 2023 at 13:46, Christian Grobmeier  
>> wrote:
>>> Why is content not causing this issue?
>>> For me both is possible, just trying to understand the best way.
>> 
>> From what I understand, if a branch (in any repo) has a configuration:
>> 
>> staging:
>> whoami: name_of_the_branch
>> profile: 
>> subdir: 
>> 
>> INFRA copies the content of the branch into  of a directory
>> served by Apache HTTPD. Our current merged site should look like:
>> 
>> content/log4jphp/...Log4j PHP stuff...
>> output/...Jekyll stuff...
>> 
>> When this is done a script determines which folder is the document
>> root for the server. Since we have both `content` and `output` the
>> script probably fails (I don't see neither Log4PHP nor your Jekyll
>> stuff).
>> 
>> Piotr
> 



Re: [chainsaw] What is necessary for a 2.2 release?

2023-10-13 Thread Robert Middleton
For those of you who didn't see on slack: I did update Chainsaw last
night so you can load/save receivers.  That brings Chainsaw back into
a usable state(in my mind at least).  I need to check to ensure that
everything gets saved properly, but that shouldn't be too hard.

Scott, would you mind making some issues on github for features that
are needed/were removed?  I think one of the biggest problems that I
have seen with Chainsaw before is that there isn't a manual(at least
now somewhat mitigated) and/or a list of features and how to use them,
so I've just been going with what I feel makes the most sense to me.

The one thing that Scott pointed out was the ability to route messages
to tabs; all the plumbing for that should exist for the most part(each
ChainsawReceiver can have 0...N ChainsawEventBatchListener objects).
I'm not sure how best to let the user hook things up - some sort of
visual programming/flow-based view would be very cool but also very
complicated.

-Robert Middleton

On Mon, Oct 9, 2023 at 3:24 PM Christian Grobmeier  wrote:
>
> On Sun, Oct 8, 2023, at 23:19, Scott Deboy wrote:
> > I started but haven't had much time this week. The UI updates driven by
> > settings changes are most of what I have left.
>
> OK great to hear, in that case I hold myself back a little longer :)
>
> Thanks!
>
> >
> > On Sun, Oct 8, 2023, 2:17 PM Christian Grobmeier 
> > wrote:
> >
> >> geson seems to do a good job, like Jackson (same JSR).
> >> I'd like to move forward with JSON format for storing properties.
> >>
> >> I am not sure what the status currently is, if Scott is still working on
> >> it :) I could also make some kind of proposal or so for storing properties
> >>
> >> On Tue, Oct 3, 2023, at 01:20, Scott Deboy wrote:
> >> > I think persisting to json format makes sense/would be easy to consume
> >> > with tools if needed.
> >> >
> >> > On 10/2/23, Robert Middleton  wrote:
> >> >>> OK. Do you think something based on Jackson would be good? It's JSON
> >> >>> though.
> >> >>
> >> >> We already have a dependency on genson for JSON parsing, so if we
> >> >> really want to use JSON that would make the most sense.  Commons
> >> >> config can read/write XML; currently I just have it configured to do
> >> >> properties files.  I think we can write our own reader/writer as well,
> >> >> but ultimately I don't think that there is anything special that we
> >> >> need that commons config doesn't provide us out of the box.
> >> >>
> >> >> -Robert Middleton
> >> >>
> >> >> On Mon, Oct 2, 2023 at 5:14 PM Matt Sicker  wrote:
> >> >>>
> >> >>> Jackson makes for a good library here because it also supports several
> >> >>> data formats (YAML, XML, HOCON, and all sorts of others, both textual
> >> and
> >> >>> binary) and is fairly extensible for hooking any custom serialization
> >> or
> >> >>> deserialization logic you need. Given the desire to avoid Java
> >> >>> serialization, it is perfectly reasonable to avoid XStream as that’s
> >> >>> basically Java serialization using XML with all the pitfalls that
> >> entails
> >> >>> (I dealt with this fairly extensively back in the Jenkins project which
> >> >>> used an old fork of XStream for managing config files and state).
> >> >>>
> >> >>> I haven’t used Commons Configuration before, but it seems fairly
> >> >>> appropriate for this sort of thing as well.
> >> >>>
> >> >>> > On Oct 2, 2023, at 1:43 PM, Christian Grobmeier <
> >> grobme...@apache.org>
> >> >>> > wrote:
> >> >>> >
> >> >>> > On Mon, Oct 2, 2023, at 16:15, Robert Middleton wrote:
> >> >>> >> At least two reasons I can think of:
> >> >>> >> 1. Xstream doesn’t work on all java versions as you saw
> >> >>> >> 2. Simplify by using the commons config instead of rolling our own.
> >> >>> >>
> >> >>> >> Each tab should now have just one config file, the idea being that
> >> you
> >> >>> >> can
> >> >>> >> now share config files between people.  Before each tab had at least
> >> >>> >> two(maybe three) files.  One was the xml config, one was a java
> >> >>> >> serialized
> >> >>> >> map.  Removing the java serialization is important.
> >> >>> >
> >> >>> > OK. Do you think something based on Jackson would be good? It's JSON
> >> >>> > though.
> >> >>> >
> >> >>> > From an example:
> >> >>> >
> >> >>> > ObjectMapper objectMapper = new ObjectMapper();
> >> >>> > Car car = new Car("yellow", "renault");
> >> >>> > objectMapper.writeValue(new File("target/car.json"), car);
> >> >>> >
> >> >>> > We could wrap this in some kind of class and make it accessible per
> >> >>> > "tab" (or whatever).
> >> >>> >
> >> >>> >
> >> >>> >>
> >> >>> >> -Robert Middleton
> >> >>> >>
> >> >>> >> On Mon, Oct 2, 2023 at 6:12 AM Christian Grobmeier
> >> >>> >> 
> >> >>> >> wrote:
> >> >>> >>
> >> >>> >>>
> >> >>> >>> On Mon, Oct 2, 2023, at 02:55, Robert Middleton wrote:
> >> >>>  Some(most?) of the settings should be saved:
> >> >>> 
> >> >>> >>>
> >> https://github.com/apache/logging-chainsaw/blob/5ccb3c8e55dffd4361c549c3bcd

Re: [chainsaw] What is necessary for a 2.2 release?

2023-10-13 Thread Scott Deboy
Hey great - yeah I'll go through and add some tickets.

The event routing mechanism is very simple - you define an expression
using the logging event attribute names, and the values in the logging
event are used to convert that expression into a concrete tab name,
where the events are routed.

Note, you can also define 'expression views', like DB views, where an
event matching the expression is added to the expression view tab, but
that's on top of the default routing.

On 10/13/23, Robert Middleton  wrote:
> For those of you who didn't see on slack: I did update Chainsaw last
> night so you can load/save receivers.  That brings Chainsaw back into
> a usable state(in my mind at least).  I need to check to ensure that
> everything gets saved properly, but that shouldn't be too hard.
>
> Scott, would you mind making some issues on github for features that
> are needed/were removed?  I think one of the biggest problems that I
> have seen with Chainsaw before is that there isn't a manual(at least
> now somewhat mitigated) and/or a list of features and how to use them,
> so I've just been going with what I feel makes the most sense to me.
>
> The one thing that Scott pointed out was the ability to route messages
> to tabs; all the plumbing for that should exist for the most part(each
> ChainsawReceiver can have 0...N ChainsawEventBatchListener objects).
> I'm not sure how best to let the user hook things up - some sort of
> visual programming/flow-based view would be very cool but also very
> complicated.
>
> -Robert Middleton
>
> On Mon, Oct 9, 2023 at 3:24 PM Christian Grobmeier 
> wrote:
>>
>> On Sun, Oct 8, 2023, at 23:19, Scott Deboy wrote:
>> > I started but haven't had much time this week. The UI updates driven by
>> > settings changes are most of what I have left.
>>
>> OK great to hear, in that case I hold myself back a little longer :)
>>
>> Thanks!
>>
>> >
>> > On Sun, Oct 8, 2023, 2:17 PM Christian Grobmeier 
>> > wrote:
>> >
>> >> geson seems to do a good job, like Jackson (same JSR).
>> >> I'd like to move forward with JSON format for storing properties.
>> >>
>> >> I am not sure what the status currently is, if Scott is still working
>> >> on
>> >> it :) I could also make some kind of proposal or so for storing
>> >> properties
>> >>
>> >> On Tue, Oct 3, 2023, at 01:20, Scott Deboy wrote:
>> >> > I think persisting to json format makes sense/would be easy to
>> >> > consume
>> >> > with tools if needed.
>> >> >
>> >> > On 10/2/23, Robert Middleton  wrote:
>> >> >>> OK. Do you think something based on Jackson would be good? It's
>> >> >>> JSON
>> >> >>> though.
>> >> >>
>> >> >> We already have a dependency on genson for JSON parsing, so if we
>> >> >> really want to use JSON that would make the most sense.  Commons
>> >> >> config can read/write XML; currently I just have it configured to
>> >> >> do
>> >> >> properties files.  I think we can write our own reader/writer as
>> >> >> well,
>> >> >> but ultimately I don't think that there is anything special that we
>> >> >> need that commons config doesn't provide us out of the box.
>> >> >>
>> >> >> -Robert Middleton
>> >> >>
>> >> >> On Mon, Oct 2, 2023 at 5:14 PM Matt Sicker 
>> >> >> wrote:
>> >> >>>
>> >> >>> Jackson makes for a good library here because it also supports
>> >> >>> several
>> >> >>> data formats (YAML, XML, HOCON, and all sorts of others, both
>> >> >>> textual
>> >> and
>> >> >>> binary) and is fairly extensible for hooking any custom
>> >> >>> serialization
>> >> or
>> >> >>> deserialization logic you need. Given the desire to avoid Java
>> >> >>> serialization, it is perfectly reasonable to avoid XStream as
>> >> >>> that’s
>> >> >>> basically Java serialization using XML with all the pitfalls that
>> >> entails
>> >> >>> (I dealt with this fairly extensively back in the Jenkins project
>> >> >>> which
>> >> >>> used an old fork of XStream for managing config files and state).
>> >> >>>
>> >> >>> I haven’t used Commons Configuration before, but it seems fairly
>> >> >>> appropriate for this sort of thing as well.
>> >> >>>
>> >> >>> > On Oct 2, 2023, at 1:43 PM, Christian Grobmeier <
>> >> grobme...@apache.org>
>> >> >>> > wrote:
>> >> >>> >
>> >> >>> > On Mon, Oct 2, 2023, at 16:15, Robert Middleton wrote:
>> >> >>> >> At least two reasons I can think of:
>> >> >>> >> 1. Xstream doesn’t work on all java versions as you saw
>> >> >>> >> 2. Simplify by using the commons config instead of rolling our
>> >> >>> >> own.
>> >> >>> >>
>> >> >>> >> Each tab should now have just one config file, the idea being
>> >> >>> >> that
>> >> you
>> >> >>> >> can
>> >> >>> >> now share config files between people.  Before each tab had at
>> >> >>> >> least
>> >> >>> >> two(maybe three) files.  One was the xml config, one was a java
>> >> >>> >> serialized
>> >> >>> >> map.  Removing the java serialization is important.
>> >> >>> >
>> >> >>> > OK. Do you think something based on Jackson would be good? It's
>> >> >>> > JSON
>> >> >>> > though.