private static void addFields(final Set<Class<?>> stroomClasses, final Class<?> parentClazz) {
        final Field[] fields = parentClazz.getDeclaredFields();
        for (final Field field : fields) {
            if (!Modifier.isStatic(field.getModifiers())) {
                addType(stroomClasses, field.getGenericType());
//                addClass(stroomClasses, field.getType(), field.getGenericType());
            }
        }

        final Class<?> superClazz = parentClazz.getSuperclass();
        if (superClazz != null && superClazz.getName().startsWith(PACKAGE_START)) {
            for (final Constructor<?> constructor : parentClazz.getDeclaredConstructors()) {
                final JsonCreator jsonCreator = constructor.getAnnotation(JsonCreator.class);
                if (jsonCreator != null) {
                    for (final Type parameterType : constructor.getGenericParameterTypes()) {
                        addType(stroomClasses, parameterType);
                    }
                }
            }
        }
    }
Test that classes that will be subject to JSON serialisation have the full complement of JSON annotations.
stroom-app/src/test/java/stroom/importexport/TestJsonSerialisation.java