Why does !0 match a default value of 0?

I am trying to set up a .pom file that will use one plugin if forkCount is 0, and a different plugin otherwise. Furthermore, I want 0 to be the default value. In other words, I want

mvn run_tests and mvn -DforkCount=0 run_tests to both use plugin “A”, where mvn run_tests -DforkCount=5 will use plugin “B”.

I have a .pom file with the following segments:

<properties>
   <forkCount>0</forkCount>
</properties>

... 

<activation>
   <property>
      <name>forkCount</name>
      <value>0</value>
    </property>
</activation>

...

<activation>
   <property>
      <name>forkCount</name>
      <value>!0</value>
   </property>
</activation>

Everything works as expected if I pass a value for forkCount on the command line (i.e., plugin “A” is used when forkCount is 0; and plugin “B” is used otherwise). However, if I run mvn run_tests, then plugin “B” gets activated, even though ${forkCount} has a value of 0. What’s going on?