Bug 42094: PluginConfigurator tweaks

git-svn-id: https://svn.apache.org/repos/asf/logging/sandbox/log4j/component@532828 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/build.xml b/build.xml
index e6c30bd..ee0867d 100644
--- a/build.xml
+++ b/build.xml
@@ -67,7 +67,7 @@
     	   target="${javac.target}"
     	   source="${javac.source}"
     	   classpath="${log4j.jar}"/>
-    	<copy todir="target/classes">
+    	<copy todir="target/classes" overwrite="true">
     	    <fileset dir="src/main/resources"/>
     	</copy>
     </target>
@@ -98,14 +98,14 @@
     	   target="${javac.target}"
     	   source="${javac.source}"
     	   classpath="${log4j.jar}:${junit.jar}:target/classes"/>
-    	<copy todir="target/test-classes">
+    	<copy todir="target/test-classes" overwrite="true">
     		<fileset dir="src/test/resources"/>
     	</copy>
     </target>    
 
 
     <target name="test" depends="test-compile" description="Run unit tests">
-    	<junit printsummary="yes">
+    	<junit printsummary="yes" fork="true" dir="target">
     	    <classpath path="target/test-classes:target/classes:${log4j.jar}"/>
     		<batchtest>
     			<fileset dir="src/test/java/">
diff --git a/src/main/java/org/apache/log4j/plugins/PluginConfigurator.java b/src/main/java/org/apache/log4j/plugins/PluginConfigurator.java
index 0796157..3331dbc 100644
--- a/src/main/java/org/apache/log4j/plugins/PluginConfigurator.java
+++ b/src/main/java/org/apache/log4j/plugins/PluginConfigurator.java
@@ -261,7 +261,7 @@
                 "] which does not implement org.apache.log4j.spi.AppenderAttachable.");
 	    }
 	  } else {
-          parseUnrecognizedElement(instance, appenderElement, props);
+          parseUnrecognizedElement(instance, currentElement, props);
       }
 	}
       }
@@ -890,7 +890,9 @@
 	  parseRoot(currentElement);
 	} else if(tagName.equals(RENDERER_TAG)) {
 	  parseRenderer(currentElement);
-	} else if (!tagName.equals(CATEGORY_FACTORY_TAG)) {
+	} else if (!(tagName.equals(APPENDER_TAG)
+            || tagName.equals(CATEGORY_FACTORY_TAG)
+            || tagName.equals(LOGGER_FACTORY_TAG))) {
         quietParseUnrecognizedElement(repository, currentElement, props);
     }
       }
@@ -1014,7 +1016,7 @@
       public InputSource resolveEntity (String publicId, String systemId) {
         if (systemId.endsWith("log4j.dtd")) {
           Class clazz = getClass();
-          InputStream in = Log4jEntityResolver.class.getResourceAsStream("log4j.dtd");
+          InputStream in = clazz.getResourceAsStream("log4j.dtd");
           if (in == null) {
         LogLog.error("Could not find [log4j.dtd]. Used [" + clazz.getClassLoader()
                  + "] class loader in the search.");
diff --git a/src/main/resources/org/apache/log4j/plugins/log4j.dtd b/src/main/resources/org/apache/log4j/plugins/log4j.dtd
index b20ac1e..9527734 100644
--- a/src/main/resources/org/apache/log4j/plugins/log4j.dtd
+++ b/src/main/resources/org/apache/log4j/plugins/log4j.dtd
@@ -136,14 +136,14 @@
 >
 
 <!ELEMENT triggeringPolicy ((param|filter)*)>
-<!ATTLIST plugin
-  name 		CDATA 	   #REQUIRED
+<!ATTLIST triggeringPolicy
+  name 		CDATA  #IMPLIED
   class 	CDATA  #REQUIRED
 >
 
 <!ELEMENT rollingPolicy (param*)>
-<!ATTLIST plugin
-  name 		CDATA 	   #REQUIRED
+<!ATTLIST rollingPolicy
+  name 		CDATA  #IMPLIED
   class 	CDATA  #REQUIRED
 >