This is an automated email from the ASF dual-hosted git repository.

pkarwasz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit bf7543a9f9f38bbc13776a5e703e0a1460294a7c
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Mon Nov 20 12:58:28 2023 +0100

    Remove dependency on internal package
---
 .../log4j/core/util/datetime/DatePrinter.java      | 133 +++++++++++++++++++++
 .../log4j/core/util/datetime/FastDateFormat.java   |   1 -
 .../logging/log4j/core/util/datetime/Format.java   |  32 +++++
 3 files changed, 165 insertions(+), 1 deletion(-)

diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/DatePrinter.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/DatePrinter.java
new file mode 100644
index 0000000000..7214e443a8
--- /dev/null
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/DatePrinter.java
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.logging.log4j.core.util.datetime;
+
+import java.text.FieldPosition;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+import java.util.TimeZone;
+
+/**
+ * Use {@link org.apache.logging.log4j.core.time.internal.format.DatePrinter}.
+ */
+@Deprecated
+public interface DatePrinter {
+
+    /**
+     * <p>Formats a millisecond {@code long} value.</p>
+     *
+     * @param millis  the millisecond value to format
+     * @return the formatted string
+     * @since 2.1
+     */
+    String format(long millis);
+
+    /**
+     * <p>Formats a {@code Date} object using a {@code GregorianCalendar}.</p>
+     *
+     * @param date  the date to format
+     * @return the formatted string
+     */
+    String format(Date date);
+
+    /**
+     * <p>Formats a {@code Calendar} object.</p>
+     * The TimeZone set on the Calendar is only used to adjust the time offset.
+     * The TimeZone specified during the construction of the Parser will 
determine the TimeZone
+     * used in the formatted string.
+     *
+     * @param calendar  the calendar to format.
+     * @return the formatted string
+     */
+    String format(Calendar calendar);
+
+    /**
+     * <p>Formats a millisecond {@code long} value into the
+     * supplied {@code Appendable}.</p>
+     *
+     * @param millis  the millisecond value to format
+     * @param buf  the buffer to format into
+     * @param <B> the Appendable class type, usually StringBuilder or 
StringBuffer.
+     * @return the specified string buffer
+     * @since 3.5
+     */
+    <B extends Appendable> B format(long millis, B buf);
+
+    /**
+     * <p>Formats a {@code Date} object into the
+     * supplied {@code Appendable} using a {@code GregorianCalendar}.</p>
+     *
+     * @param date  the date to format
+     * @param buf  the buffer to format into
+     * @param <B> the Appendable class type, usually StringBuilder or 
StringBuffer.
+     * @return the specified string buffer
+     * @since 3.5
+     */
+    <B extends Appendable> B format(Date date, B buf);
+
+    /**
+     * <p>Formats a {@code Calendar} object into the supplied {@code 
Appendable}.</p>
+     * The TimeZone set on the Calendar is only used to adjust the time offset.
+     * The TimeZone specified during the construction of the Parser will 
determine the TimeZone
+     * used in the formatted string.
+     *
+     * @param calendar  the calendar to format
+     * @param buf  the buffer to format into
+     * @param <B> the Appendable class type, usually StringBuilder or 
StringBuffer.
+     * @return the specified string buffer
+     * @since 3.5
+     */
+    <B extends Appendable> B format(Calendar calendar, B buf);
+
+    // Accessors
+    // -----------------------------------------------------------------------
+    /**
+     * <p>Gets the pattern used by this printer.</p>
+     *
+     * @return the pattern, {@link java.text.SimpleDateFormat} compatible
+     */
+    String getPattern();
+
+    /**
+     * <p>Gets the time zone used by this printer.</p>
+     *
+     * <p>This zone is always used for {@code Date} printing. </p>
+     *
+     * @return the time zone
+     */
+    TimeZone getTimeZone();
+
+    /**
+     * <p>Gets the locale used by this printer.</p>
+     *
+     * @return the locale
+     */
+    Locale getLocale();
+
+    /**
+     * <p>Formats a {@code Date}, {@code Calendar} or
+     * {@code Long} (milliseconds) object.</p>
+     *
+     * @param obj  the object to format
+     * @param toAppendTo  the buffer to append to
+     * @param pos  the position - ignored
+     * @return the buffer passed in
+     * @see java.text.DateFormat#format(Object, StringBuffer, FieldPosition)
+     */
+    StringBuilder format(Object obj, StringBuilder toAppendTo, FieldPosition 
pos);
+}
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateFormat.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateFormat.java
index 9f57b8c689..b15fd704dd 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateFormat.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateFormat.java
@@ -21,7 +21,6 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.Locale;
 import java.util.TimeZone;
-import org.apache.logging.log4j.core.time.internal.format.*;
 
 /**
  *
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/Format.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/Format.java
new file mode 100644
index 0000000000..38ea25e1f4
--- /dev/null
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/Format.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.logging.log4j.core.util.datetime;
+
+import java.text.FieldPosition;
+
+/**
+ * Use {@link org.apache.logging.log4j.core.time.internal.format.Format}.
+ */
+@Deprecated
+public abstract class Format {
+
+    public final String format(final Object obj) {
+        return format(obj, new StringBuilder(), new 
FieldPosition(0)).toString();
+    }
+
+    public abstract StringBuilder format(Object obj, StringBuilder toAppendTo, 
FieldPosition pos);
+}

Reply via email to