Re: Deprecating modules in 2.x

2023-09-10 Thread Apache
Spring cloud config client is NOT part of Spring Boot 3. It adds a watcher for 
the config file. I never created a PR to add it to Sping Cloud Config.

Ralph

> On Sep 9, 2023, at 11:24 AM, Piotr P. Karwasz  wrote:
> 
> Hi Gary,
> 
>> On Sat, 9 Sept 2023 at 18:07, Gary Gregory  wrote:
>> 
>> Please do not drop appserver, mongodb4, jdbc-dbcp2.
> 
> What part of `appserver` are you using: Tomcat or Jetty 9.x? Should we
> keep Jetty 9.x support in 3.x (Jetty 10.x uses SLF4J and is not
> Jakartified).
> 
> I like the way this is going, so let's agree on a list of modules that
> could be dropped, vote on it and announce it on `log4j-user` to get
> user's opinion.
> 
> The current list of nominees:
> 
> 1  log4j-spring-boot (contained in Spring Boot 3.x)
> 2  log4j-spring-cloud-config-client (contained in Spring Boot 3.x?)
> 3  log4j-taglib
> 4  log4j-couchdb
> 5  log4j-kubernetes
> 6  log4j-jpa
> 7  log4j-mongodb3
> 8  log4j-docker
> 9  log4j-cassandra
> 
> From 3.x might I nominate:
> 
> 1  log4j-layout-jackson
> 2  log4j-csv
> 3  log4j-jeromq
> 4  log4j-layout-jackson-json
> 5  log4j-layout-jackson-xml
> 6  log4j-layout-jackson-yaml
> 
> Piotr



Framework for integration tests

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

During the discussion about splitting the main repo Ralph raised the
problem that we don't have reliable integration tests.

Sure, most of our unit tests actually check the entire lifecycle of a
logger context (which I think is a waste of testing time by the way),
but these are single classloader Java SE deployments. What we don't
test is:

 * how Log4j behaves in real world deployments: application servers,
servlet containers, Spring Boot applications, OSGI containers. Yes, we
have **some** tests inside containers, especially for OSGI, but the
bootstrap procedure is very different from what real containers use.
E.g. when we programmatically load `log4j-api` and `log4j-core` in our
tests, everything works fine, but our users report that this does not
work in an Eclipse RCP application,
 * how different components work together: e.g. is it possible to log
both to Cassandra and Flume?

I have looked a little bit around, what integration testing frameworks
are out there:

1. Development on PAX Exam[1] (OSGI testing + some servlet testing)
has as far as I can tell stopped,
2. There is a new OSGI Test[2] project, but I didn't test what it actually does,
3. Arquillian seems the most promising one with many container
implementations[5] available, although we would need probably right
some Log4j specific ones: e.g. a managed Tomcat container with Log4j
artifacts in the right places,
4. Matt mentioned some time ago Testcontainers[6] that would allow us
to test components against Docker images.

AFAIK, the first three create an appropriate deployable artifact (OSGI
bundle, WAR file) from our test class and deploy it to a container. I
am not sure how Testcontainers work.

Do you have any experience with these frameworks? Would it be useful
to add a separate integration tests repo? Or just a Maven module? Or
perhaps should we just add tests to the existing Maven modules?

Piotr

[1] https://github.com/ops4j/org.ops4j.pax.exam2
[2] https://github.com/osgi/osgi-test
[3] http://arquillian.org/
[5] https://github.com/orgs/arquillian/repositories?q=arquillian-container
[6] https://testcontainers.com/modules/