Set a baseline for JaCoCo checks
diff --git a/commons-fileupload2-core/pom.xml b/commons-fileupload2-core/pom.xml
index 2818c56..5c79664 100644
--- a/commons-fileupload2-core/pom.xml
+++ b/commons-fileupload2-core/pom.xml
@@ -37,8 +37,14 @@
 	<commons.parent.dir>${basedir}/..</commons.parent.dir>
 	<commons.module.name>org.apache.commons.fileupload2.core</commons.module.name>
     <project.build.outputTimestamp>2024-01-01T00:00:00Z</project.build.outputTimestamp>
+    <!-- JaCoCo: Don't make code coverage worse than: -->
+    <commons.jacoco.classRatio>0.46</commons.jacoco.classRatio>
+    <commons.jacoco.instructionRatio>0.43</commons.jacoco.instructionRatio>
+    <commons.jacoco.methodRatio>0.40</commons.jacoco.methodRatio>
+    <commons.jacoco.branchRatio>0.43</commons.jacoco.branchRatio>
+    <commons.jacoco.lineRatio>0.42</commons.jacoco.lineRatio>
+    <commons.jacoco.complexityRatio>0.37</commons.jacoco.complexityRatio>
   </properties>
-
   <dependencies>
     <dependency>
       <groupId>commons-io</groupId>
diff --git a/commons-fileupload2-core/src/site/resources/profile.jacoco b/commons-fileupload2-core/src/site/resources/profile.jacoco
new file mode 100644
index 0000000..a12755f
--- /dev/null
+++ b/commons-fileupload2-core/src/site/resources/profile.jacoco
@@ -0,0 +1,17 @@
+# 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.
+# -----------------------------------------------------------------------------
+#
+# Empty file used to automatically trigger JaCoCo profile from commons parent pom
diff --git a/commons-fileupload2-jakarta-servlet5/pom.xml b/commons-fileupload2-jakarta-servlet5/pom.xml
index fbf73a1..877b2ec 100644
--- a/commons-fileupload2-jakarta-servlet5/pom.xml
+++ b/commons-fileupload2-jakarta-servlet5/pom.xml
@@ -36,15 +36,19 @@
   <properties>
 	<commons.parent.dir>${basedir}/..</commons.parent.dir>
 	<commons.module.name>org.apache.commons.fileupload2.jakarta.servlet5</commons.module.name>
-
 	<!-- Override properties for the OSGi maven-bundle-plugin to generate proper manifest -->
     <commons.osgi.requireCapability>osgi.contract;filter:="(&amp;(osgi.contract=JakartaServlet)(version=5.0))"</commons.osgi.requireCapability>
-
 	<!-- Override link to Jakarta EE -->
 	<commons.javadoc.javaee.link>https://jakarta.ee/specifications/platform/9.1/apidocs/</commons.javadoc.javaee.link>
     <project.build.outputTimestamp>2024-01-01T00:00:00Z</project.build.outputTimestamp>
+    <!-- JaCoCo: Don't make code coverage worse than: -->
+    <commons.jacoco.classRatio>0.75</commons.jacoco.classRatio>
+    <commons.jacoco.instructionRatio>0.60</commons.jacoco.instructionRatio>
+    <commons.jacoco.methodRatio>0.61</commons.jacoco.methodRatio>
+    <commons.jacoco.branchRatio>0.00</commons.jacoco.branchRatio>
+    <commons.jacoco.lineRatio>0.62</commons.jacoco.lineRatio>
+    <commons.jacoco.complexityRatio>0.55</commons.jacoco.complexityRatio>
   </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.commons</groupId>
diff --git a/commons-fileupload2-jakarta-servlet5/src/site/resources/profile.jacoco b/commons-fileupload2-jakarta-servlet5/src/site/resources/profile.jacoco
new file mode 100644
index 0000000..a12755f
--- /dev/null
+++ b/commons-fileupload2-jakarta-servlet5/src/site/resources/profile.jacoco
@@ -0,0 +1,17 @@
+# 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.
+# -----------------------------------------------------------------------------
+#
+# Empty file used to automatically trigger JaCoCo profile from commons parent pom
diff --git a/commons-fileupload2-jakarta-servlet6/pom.xml b/commons-fileupload2-jakarta-servlet6/pom.xml
index 021a822..7bf7c9a 100644
--- a/commons-fileupload2-jakarta-servlet6/pom.xml
+++ b/commons-fileupload2-jakarta-servlet6/pom.xml
@@ -36,15 +36,19 @@
   <properties>
 	<commons.parent.dir>${basedir}/..</commons.parent.dir>
 	<commons.module.name>org.apache.commons.fileupload2.jakarta.servlet6</commons.module.name>
-
 	<!-- Override properties for the OSGi maven-bundle-plugin to generate proper manifest -->
     <commons.osgi.requireCapability>osgi.contract;filter:="(&amp;(osgi.contract=JakartaServlet)(version=6.0))"</commons.osgi.requireCapability>
-
     <!-- Override link to Jakarta EE -->
     <commons.javadoc.javaee.link>https://jakarta.ee/specifications/platform/10/apidocs/</commons.javadoc.javaee.link>	
     <project.build.outputTimestamp>2024-01-01T00:00:00Z</project.build.outputTimestamp>
+    <!-- JaCoCo: Don't make code coverage worse than: -->
+    <commons.jacoco.classRatio>0.75</commons.jacoco.classRatio>
+    <commons.jacoco.instructionRatio>0.60</commons.jacoco.instructionRatio>
+    <commons.jacoco.methodRatio>0.61</commons.jacoco.methodRatio>
+    <commons.jacoco.branchRatio>0.00</commons.jacoco.branchRatio>
+    <commons.jacoco.lineRatio>0.62</commons.jacoco.lineRatio>
+    <commons.jacoco.complexityRatio>0.55</commons.jacoco.complexityRatio>
   </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.commons</groupId>
