objectlabkit icon indicating copy to clipboard operation
objectlabkit copied to clipboard

Duplicate classes in datecalc-joda and datecalc-common

Open jiri-pejchal opened this issue 4 years ago • 1 comments

I'm using the Maven enforcer plugin that can check for duplicate classes during the build. When I upgrade datecalc-joda (that artefact depends on datecalc-common) from 1.4.1 to 1.4.2 my build fails with the following error:

[WARNING] Rule 6: org.apache.maven.plugins.enforcer.BanDuplicateClasses failed with message:
Duplicate classes found:

  Found in:
    net.objectlab.kit:datecalc-joda:jar:1.4.2:compile
    net.objectlab.kit:datecalc-common:jar:1.4.2:compile
  Duplicate classes:
    net/objectlab/kit/datecalc/common/BaseCalculator.class
    net/objectlab/kit/datecalc/common/IMMDateCalculator.class
    net/objectlab/kit/datecalc/common/DateCalculator.class
    net/objectlab/kit/datecalc/common/Tenor.class
    net/objectlab/kit/datecalc/common/SpotLag.class
    net/objectlab/kit/datecalc/common/NonWorkingDayChecker.class
    net/objectlab/kit/datecalc/common/HolidayHandlerType.class
    net/objectlab/kit/datecalc/common/ReadOnlyHolidayCalendar.class
    net/objectlab/kit/datecalc/common/CurrencyDateCalculator.class
    net/objectlab/kit/datecalc/common/IMMPeriod.class
    net/objectlab/kit/datecalc/common/ccy/AbstractCurrencyDateCalculator$1.class
    net/objectlab/kit/datecalc/common/ccy/DefaultCurrencyCalculatorConfig.class
    net/objectlab/kit/datecalc/common/Utils.class
    net/objectlab/kit/datecalc/common/DefaultHolidayCalendar.class
    net/objectlab/kit/datecalc/common/KitCalculatorsFactory.class
    net/objectlab/kit/datecalc/common/WorkingWeek.class
    net/objectlab/kit/datecalc/common/ExcelDateUtil.class
    net/objectlab/kit/datecalc/common/CurrencyDateCalculatorBuilder.class
    net/objectlab/kit/datecalc/common/AbstractDateCalculator.class
    net/objectlab/kit/datecalc/common/AbstractKitCalculatorsFactory.class
    net/objectlab/kit/datecalc/common/AbstractIMMDateCalculator.class
    net/objectlab/kit/datecalc/common/TenorCode.class
    net/objectlab/kit/datecalc/common/PeriodCountCalculator.class
    net/objectlab/kit/datecalc/common/AbstractDateCalculator$1.class
    net/objectlab/kit/datecalc/common/ImmutableHolidayCalendar.class
    net/objectlab/kit/datecalc/common/CalculatorConstants.class
    net/objectlab/kit/datecalc/common/ccy/CurrencyCalculatorConfig.class
    net/objectlab/kit/datecalc/common/PeriodCountBasis.class
    net/objectlab/kit/datecalc/common/StandardTenor.class
    net/objectlab/kit/datecalc/common/ccy/AbstractCurrencyDateCalculator.class
    net/objectlab/kit/datecalc/common/HolidayCalendar.class
    net/objectlab/kit/datecalc/common/HolidayHandler.class

It seems to me that the common classes should not be included in the datecalc-joda jar.

jiri-pejchal avatar May 05 '20 14:05 jiri-pejchal

Same issue is present in datecalc-jdk8. datecalc-commons should be pulled in as transitive dependency, not included in the main artifact.

This is an actual problem because the source jar for datecalc-jdk8 does not have commons sources, therefore Eclipse does not attach them, and debugging becomes very difficult.

gbaso avatar May 07 '21 11:05 gbaso