Nonstop Progress of Apache Software Foundation

July 2014 must have been one of the luckiest months for Apache Software Foundation (ASF), two remarkable achievements have been posted on their blog site in July 30. With the “fix test failure” commit by Daniel Kulp for the Apache CXF Project last July 14, ASF has reached more than two million commits, and this is only four years after they achieved their first million. Additionally, Apache email archives now have over 11 million messages.

According to James Governor, Analyst and Founder at RedMonk, “Project commits is a useful measure of community health”. Compared to ASF’s first million commits which happened 10 years after they started, the rapid increase in commits in just four years started when the Git has been introduced to the source code management system. Subversion (SVN) repository was already decentralized, Apache now uses Github with 564 different repositories and is amplified by another 268 Git repositories.

Meanwhile, David Nalley, Vice President of ASF Infrastructure said that they are distributing terabytes of artifacts per week. In the case of Apache OpenOffice, petabytes worth of artifacts have already been distributed. Keeping ASF’s infrastructure running 24/7 every year is the responsibility of a team composed of four paid staff and 10 rotating volunteers located on four continents.

Apache Software Foundation, with over 450 individual Members and 3,500 Committers who work together, has been and continuously developing software utilized by millions around the world since 1999. After 15 years in the industry, the foundation was able to produce over 200 open source projects such as Apache HTTP Server project which is considered as “the world’s most popular Web server software”.  Currently, there are 33 “podlings” being develop in the Apache Incubator, and 38 technical initiatives in the Apache Labs. Aside from that, a number of “industry-defining technologies and tools” were distributed under the Apache License like Cassandra, CouchDB, Tomcat, and Hadoop to name a few.

 

 

 


Recreate JAR Created By wsimport -clientjar

For some reason, JARS created by wsimport -clientjar can’t be read properly. We have trouble finding our classes when using these JARs.

wsimport -clientjar output.jar input.wsdl 

Our workaround is to use a Windows batch file with the following contents to recreate the JAR file, using the jar.exe utility.

@echo off
mkdir ~jar
cd ~jar
jar -xf ..\%1
jar -cf ..\%1 *
cd ..
rmdir /S /Q ~jar 

We named our batch file recrate-jar.bat can call it like this.

 recreate-jar.bat output.jar 

Release of Log4j 2.0

Apache has announced the release of its newest logging library for Java – Log4j 2.0. An adapter has been released for those with Log4j 1.x. Since the API for Log4j 2.0 uses Java 6 or higher versions of Java, it is not compatible with Log4j’s previous releases. With this adapter, the use of Log4j 1.x API will be allowed on applications. Adapters for Apache Commons Logging and SLF4J are also being offered.

Apache posted on their website new features that have been made for Log4j 2.0:

  • API Separation ensures forward compatibility as well as makes it clear for application developers to identify which classes and methods to use.
  • Performance is improved compared to Log4j 1.x. In multi-threaded scenarios, Log4j 2.0’s Asynchronous Loggers have ten times higher throughput and orders of magnitude lower latency than Log4j 1.x and Logback. In most instances, Log4j 2.0, like Logback, performs faster in critical areas than Log4j 1.x.
  • Offers support for various APIs such as SLF4J and Common Logging APIs.
  • Configurations will automatically reload and log events will not lose while reconfiguration is ongoing.
  • With its advanced filtering, Log4j 2.0 supports filtering based on context data, markers, regular expressions, and other components in the Log event. Before filtering pass to Loggers or while passing through Appenders, it can now be specified to apply to all events. Filters can be associated with Loggers and also common Filter class can be used in any of these conditions.
  • There is no need to write code as plugin pattern is used to configure components. Plugins are automatically recognized and used when configuration references them.
  • By adding Lookup Plugin, users can customize property providers. With Log4j’s new feature, properties are now supported. Properties from values defined in the configuration file, system properties, environmental variables, the ThreadContext Map and date present in the event, can be referenced in a configuration, Log4j will replace them directly or pass them to underlying component that will resolve them.

Log4j 2.0 is now available for download and testing. You can download it here.