You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/04/26 01:41:07 UTC
svn commit: r1590194 - in /logging/log4j/log4j2/trunk: ./ log4j-core/
log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/
log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/processor/
log4j-core/src/main/resources/...
Author: mattsicker
Date: Fri Apr 25 23:41:06 2014
New Revision: 1590194
URL: http://svn.apache.org/r1590194
Log:
Merge log4j-plugin-processor to log4j-core.
- Updated maven-compiler-plugin settings for log4j-core so that the annotation processing works properly.
Added:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/Plugin.java
- copied unchanged from r1590193, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/Plugin.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAliases.java
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAliases.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginConfiguration.java
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginConfiguration.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginFactory.java
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginFactory.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginValue.java
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginValue.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/SensitivePluginAttribute.java
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/SensitivePluginAttribute.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/package-info.java
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/package-info.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/processor/
- copied from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/core/config/plugins/processor/
logging/log4j/log4j2/trunk/log4j-core/src/main/resources/META-INF/services/javax.annotation.processing.Processor
- copied unchanged from r1590185, logging/log4j/log4j2/trunk/log4j-plugin-processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/FakePlugin.java (with props)
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessorTest.java (with props)
Removed:
logging/log4j/log4j2/trunk/log4j-plugin-processor/
Modified:
logging/log4j/log4j2/trunk/log4j-core/pom.xml
logging/log4j/log4j2/trunk/log4j-flume-ng/pom.xml
logging/log4j/log4j2/trunk/pom.xml
Modified: logging/log4j/log4j2/trunk/log4j-core/pom.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/pom.xml?rev=1590194&r1=1590193&r2=1590194&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/pom.xml (original)
+++ logging/log4j/log4j2/trunk/log4j-core/pom.xml Fri Apr 25 23:41:06 2014
@@ -38,11 +38,6 @@
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
- <!-- Used for pre-caching the standard plugins -->
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-plugin-processor</artifactId>
- </dependency>
<!-- Used for OSGi bundle support -->
<dependency>
<groupId>org.osgi</groupId>
@@ -221,38 +216,50 @@
<build>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
+ <artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
+ <!-- disable annotation processing for first pass -->
+ <id>default-compile</id>
<goals>
- <goal>test-jar</goal>
+ <goal>compile</goal>
+ </goals>
+ <phase>compile</phase>
+ <configuration>
+ <proc>none</proc>
+ </configuration>
+ </execution>
+ <execution>
+ <!-- then do a processing-only pass to generate plugins .dat file -->
+ <id>process-plugins</id>
+ <goals>
+ <goal>compile</goal>
</goals>
+ <phase>process-classes</phase>
+ <configuration>
+ <proc>only</proc>
+ </configuration>
</execution>
+ <!--execution>
+ <id>default-testCompile</id>
+ <goals>
+ <goal>testCompile</goal>
+ </goals>
+ <phase>test-compile</phase>
+ </execution-->
</executions>
</plugin>
- <!-- TODO: verify this is no longer required -->
- <!--
<plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <version>1.2.1</version>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
- <phase>process-classes</phase>
<goals>
- <goal>java</goal>
+ <goal>test-jar</goal>
</goals>
</execution>
</executions>
- <configuration>
- <mainClass>org.apache.logging.log4j.core.config.plugins.util.PluginManager</mainClass>
- <arguments>
- <argument>${project.build.outputDirectory}</argument>
- </arguments>
- </configuration>
</plugin>
- -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
Added: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/FakePlugin.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/FakePlugin.java?rev=1590194&view=auto
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/FakePlugin.java (added)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/FakePlugin.java Fri Apr 25 23:41:06 2014
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.logging.log4j.core.config.plugins.processor;
+
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAliases;
+
+/**
+ * Test plugin class for unit tests.
+ */
+@Plugin(name = "Fake", category = "Test")
+@PluginAliases({"AnotherFake", "StillFake"})
+public class FakePlugin {
+
+ @Plugin(name = "Nested", category = "Test")
+ public static class Nested {
+ }
+}
Propchange: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/FakePlugin.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessorTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessorTest.java?rev=1590194&view=auto
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessorTest.java (added)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessorTest.java Fri Apr 25 23:41:06 2014
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.logging.log4j.core.config.plugins.processor;
+
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.concurrent.ConcurrentMap;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAliases;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import static org.junit.Assert.*;
+
+@RunWith(JUnit4.class)
+public class PluginProcessorTest {
+
+ private static final String CACHE_FILE = "org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat";
+
+ private static final PluginCache pluginCache = new PluginCache();
+
+ private final Plugin p = FakePlugin.class.getAnnotation(Plugin.class);
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ final Enumeration<URL> resources = PluginProcessor.class.getClassLoader().getResources(CACHE_FILE);
+ pluginCache.loadCacheFiles(resources);
+ }
+
+ @Test
+ public void testTestCategoryFound() throws Exception {
+ assertNotNull("No plugin annotation on FakePlugin.", p);
+ final ConcurrentMap<String, PluginEntry> testCategory = pluginCache.getCategory(p.category());
+ assertNotEquals("No plugins were found.", 0, pluginCache.size());
+ assertNotNull("The category '" + p.category() + "' was not found.", testCategory);
+ assertFalse(testCategory.isEmpty());
+ }
+
+ @Test
+ public void testFakePluginFoundWithCorrectInformation() throws Exception {
+ final PluginEntry fake = pluginCache.getCategory(p.category()).get(p.name().toLowerCase());
+ verifyFakePluginEntry(p.name(), fake);
+ }
+
+ @Test
+ public void testFakePluginAliasesContainSameInformation() throws Exception {
+ final PluginAliases aliases = FakePlugin.class.getAnnotation(PluginAliases.class);
+ for (final String alias : aliases.value()) {
+ final PluginEntry fake = pluginCache.getCategory(p.category()).get(alias.toLowerCase());
+ verifyFakePluginEntry(alias, fake);
+ }
+ }
+
+ private void verifyFakePluginEntry(final String name, final PluginEntry fake) {
+ assertNotNull("The plugin '" + name.toLowerCase() + "' was not found.", fake);
+ assertEquals(FakePlugin.class.getName(), fake.getClassName());
+ assertEquals(name.toLowerCase(), fake.getKey());
+ assertEquals(Plugin.EMPTY, p.elementType());
+ assertEquals(name, fake.getName());
+ assertEquals(p.printObject(), fake.isPrintable());
+ assertEquals(p.deferChildren(), fake.isDefer());
+ }
+
+ @Test
+ public void testNestedPlugin() throws Exception {
+ final Plugin p = FakePlugin.Nested.class.getAnnotation(Plugin.class);
+ final PluginEntry nested = pluginCache.getCategory(p.category()).get(p.name().toLowerCase());
+ assertNotNull(nested);
+ assertEquals(p.name().toLowerCase(), nested.getKey());
+ assertEquals(FakePlugin.Nested.class.getName(), nested.getClassName());
+ assertEquals(p.name(), nested.getName());
+ assertEquals(Plugin.EMPTY, p.elementType());
+ assertEquals(p.printObject(), nested.isPrintable());
+ assertEquals(p.deferChildren(), nested.isDefer());
+ }
+}
Propchange: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessorTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: logging/log4j/log4j2/trunk/log4j-flume-ng/pom.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-flume-ng/pom.xml?rev=1590194&r1=1590193&r2=1590194&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-flume-ng/pom.xml (original)
+++ logging/log4j/log4j2/trunk/log4j-flume-ng/pom.xml Fri Apr 25 23:41:06 2014
@@ -39,10 +39,6 @@
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-plugin-processor</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
Modified: logging/log4j/log4j2/trunk/pom.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/pom.xml?rev=1590194&r1=1590193&r2=1590194&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/pom.xml (original)
+++ logging/log4j/log4j2/trunk/pom.xml Fri Apr 25 23:41:06 2014
@@ -254,18 +254,6 @@
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-plugin-processor</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-plugin-processor</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${project.version}</version>
</dependency>
@@ -912,7 +900,6 @@
<module>log4j-jmx-gui</module>
<module>log4j-samples</module>
<module>log4j-bom</module>
- <module>log4j-plugin-processor</module>
</modules>
<profiles>
<profile>