<forbiddenapis
internalRuntimeForbidden="true"
classpathref="javadoc.classpath"
- suppressAnnotation="org.apache.poi.util.SuppressForbidden"
- >
+ suppressAnnotation="org.apache.poi.util.SuppressForbidden"
+ >
<bundledsignatures name="jdk-unsafe-${jdk.version.source}"/>
<bundledsignatures name="jdk-deprecated-${jdk.version.source}"/>
- <signaturesFileset file="src/resources/devtools/forbidden-signatures.txt"/>
- <fileset dir="${main.output.dir}"/>
- <fileset dir="${scratchpad.output.dir}"/>
- <fileset dir="${ooxml.output.dir}"/>
- <fileset dir="${main.output.test.dir}"/>
- <fileset dir="${ooxml.output.test.dir}"/>
- <!--
- <fileset dir="${scratchpad.output.test.dir}"/>
- -->
+ <!--
+ <bundledsignatures name="jdk-system-out"/>
+ -->
+ <signaturesFileset file="src/resources/devtools/forbidden-signatures.txt"/>
+ <!-- sources -->
+ <fileset dir="${main.output.dir}"/>
+ <fileset dir="${ooxml.output.dir}"/>
+ <fileset dir="${scratchpad.output.dir}"/>
+ <!--
+ Adding Excelant causes ClassNotFoundException, see https://github.com/policeman-tools/forbidden-apis/issues/85
+ <fileset dir="${excelant.output.dir}"/>
+ -->
+ <!--
+ <fileset dir="${examples.output.dir}"/>
+ -->
+ <!-- test-sources -->
+ <fileset dir="${main.output.test.dir}"/>
+ <fileset dir="${ooxml.output.test.dir}"/>
+ <!--
+ <fileset dir="${scratchpad.output.test.dir}"/>
+ <fileset dir="${excelant.output.test.dir}"/>
+ -->
</forbiddenapis>
</target>
@ignoreUnresolvable\r
@defaultMessage POI forbidden APIs\r
\r
-java.util.Locale#getDefault()\r
-java.util.Locale#setDefault(java.util.Locale)\r
-java.util.TimeZone#getDefault()\r
-java.util.Date#toString()
\ No newline at end of file
+# Locale related interfaces which we want to avoid to not have code which depends on the locale of the current machine\r
+java.util.Locale#getDefault() @ Do not use methods that depend on the current Local, either use Locale.ROOT or let the user define the local, see class LocaleUtil for details\r
+java.util.Locale#setDefault(java.util.Locale) @ Do not use methods that depend on the current Local, either use Locale.ROOT or let the user define the local, see class LocaleUtil for details\r
+java.util.TimeZone#getDefault() @ Do not use methods that depend on the current Local, either use Locale.ROOT or let the user define the local, see class LocaleUtil for details\r
+java.util.Date#toString() @ Do not use methods that depend on the current Local, either use Locale.ROOT or let the user define the local, see class LocaleUtil for details\r
+\r
+# disabled as there are still invocations that we could not remove easily\r
+#java.lang.reflect.AccessibleObject#setAccessible(java.lang.reflect.AccessibleObject[], boolean) @ Reflection usage fails with SecurityManagers and likely will not work any more in Java 9\r
+#java.lang.reflect.AccessibleObject#setAccessible(boolean) @ Reflection usage fails with SecurityManagers and likely will not work any more in Java 9\r
+#java.lang.reflect.Method#invoke(java.lang.Object, java.lang.Object[]) @ Reflection usage fails with SecurityManagers and likely will not work any more in Java 9\r