diff --git a/commons-fileupload2-jakarta-servlet6/src/site/resources/profile.jacoco b/commons-fileupload2-jakarta-servlet6/src/site/resources/profile.jacoco
new file mode 100644
index 0000000..a12755f
--- /dev/null
+++ b/commons-fileupload2-jakarta-servlet6/src/site/resources/profile.jacoco
@@ -0,0 +1,17 @@
+# 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.
+# -----------------------------------------------------------------------------
+#
+# Empty file used to automatically trigger JaCoCo profile from commons parent pom
diff --git a/commons-fileupload2-javax/pom.xml b/commons-fileupload2-javax/pom.xml
index 58be5f1..dc8d048 100644
--- a/commons-fileupload2-javax/pom.xml
+++ b/commons-fileupload2-javax/pom.xml
@@ -36,13 +36,18 @@
   <properties>
 	<commons.parent.dir>${basedir}/..</commons.parent.dir>
 	<commons.module.name>org.apache.commons.fileupload2.javax</commons.module.name>
-
 	<!-- Override properties for the OSGi maven-bundle-plugin to generate proper manifest -->
     <commons.osgi.import>javax.servlet.*;version=${commons.servlet-api.version},*</commons.osgi.import>
     <commons.osgi.requireCapability>osgi.contract;filter:="(&amp;(osgi.contract=JavaServlet)(version=${commons.servlet-api.version}))"</commons.osgi.requireCapability>
     <project.build.outputTimestamp>2024-01-01T00:00:00Z</project.build.outputTimestamp>
+    <!-- JaCoCo: Don't make code coverage worse than: -->
+    <commons.jacoco.classRatio>0.75</commons.jacoco.classRatio>
+    <commons.jacoco.instructionRatio>0.56</commons.jacoco.instructionRatio>
+    <commons.jacoco.methodRatio>0.55</commons.jacoco.methodRatio>
+    <commons.jacoco.branchRatio>0.00</commons.jacoco.branchRatio>
+    <commons.jacoco.lineRatio>0.55</commons.jacoco.lineRatio>
+    <commons.jacoco.complexityRatio>0.50</commons.jacoco.complexityRatio>
   </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.commons</groupId>
diff --git a/commons-fileupload2-javax/src/site/resources/profile.jacoco b/commons-fileupload2-javax/src/site/resources/profile.jacoco
new file mode 100644
index 0000000..a12755f
--- /dev/null
+++ b/commons-fileupload2-javax/src/site/resources/profile.jacoco
@@ -0,0 +1,17 @@
+# 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.
+# -----------------------------------------------------------------------------
+#
+# Empty file used to automatically trigger JaCoCo profile from commons parent pom
diff --git a/commons-fileupload2-portlet/pom.xml b/commons-fileupload2-portlet/pom.xml
index 6150b96..82d31fc 100644
--- a/commons-fileupload2-portlet/pom.xml
+++ b/commons-fileupload2-portlet/pom.xml
@@ -41,8 +41,14 @@
     <commons.osgi.import>!javax.portlet,*</commons.osgi.import>
     <commons.osgi.dynamicImport>javax.portlet</commons.osgi.dynamicImport>
     <project.build.outputTimestamp>2024-01-01T00:00:00Z</project.build.outputTimestamp>
+    <!-- JaCoCo: Don't make code coverage worse than: -->
+    <commons.jacoco.classRatio>1.00</commons.jacoco.classRatio>
+    <commons.jacoco.instructionRatio>0.64</commons.jacoco.instructionRatio>
+    <commons.jacoco.methodRatio>0.60</commons.jacoco.methodRatio>
+    <commons.jacoco.branchRatio>1.00</commons.jacoco.branchRatio>
+    <commons.jacoco.lineRatio>0.64</commons.jacoco.lineRatio>
+    <commons.jacoco.complexityRatio>0.60</commons.jacoco.complexityRatio>
   </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.commons</groupId>
diff --git a/commons-fileupload2-portlet/src/site/resources/profile.jacoco b/commons-fileupload2-portlet/src/site/resources/profile.jacoco
new file mode 100644
index 0000000..a12755f
--- /dev/null
+++ b/commons-fileupload2-portlet/src/site/resources/profile.jacoco
@@ -0,0 +1,17 @@
+# 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.
+# -----------------------------------------------------------------------------
+#
+# Empty file used to automatically trigger JaCoCo profile from commons parent pom
diff --git a/pom.xml b/pom.xml
index 9bef23e..fcbcea9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -264,6 +264,14 @@
     <commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
     <commons.release.isDistModule>false</commons.release.isDistModule>
     <project.build.outputTimestamp>2024-01-01T00:00:00Z</project.build.outputTimestamp>
+    <!-- JaCoCo: Don't make code coverage worse than: -->
+    <commons.jacoco.haltOnFailure>true</commons.jacoco.haltOnFailure>
+    <commons.jacoco.classRatio>1.00</commons.jacoco.classRatio>
+    <commons.jacoco.instructionRatio>1.00</commons.jacoco.instructionRatio>
+    <commons.jacoco.methodRatio>1.00</commons.jacoco.methodRatio>
+    <commons.jacoco.branchRatio>1.00</commons.jacoco.branchRatio>
+    <commons.jacoco.lineRatio>1.00</commons.jacoco.lineRatio>
+    <commons.jacoco.complexityRatio>1.00</commons.jacoco.complexityRatio>
   </properties>
 
   <dependencyManagement>