commons/src/main/java/com/epam/eco/schemacatalog/client/CachedExtendedSchemaRegistryClient.java [245:333]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        return SubjectSchemas.with(schemaInfos);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(
            String sourceSubject,
            int sourceVersion,
            String destinationSubject,
            SchemaModification... modifications) {
        return modifyAndRegisterSchema(
                sourceSubject,
                sourceVersion,
                destinationSubject,
                modifications != null ? Arrays.asList(modifications) : null);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(
            String sourceSubject,
            int sourceVersion,
            String destinationSubject,
            List<SchemaModification> modifications) {
        return modifyAndRegisterSchema(
                sourceSubject,
                getBySubjectAndVersion(sourceSubject, sourceVersion),
                destinationSubject,
                modifications);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(
            String sourceSubject,
            Schema sourceSchema,
            String destinationSubject,
            SchemaModification... modifications) {
        return modifyAndRegisterSchema(
                sourceSubject,
                sourceSchema,
                destinationSubject,
                modifications != null ? Arrays.asList(modifications) : null);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(
            String sourceSubject,
            Schema sourceSchema,
            String destinationSubject,
            List<SchemaModification> modifications) {
        Validate.notNull(sourceSchema, "Source schema is null");
        Validate.notBlank(sourceSubject, "Source subject is blank");
        Validate.notBlank(destinationSubject, "Destination subject is blank");

        return doModifyAndRegisterSchema(
                sourceSubject,
                sourceSchema,
                destinationSubject,
                modifications);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(Schema sourceSchema, String destinationSubject, SchemaModification... modifications) {
        return modifyAndRegisterSchema(
                sourceSchema,
                destinationSubject,
                modifications != null ? Arrays.asList(modifications) : null);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(Schema sourceSchema, String destinationSubject, List<SchemaModification> modifications) {
        Validate.notNull(sourceSchema, "Source schema is null");
        Validate.notBlank(destinationSubject, "Destination subject is blank");

        return doModifyAndRegisterSchema(
                null,
                sourceSchema,
                destinationSubject,
                modifications);
    }

    private BasicSchemaInfo doModifyAndRegisterSchema(
            String sourceSubject,
            Schema sourceSchema,
            String destinationSubject,
            List<SchemaModification> modifications) {
        Schema destinationSchema =
                CachedSchemaModifications.of(modifications).applyTo(sourceSchema);

        registerUnchecked(destinationSubject, destinationSchema);
        int destinationVersion = getVersionUnchecked(destinationSubject, destinationSchema);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



commons/src/main/java/com/epam/eco/schemacatalog/client/MockExtendedSchemaRegistryClient.java [155:243]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        return SubjectSchemas.with(schemaInfos);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(
            String sourceSubject,
            int sourceVersion,
            String destinationSubject,
            SchemaModification... modifications) {
        return modifyAndRegisterSchema(
                sourceSubject,
                sourceVersion,
                destinationSubject,
                modifications != null ? Arrays.asList(modifications) : null);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(
            String sourceSubject,
            int sourceVersion,
            String destinationSubject,
            List<SchemaModification> modifications) {
        return modifyAndRegisterSchema(
                sourceSubject,
                getBySubjectAndVersion(sourceSubject, sourceVersion),
                destinationSubject,
                modifications);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(
            String sourceSubject,
            Schema sourceSchema,
            String destinationSubject,
            SchemaModification... modifications) {
        return modifyAndRegisterSchema(
                sourceSubject,
                sourceSchema,
                destinationSubject,
                modifications != null ? Arrays.asList(modifications) : null);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(
            String sourceSubject,
            Schema sourceSchema,
            String destinationSubject,
            List<SchemaModification> modifications) {
        Validate.notNull(sourceSchema, "Source schema is null");
        Validate.notBlank(sourceSubject, "Source subject is blank");
        Validate.notBlank(destinationSubject, "Destination subject is blank");

        return doModifyAndRegisterSchema(
                sourceSubject,
                sourceSchema,
                destinationSubject,
                modifications);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(Schema sourceSchema, String destinationSubject, SchemaModification... modifications) {
        return modifyAndRegisterSchema(
                sourceSchema,
                destinationSubject,
                modifications != null ? Arrays.asList(modifications) : null);
    }

    @Override
    public BasicSchemaInfo modifyAndRegisterSchema(Schema sourceSchema, String destinationSubject, List<SchemaModification> modifications) {
        Validate.notNull(sourceSchema, "Source schema is null");
        Validate.notBlank(destinationSubject, "Destination subject is blank");

        return doModifyAndRegisterSchema(
                null,
                sourceSchema,
                destinationSubject,
                modifications);
    }

    private BasicSchemaInfo doModifyAndRegisterSchema(
            String sourceSubject,
            Schema sourceSchema,
            String destinationSubject,
            List<SchemaModification> modifications) {
        Schema destinationSchema =
                CachedSchemaModifications.of(modifications).applyTo(sourceSchema);

        registerUnchecked(destinationSubject, destinationSchema);
        int destinationVersion = getVersionUnchecked(destinationSubject, destinationSchema);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



