@Deprecated
    public static JoinWindows of(final Duration timeDifference) throws IllegalArgumentException {
        final String msgPrefix = prepareMillisCheckFailMsgPrefix(timeDifference, "timeDifference");
        final long timeDifferenceMs = validateMillisecondDuration(timeDifference, msgPrefix);
        return new JoinWindows(timeDifferenceMs, timeDifferenceMs, Math.max(DEPRECATED_DEFAULT_24_HR_GRACE_PERIOD - timeDifferenceMs * 2, 0), false);
    }
Specifies that records of the same key are joinable if their timestamps are within {@code timeDifference},
i.e., the timestamp of a record from the secondary stream is max {@code timeDifference} before or after
the timestamp of the record from the primary stream.

@param timeDifference join window interval
@return a new JoinWindows object with the window definition with and grace period (default to 24 hours minus {@code timeDifference})
@throws IllegalArgumentException if {@code timeDifference} is negative or can't be represented as {@code long milliseconds}
@deprecated since 3.0. Use {@link #ofTimeDifferenceWithNoGrace(Duration)}} instead
streams/src/main/java/org/apache/kafka/streams/kstream/JoinWindows.java