Class AssertFactoryProvider


  • class AssertFactoryProvider
    extends java.lang.Object
    In AssertJ before 3.13.0 AssertFactory class looks like this:
     public interface AssertFactory {
          ASSERT createAssert(T t);
     }
     

    So after type erasure it should be like this:

     public interface AssertFactory {
          Object createAssert(Object t);
     }
    
     In AssertJ 3.13.0 AssertFactory class was change to:
     
     public interface AssertFactory<T, ASSERT extends Assert<?, ?>> {
          ASSERT createAssert(T t);
     }
     

    So after type erasure it should be like this:

     public interface AssertFactory {
          Assert createAssert(Object t);
     }
     

    That change brings binary incompatibility so NodeAssertFactory cannot be used along with latest AssertJ. AssertFactoryProvider checks if there is new version of AssertFactory on class path and if so dynamically creates AssertFactory subclass otherwise return instance of NodeAssertFactory.

    AssertFactoryProvider uses ByteBuddy internally witch should be provided by latest AssertJ.

    Since:
    XMLUnit 2.6.4
    See Also:
    AssertFactory, FactoryBasedNavigableIterableAssert
    • Field Detail

      • assertFactoryClass

        private static java.lang.Class<? extends org.assertj.core.api.AssertFactory> assertFactoryClass
    • Constructor Detail

      • AssertFactoryProvider

        AssertFactoryProvider()