You did. But we still have stuff using the dependencies.

Ralph

> On Apr 13, 2021, at 12:05 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> 
> I thought I already did a lot of that moving around of code to new modules
> in master a long time ago, I might be remembering wrong, AFK ATM.
> 
> Gary
> 
> On Tue, Apr 13, 2021, 12:17 Matt Sicker <boa...@gmail.com> wrote:
> 
>> The SQL code is all related to JDBC and related appenders which could go in
>> their own module. The naming is primarily used for EE stuff which could all
>> be split out (plus, I don’t think it’s in the default Android variant of
>> Java). The RMI thing can probably be replaced as you suggested.
>> JMX/management might have some overlap there? As for the beans package,
>> that can also be replaced with code instead of linking in that module.
>> 
>> The interesting ones look to be XML and scripting as those are fairly
>> useful core features, but they could be in their own modules. That would
>> likely leave core such that it only supports programmatic configuration and
>> properties files since every other format requires additional modules
>> besides base.
>> 
>> As for exports, that would likely depend on what’s left in core after
>> splitting out the above mentioned things.
>> 
>> On Tue, Apr 13, 2021 at 10:43 Ralph Goers <ralph.go...@dslextreme.com>
>> wrote:
>> 
>>> I started doing the work to modularize log4j-core last night. We have a
>>> blocker in that the disruptor has not had a release in 3 years. They
>>> committed the change to make it an automatic module over a year ago and
>>> since have fully modularized it. They simply haven’t performed a release.
>>> 
>>> As I was going through the module descriptor (see below) it seems to me
>>> that we have far more dependencies in core than I would really like. For
>>> example, despite moving the Jackson Layouts to their own modules we still
>>> have a dependency on Jackson. We also have dependencies on things like
>>> java.rmi, java.naming, java.sql. I am also not clear on whether they are
>>> all really optional or not. Ideally, the only required dependency we
>> should
>>> have is for java.base. For example, we need java.rmi because
>> Log4jLogEvent
>>> uses MarshalledObject. I have no idea why we need that particular class
>> to
>>> wrap a log event. Couldn’t we have created our own class for that? We
>> need
>>> java.desktop because java.beans now lives there. Perhaps we could look at
>>> what those are and if it is really just one or two utility methods
>>> implement them locally.
>>> 
>>> In the meantime I have created an issue with the Disruptor asking for a
>>> release. I can’t do much more with core until that is available. I can
>> move
>>> on to other modules.
>>> 
>>> We also need to look at the list of exports below and the classes in them
>>> and determine what is really public and what should be private.
>>> 
>>> 
>>> Thoughts?
>>> 
>>> Ralph
>>> 
>>> 
>>> module org.apache.logging.log4j.core {
>>>    exports org.apache.logging.log4j.core;
>>>    exports org.apache.logging.log4j.core.appender;
>>>    exports org.apache.logging.log4j.core.appender.db;
>>>    exports org.apache.logging.log4j.core.appender.nosql;
>>>    exports org.apache.logging.log4j.core.appender.rewrite;
>>>    exports org.apache.logging.log4j.core.appender.rolling;
>>>    exports org.apache.logging.log4j.core.appender.rolling.action;
>>>    exports org.apache.logging.log4j.core.appender.routing;
>>>    exports org.apache.logging.log4j.core.async;
>>>    exports org.apache.logging.log4j.core.config;
>>>    exports org.apache.logging.log4j.core.config.arbiters;
>>>    exports org.apache.logging.log4j.core.config.builder.api;
>>>    exports org.apache.logging.log4j.core.config.builder.impl;
>>>    exports org.apache.logging.log4j.core.config.composite;
>>>    exports org.apache.logging.log4j.core.config.json;
>>>    exports org.apache.logging.log4j.core.config.plugins;
>>>    exports org.apache.logging.log4j.core.config.plugins.convert;
>>>    exports org.apache.logging.log4j.core.config.plugins.inject;
>>>    exports org.apache.logging.log4j.core.config.plugins.util;
>>>    exports org.apache.logging.log4j.core.config.plugins.visitors;
>>>    exports org.apache.logging.log4j.core.config.properties;
>>>    exports org.apache.logging.log4j.core.config.status;
>>>    exports org.apache.logging.log4j.core.config.xml;
>>>    exports org.apache.logging.log4j.core.config.yaml;
>>>    exports org.apache.logging.log4j.core.filter;
>>>    exports org.apache.logging.log4j.core.impl;
>>>    exports org.apache.logging.log4j.core.jmx;
>>>    exports org.apache.logging.log4j.core.layout;
>>>    exports org.apache.logging.log4j.core.lookup;
>>>    exports org.apache.logging.log4j.core.message;
>>>    exports org.apache.logging.log4j.core.net;
>>>    exports org.apache.logging.log4j.core.net.ssl;
>>>    exports org.apache.logging.log4j.core.osgi;
>>>    exports org.apache.logging.log4j.core.parser;
>>>    exports org.apache.logging.log4j.core.pattern;
>>>    exports org.apache.logging.log4j.core.script;
>>>    exports org.apache.logging.log4j.core.selector;
>>>    exports org.apache.logging.log4j.core.time;
>>>    exports org.apache.logging.log4j.core.tools;
>>>    exports org.apache.logging.log4j.core.tools.picocli;
>>>    exports org.apache.logging.log4j.core.util;
>>>    exports org.apache.logging.log4j.core.util.datetime;
>>> 
>>>    requires transitive java.desktop;
>>>    requires transitive java.management;
>>>    requires java.naming;
>>>    requires transitive java.sql;
>>>    requires java.rmi;
>>>    requires transitive java.scripting;
>>>    requires java.xml;
>>>    requires org.apache.logging.log4j;
>>>    requires org.apache.logging.log4j.plugins;
>>>    //requires transitive com.lmax.distruptor;
>>>    requires transitive org.osgi.core;
>>>    requires transitive com.conversantmedia.disruptor;
>>>    requires transitive com.fasterxml.jackson.core;
>>>    requires transitive com.fasterxml.jackson.databind;
>>>    requires transitive com.fasterxml.jackson.dataformat.xml;
>>>    requires transitive com.fasterxml.jackson.dataformat.yaml;
>>>    requires transitive org.apache.commons.compress;
>>>    requires transitive org.fusesource.jansi;
>>>    uses org.apache.logging.log4j.core.util.ContextDataProvider;
>>>    provides
>>> org.apache.logging.log4j.message.ThreadDumpMessage$ThreadInfoFactory with
>>> org.apache.logging.log4j.core.message.ExtendedThreadInfoFactory;
>>>    provides org.apache.logging.log4j.core.util.ContextDataProvider with
>>> org.apache.logging.log4j.core.impl.ThreadContextDataProvider;
>>>    provides org.apache.logging.log4j.spi.Provider with
>>> org.apache.logging.log4j.core.impl.Log4jProvider;
>>>    provides org.apache.logging.log4j.plugins.processor.PluginService
>> with
>>> org.apache.logging.log4j.core.plugins.Log4jPlugins;
>>> 
>>> 
>> 


Reply via email to