MODE-1128 Eliminated the dependency on JCIP and its annotations Changed the POM and Java source to eliminate the dependency on JCIP annotations. ModeShape was using only 4 of the annotations (number of corresponding import statements is listed in parentheses): net.jcip.annotations.GuardedBy (10) net.jcip.annotations.Immutable (310) net.jcip.annotations.NotThreadSafe (95) net.jcip.annotations.ThreadSafe (97) These were replaced with new annotations in 'org.modeshape.common.annotation' that are semantically and lexically the same as the JCIP annotations. The 'net.jcip' dependency was removed from all POMs. This change should be backward compatible. If user code is explicitly using these annotations within Maven projects, they will have to have explicit dependencies, and when upgrading to 2.5.0.Beta2 they will not have any issues. Similarly, non-Maven projects will already have the JCIP JAR on their classpath, and can remove the library if they are not explicitly using it. All unit and integration tests continue to pass with these changes.
MODE-1106 Separated the parent POM into its own module. Created a 'modeshape-parent' project that contains just the information that all other modules inherit, while leaving the set of modules and module-related profiles in the top-level build POM. Since almost all of the other projects were inheriting from the top-level POM, they were changed to reference the new parent (including the new relative location).
With these changes, the build works as expected. No Java code was harmed or changed.