Menu

#7 common classes are duplicated in the common and joda jars

v1.2.0
open
nobody
None
5
2012-01-24
2012-01-24
David Boden
No

The maven-enforcer-plugin's excellent duplicate class finder extension tells me that these classes are packaged in *both* the datecalc-common and the datecalc-joda jar files:

Found in:
net.objectlab.kit:datecalc-joda:jar:1.2.0:compile
net.objectlab.kit:datecalc-common:jar:1.2.0:compile
Duplicate classes:
net/objectlab/kit/datecalc/common/AbstractIMMDateCalculator.class
net/objectlab/kit/datecalc/common/HolidayCalendar.class
net/objectlab/kit/datecalc/common/Utils.class
net/objectlab/kit/datecalc/common/ExcelDateUtil.class
net/objectlab/kit/datecalc/common/DefaultHolidayCalendar$DateComp.class
net/objectlab/kit/datecalc/common/KitCalculatorsFactory.class
net/objectlab/kit/datecalc/common/DefaultHolidayCalendar$1.class
net/objectlab/kit/datecalc/common/StandardTenor.class
net/objectlab/kit/datecalc/common/AbstractDateCalculator$1.class
net/objectlab/kit/datecalc/common/AbstractKitCalculatorsFactory.class
net/objectlab/kit/datecalc/common/HolidayHandler.class
net/objectlab/kit/datecalc/common/PeriodCountBasis.class
net/objectlab/kit/datecalc/common/Tenor.class
net/objectlab/kit/datecalc/common/DefaultHolidayCalendar$CalendarComp.class
net/objectlab/kit/datecalc/common/TenorCode.class
net/objectlab/kit/datecalc/common/DefaultHolidayCalendar.class
net/objectlab/kit/datecalc/common/IMMDateCalculator.class
net/objectlab/kit/datecalc/common/PeriodCountCalculator.class
net/objectlab/kit/datecalc/common/HolidayHandlerType.class
net/objectlab/kit/datecalc/common/DateCalculator.class
net/objectlab/kit/datecalc/common/ImmutableHolidayCalendar.class
net/objectlab/kit/datecalc/common/WorkingWeek.class
net/objectlab/kit/datecalc/common/AbstractDateCalculator.class
net/objectlab/kit/datecalc/common/IMMPeriod.class

This appears to me to be unintentional, bearing in mind that the datecalc-joda pom declares a dependency on the datecalc-common artifact. Is the datecalc-joda packaging including the common class files in error?

My current workaround is just to exclude the datecalc-common transitive dependency:
<exclusion>
<groupId>net.objectlab.kit</groupId>
<artifactId>datecalc-common</artifactId>
</exclusion>

This works because everything required is already present in datecalc-joda.

Discussion

  • David Boden

    David Boden - 2012-02-17

    Here's a patch which prevents the common classes also being packaged in the joda and jdk jar files and adds the enforcer plugin so that the situation cannot recur..

     
  • David Boden

    David Boden - 2012-02-17

    Uploaded a patch.

     

Log in to post a comment.