> ... this weird structure with two test source directories ...

doesn't seem okay to me. Please, don't get me wrong. Not that I know of
JPMS or anything, though this sttructure doesn't resemble anything I have
ever seen. I don't want to believe that every major Java library with JPMS
support needs to have such ugly workarounds. Are we sure about this
solution? Can we ask for a review from some other Apache fellow? (@Gary,
how does Commons deal with this?)

> The test jars need to be installed in order for them to be used by the
other log4j modules that follow. I see no reason they cannot be published.
They contain some useful stuff that others could use for unit testing if
they wanted.

I am really reluctant to make any internal goodie public without a tangible
use case and (preferably) user request, given the backward compatibility
burden we will need to carry for a decade afterwards.


On Sat, Apr 3, 2021 at 12:04 AM Ralph Goers <ralph.go...@dslextreme.com>
wrote:

> Well, log4j-api, log4j-plugins and log4j-core each have unit tests and
> test classes that are used by other log4j-modules. Because log4j-api and
> log4j-plugins are JPMS modules the unit tests need to a) either be in a
> different package or b) have a module-info.java that essentially extends
> the real module. Because several of the unit tests access package private
> methods I had to go with option b. But that would mean the test classes
> that have to be passed downstream needed to be in a different package. So I
> moved all those classes to their own java-test directory and appended .test
> to the base package. Then it became a bit tricky to get those compiled and
> packaged into a test jar without including the unit tests.  So you end up
> with this weird structure with two test source directories.
>
> The test jars need to be installed in order for them to be used by the
> other log4j modules that follow. I see no reason they cannot be published.
> They contain some useful stuff that others could use for unit testing if
> they wanted.
>
> I will look into the mvn verify error. It might be related to what Tim
> reported. mvn install worked for me. I’m not sure why Ubuntu would be
> different than MacOS.
>
> Ralph
>
> > On Apr 2, 2021, at 12:50 PM, Volkan Yazıcı <volkan.yaz...@gmail.com>
> wrote:
> >
> > Great work Ralph!
> > Your change set marks an important milestone in Log4j development.
> > Thanks so much!
> >
> > `./mvnw verify` fails for me while compiling the 2nd module, log4j-api:
> > `error: module not found: org.osgi.core`. Any ideas?
> > This said `./mvnw package` succeeds for me, hence all(?) tests pass.
> >
> > $ java -version
> > openjdk version "11.0.10" 2021-01-19
> > OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.10+9)
> > OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.10+9, mixed mode)
> >
> > $ lsb_release -a
> > No LSB modules are available.
> > Distributor ID: Ubuntu
> > Description: Ubuntu 20.10
> > Release: 20.10
> > Codename: groovy
> >
> > I have a remark/question regarding removed test-jars. If I am not
> mistaken
> > test-jars were only used for testing purposes, so these *-test modules
> you
> > have introduced. For one, I am happy to see that test-jars were replaced
> > with normal module artifacts, at least just for these. Test-jars were
> > difficult to get right, producing cryptic dependency failures, and not an
> > often-practiced part of the Maven rituals. This said, shall we prevent
> them
> > from getting published? That is, do we need to publish them to the Maven
> > Central, given they are only needed for internal testing?
> >
> > On Mon, Mar 29, 2021 at 1:24 AM Ralph Goers <ralph.go...@dslextreme.com>
> > wrote:
> >
> >> I have created https://github.com/apache/logging-log4j2/pull/480 for
> you
> >> to review. It has many changes and merge conflicts will be painful to
> fix
> >> so please do not commit to master until this PR is merged.
> >>
> >> Although I could merge this now I would prefer if you could checkout the
> >> branch on your local machines, build, and test it. I haven’t tested it
> with
> >> anything real yet but all the unit tests - except for the osgi module -
> >> pass.
> >>
> >> If you open this in your IDE you might have some issues with some test
> >> classes being flagged as having compile issues. This is because of the
> >> weird extra directory I had to include in log4j-api and log4j-plugins to
> >> create test jars.
> >>
> >> Please provide feedback so I can make any changes and get this merged.
> >>
> >> Ralph
> >>
>
>
>

Reply via email to