The disruptor might actually have to be an exception to the rule! You raise a great point. The async logger is one of the coolest new features, so we should probably bring that dependency in. We could go the Tomcat route and package-rename an internal version of it, or we could just keep an external dependency on it.
On 14 April 2014 16:24, Ralph Goers <ralph.go...@dslextreme.com> wrote: > While I agree in principal that may not be practical. For example, I > don’t know that that could be done with the disruptor, and to be honest > given the interest there seems to be in asynch mode I’m not sure that would > be a good idea even if it could be done. > > Ralph > > On Apr 14, 2014, at 2:19 PM, Matt Sicker <boa...@gmail.com> wrote: > > I feel as though anything that requires an outside dependency (other than > log4j-api) should probably be in its own module. The core should consist of > everything that is doable without dependencies outside Java SE. > > So, even though JMS uses Java EE, it could be its own module since that's > not standard Java SE. > > > On 14 April 2014 10:21, Ralph Goers <ralph.go...@dslextreme.com> wrote: > >> I, for one, am not upset by this discussion. As I have said, I have no >> objection to pulling some stuff out of core and I am thinking we need to >> start a companion project for “extra” stuff. That said, most Log4j users >> will expect that the core will contain roughly the same components that >> were in Log4j 1.x. But I am not convinced that JPA (or even SMTP) needs to >> be a core component. And I would probably be in favor of moving JMX out >> too, but I know it might be difficult to get consensus on that. >> Ralph >> >> >> >> On Apr 14, 2014, at 7:42 AM, Matt Sicker <boa...@gmail.com> wrote: >> >> Oh right, that is true. Well, you still need to provide the Jackson >> dependencies for JSON files to work. >> >> I agree on the god library front, too. I just don't know how to get the >> point across without upsetting everyone. >> >> On Monday, 14 April 2014, Łukasz Dywicki <l...@code-house.org> wrote: >> >>> Hey Matt, >>> I assumed JSON is default (or has higher priority than XML at least) >>> based on documentation. >>> >>> Log4j will inspect the "log4j.configurationFile" system property and, if >>> set, will attempt to load the configuration using the >>> ConfigurationFactory that matches the file extension. >>> If no system property is set the JSON ConfigurationFactory will look for >>> log4j2-test.json or log4j2-test.jsn in the classpath. >>> If no such file is found the XML ConfigurationFactory will look for >>> log4j2-test.xml in the classpath. >>> If a test file cannot be located the JSON ConfigurationFactory will look >>> for log4j2.json or log4j2.jsn on the classpath. >>> If a JSON file cannot be located the XML ConfigurationFactory will try >>> to locate log4j2.xml on the classpath. >>> If no configuration file could be located the DefaultConfiguration will >>> be used. This will cause logging output to go to the console. >>> >>> Sadly you did not catch sense of my question. Point was - how much >>> configuration *formats* you gonna place in core, when people will opt for >>> scala configuration dsl, what will happen? >>> >>> Anyway, it’s up to you how you drive your library. You might not see >>> need to split core, that’s fine for me. Just remind that creation of >>> "god-like” thinks is bad practice in software development regardless if >>> it’s class, package or module. >>> >>> Best regards, >>> Łukasz Dywicki >>> -- >>> l...@code-house.org >>> Twitter: ldywicki >>> Blog: http://dywicki.pl >>> Code-House - http://code-house.org >>> >>> Wiadomość napisana przez Matt Sicker <boa...@gmail.com> w dniu 13 kwi >>> 2014, o godz. 18:27: >>> >>> XML is the default file format. You need to add the jackson libraries to >>> get JSON and YAML support. If people like YAML more than JSON, they're >>> using the same library, so it's perfectly alright! >>> >>> What would you mean by Groovy and Scala formats? You can already use >>> Log4j2 with any JVM language, and you can write your own custom >>> implementation of Configuration (though it's usually only done to support >>> more file formats due to the need to represent a parsed configuration file). >>> >>> Really, the parts that I think make most sense for modularity are any >>> packages that have optional dependencies. It's just that each optional >>> dependency tends to correspond to about 3-5 java files, so it seems >>> pointless to make entire JARs for each of those. I think that's the problem >>> everyone else is seeing. >>> >>> >>> On 13 April 2014 05:53, Łukasz Dywicki <l...@code-house.org> wrote: >>> >>> Hey, >>> Please find my replies inline. I do reply on all mails at the same time. >>> >>> >>> >>> I had a great idea inspired by Mark from Tomcat (forget his full name) >>> in regards to splitting up core: we can set up a parallel repository that >>> uses svn:external to organise the various packages into separate modules. >>> Then separate pom.xml files can be written for these sub-modules. This >>> might be a better route to go. >>> >>> I think you have spoken to Mark Thomas who did presentat few things. I >>> also spoken to Christopher Schultz who had tomcat monitoring presentation >>> and he is also tomcat commiter. He told me that Tomcat build is quite >>> complicated and that’s reason why they did not switch to maven. No need to >>> mention how big is build.xml for them. Main reason why their build is >>> complicated and hard to get it done is big core. >>> >>> In Tomcat, they keep all their source code in one tree. However, their >>> Ant build scripts build several JARs from that tree by pulling in various >>> sub-directories. This is actually a big reason why they couldn't easily >>> move to Maven (amongst other reasons I bet). It was suggested to make a >>> parallel repository like I mentioned above. >>> >>> I don’t think that having source code in one tree is bad thing. >>> Sometimes you will have different releases having exactelly same code >>> producing unecessary traffic on maven repos and so on (we will let Sonatype >>> pay for it ;-))). For most of people it does not make a big difference. But >>> on Tomcat build example you can see a big technology debt. Multiple >>> repositories are bringing some extra effort to releases too. >>> >>> Also, amusingly enough, Lucas, I've had quite a similar discussion here >>> before. The main thing here is that nobody seems to think that core is >>> large enough to be split. It's a different way of thinking about >>> development when you move to OSGi. >>> >>> I can understand that. But you already see bunch of things which are >>> sitting next to each other having not that much in common. You can also >>> take a look on camel which is big project in apache having many >>> dependencies. You might run it under tomcat and they have fine grained >>> dependencies. I never seen anybody on their mailing lists considering that >>> as mistake or wrong thing. >>> >>> Also, if you drop Log4j into a web container currently it will >>> automatically initialize in a Servlet 3 container. I’ve always been a bit >>> uncomfortable with that and it was originally in its own jar, but others >>> preferred it the way it currently is. >>> >>> I do use log4j under tomcat as default logging backend also for >>> container so in the container I just need slf4j bridge since all apps I >>> have made are not dependant on logging backend. These times many libraries >>> are already backed to slf4j so it is even easier to go. >>> >>> Wait, some one is going to want to split each configuration forma >>> >>> >>> >> >> -- >> Matt Sicker <boa...@gmail.com> >> >> >> > > > -- > Matt Sicker <boa...@gmail.com> > > > -- Matt Sicker <boa...@gmail.com>