You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/01/09 09:14:16 UTC

[isis] branch master updated: ISIS-2856: applib, commons: handle deprecations

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 1e9c683  ISIS-2856: applib, commons: handle deprecations
1e9c683 is described below

commit 1e9c68327e7d297bbc6c731a7d6811835802e79a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jan 9 10:13:26 2022 +0100

    ISIS-2856: applib, commons: handle deprecations
    
    - removals and update of comments and java-doc
---
 .../org/apache/isis/applib/clock/VirtualClock.java |  24 ++--
 .../events/ActionArgumentUsabilityEvent.java       |  10 +-
 .../events/ActionArgumentVisibilityEvent.java      |   9 +-
 .../internal/context/_Context_ThreadLocal.java     | 148 ---------------------
 .../apache/isis/commons/internal/debug/_Debug.java |   2 +-
 5 files changed, 19 insertions(+), 174 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock.java b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock.java
index 6aadde2..9a638ac 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock.java
@@ -108,7 +108,7 @@ public interface VirtualClock extends Serializable {
     /**
      * @deprecated convert use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     static VirtualClock nowAt(@NonNull final org.joda.time.LocalDate virtualNow) {
         return nowAt(virtualNow.toDate());
     }
@@ -116,7 +116,7 @@ public interface VirtualClock extends Serializable {
     /**
      * @deprecated convert use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     static VirtualClock nowAt(@NonNull final org.joda.time.LocalDateTime virtualNow) {
         return nowAt(virtualNow.toDate());
     }
@@ -124,7 +124,7 @@ public interface VirtualClock extends Serializable {
     /**
      * @deprecated convert use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     static VirtualClock nowAt(@NonNull final org.joda.time.DateTime virtualNow) {
         return nowAt(virtualNow.toDate());
     }
@@ -160,7 +160,7 @@ public interface VirtualClock extends Serializable {
     /**
      * @deprecated use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     static VirtualClock frozenAt(@NonNull final org.joda.time.LocalDate frozenAt) {
         return frozenAt(frozenAt.toDate());
     }
@@ -168,7 +168,7 @@ public interface VirtualClock extends Serializable {
     /**
      * @deprecated use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     static VirtualClock frozenAt(@NonNull final org.joda.time.LocalDateTime frozenAt) {
         return frozenAt(frozenAt.toDate());
     }
@@ -176,7 +176,7 @@ public interface VirtualClock extends Serializable {
     /**
      * @deprecated use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     static VirtualClock frozenAt(@NonNull final org.joda.time.DateTime frozenAt) {
         return frozenAt(frozenAt.toDate());
     }
@@ -295,7 +295,7 @@ public interface VirtualClock extends Serializable {
      * @see #nowAsJodaDateTime()
      * @deprecated use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     default org.joda.time.DateTime nowAsJodaDateTime(final @NonNull ZoneId zoneId) {
         return new org.joda.time.DateTime(nowAsEpochMilli(), DateTimeZone.forID(zoneId.getId()));
     }
@@ -308,7 +308,7 @@ public interface VirtualClock extends Serializable {
      * @see #nowAsJodaDateTime(ZoneId)
      * @deprecated use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     default org.joda.time.DateTime nowAsJodaDateTime() {
         return nowAsJodaDateTime(ZoneId.systemDefault());
     }
@@ -322,7 +322,7 @@ public interface VirtualClock extends Serializable {
      *//**
      * @deprecated use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     default org.joda.time.LocalDateTime nowAsJodaLocalDateTime(final @NonNull ZoneId zoneId) {
         return nowAsJodaDateTime(zoneId).toLocalDateTime();
     }
@@ -335,7 +335,7 @@ public interface VirtualClock extends Serializable {
      * @see #nowAsJodaDateTime(ZoneId)
      * @deprecated use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     default org.joda.time.LocalDateTime nowAsJodaLocalDateTime() {
         return nowAsJodaDateTime().toLocalDateTime();
     }
@@ -348,7 +348,7 @@ public interface VirtualClock extends Serializable {
      * @see #nowAsJodaDateTime()
      * @deprecated use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     default org.joda.time.LocalDate nowAsJodaLocalDate(final @NonNull ZoneId zoneId) {
         return new org.joda.time.LocalDate(nowAsEpochMilli(), DateTimeZone.forID(zoneId.getId()));
     }
@@ -361,7 +361,7 @@ public interface VirtualClock extends Serializable {
      * @see #nowAsJodaLocalDate(ZoneId)
      * @deprecated use java.time variant instead (Joda Time is deprecated)
      */
-    @Deprecated
+    @Deprecated // forRemoval=? ideally applib should no longer depend on joda.time, use converters instead
     default org.joda.time.LocalDate nowAsJodaLocalDate() {
         val zoneId = ZoneId.systemDefault();
         return nowAsJodaLocalDate(zoneId);
diff --git a/api/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentUsabilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentUsabilityEvent.java
index 0c4de01..e7190b5 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentUsabilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentUsabilityEvent.java
@@ -22,17 +22,12 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> 
- * represents a check as to whether a particular argument for an action is disabled
+ * Represents a check as to whether a particular argument for an action is disabled
  * or not.
- * 
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * argument's parameter should be disabled; otherwise the parameter can be entered.
- * 
- * @deprecated
  */
-@Deprecated
 public class ActionArgumentUsabilityEvent extends UsabilityEvent {
 
     private final Object[] args;
@@ -59,7 +54,8 @@ public class ActionArgumentUsabilityEvent extends UsabilityEvent {
 
     @Override
     public String getReasonMessage() {
-        return String.format("Invalid action argument. Position: %s. Reason: %s", this.getPosition(), super.getReasonMessage());
+        return String.format("Invalid action argument. Position: %s. Reason: %s",
+                this.getPosition(), super.getReasonMessage());
     }
 
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentVisibilityEvent.java b/api/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentVisibilityEvent.java
index 2919df5..ecbf041 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentVisibilityEvent.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentVisibilityEvent.java
@@ -22,16 +22,12 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
 
 /**
- * <i>Supported only by {@link org.apache.isis.applib.services.wrapper.WrapperFactory} service, </i> represents a check as to whether a particular parameter for an action is visible
+ * Check as to whether a particular parameter for an action is visible
  * or not.
- * 
  * <p>
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the
  * argument's parameter should be hidden; otherwise the parameter is shown.
- * 
- * @deprecated
  */
-@Deprecated
 public class ActionArgumentVisibilityEvent extends VisibilityEvent {
 
     private final Object[] args;
@@ -58,7 +54,8 @@ public class ActionArgumentVisibilityEvent extends VisibilityEvent {
 
     @Override
     public String getReasonMessage() {
-        return String.format("Invalid action argument. Position: %s. Reason: %s", this.getPosition(), super.getReasonMessage());
+        return String.format("Invalid action argument. Position: %s. Reason: %s",
+                this.getPosition(), super.getReasonMessage());
     }
 
 }
diff --git a/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal.java b/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal.java
deleted file mode 100644
index 4b06d67..0000000
--- a/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- *  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.isis.commons.internal.context;
-
-import java.util.Map;
-
-import org.apache.isis.commons.collections.Can;
-import org.apache.isis.commons.internal.base._Casts;
-import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.commons.internal.collections._Multimaps;
-
-import lombok.NonNull;
-import lombok.Value;
-import lombok.val;
-
-/**
- * <h1>- internal use only -</h1>
- * <p>
- * Package private mixin for _Context.
- * Provides a context for storing and retrieving thread local object references.
- * </p>
- * <p>
- * <b>WARNING</b>: Do <b>NOT</b> use any of the classes provided by this package! <br/>
- * These may be changed or removed without notice!
- * </p>
- *
- * @since 2.0
- *
- */
-@Deprecated // no longer in use
-final class _Context_ThreadLocal {
-
-    // -- MIXINS
-
-    @Value(staticConstructor = "of")
-    private static final class ThreadKey {
-        long threadId;
-        int threadHashCode;
-        static ThreadKey of(final Thread thread) {
-            return of(thread.getId(), thread.hashCode());
-        }
-    }
-
-    static <T> Runnable put(final @NonNull Class<? super T> type, final @NonNull T variant) {
-        val threadLocalMap = getOrCreateThreadLocalMap();
-        threadLocalMap
-        .compute(type, (k, v) -> v == null
-        ? Can.<T>ofSingleton(variant)
-                : Can.<T>concat(_Casts.uncheckedCast(v), variant));
-
-        val key = THREAD_LOCAL_MAP_KEY.get();
-
-        return ()->{MAPS_BY_KEY.remove(key);};
-    }
-
-    static <T> Can<T> select(final Class<? super T> type, final Class<? super T> instanceOf) {
-        val bin = _Context_ThreadLocal.<T>get(type);
-        return bin.filter(t -> isInstanceOf(t, instanceOf));
-    }
-
-    private static boolean isInstanceOf(final Object obj, final Class<?> type) {
-        return type.isAssignableFrom(obj.getClass());
-    }
-
-    static <T> Can<T> get(final Class<? super T> type) {
-        val threadLocalMap = getThreadLocalMap();
-        if(threadLocalMap==null) {
-            return Can.empty();
-        }
-        val bin = threadLocalMap.get(type);
-        if(bin==null) {
-            return Can.empty();
-        }
-        return _Casts.uncheckedCast(bin);
-    }
-
-    static void clear(final Class<?> type) {
-        val threadLocalMap = getThreadLocalMap();
-        if(threadLocalMap==null) {
-            return;
-        }
-        threadLocalMap.remove(type);
-    }
-
-    static void cleanupThread() {
-        val key = THREAD_LOCAL_MAP_KEY.get();
-        THREAD_LOCAL_MAP_KEY.remove();
-        MAPS_BY_KEY.remove(key);
-    }
-
-    // -- HELPER
-
-    private _Context_ThreadLocal(){}
-
-    static void clear() {
-        MAPS_BY_KEY.clear();
-    }
-
-    //	/**
-    //	 * Inheritable... allows to have concurrent computations utilizing the ForkJoinPool.
-    //	 */
-    //    private static final ThreadLocal<Map<Class<?>, Bin<?>>> THREAD_LOCAL_MAP =
-    //    		InheritableThreadLocal.withInitial(HashMap::new);
-
-    /**
-     * Inheritable... allows to have concurrent computations utilizing the ForkJoinPool.
-     */
-    private static final ThreadLocal<ThreadKey> THREAD_LOCAL_MAP_KEY =
-            InheritableThreadLocal.withInitial(()->ThreadKey.of(Thread.currentThread()));
-
-
-    private static final _Multimaps.MapMultimap<ThreadKey, Class<?>, Can<?>> MAPS_BY_KEY =
-            _Multimaps.newConcurrentMapMultimap();
-
-    private static Map<Class<?>, Can<?>> getThreadLocalMap() {
-        val key = THREAD_LOCAL_MAP_KEY.get(); // non-null
-        val threadLocalMap = MAPS_BY_KEY.get(key); // might be null
-        return threadLocalMap;
-    }
-
-    private static Map<Class<?>, Can<?>> getOrCreateThreadLocalMap() {
-        val key = THREAD_LOCAL_MAP_KEY.get(); // non-null
-        val threadLocalMap = MAPS_BY_KEY.get(key); // might be null
-        if(threadLocalMap!=null) {
-            return threadLocalMap;
-        }
-        val map = _Maps.<Class<?>, Can<?>>newHashMap();
-        MAPS_BY_KEY.put(key, map);
-        return map;
-    }
-
-}
diff --git a/commons/src/main/java/org/apache/isis/commons/internal/debug/_Debug.java b/commons/src/main/java/org/apache/isis/commons/internal/debug/_Debug.java
index 74588b0..4e76158 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/debug/_Debug.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/debug/_Debug.java
@@ -43,7 +43,7 @@ import lombok.experimental.UtilityClass;
  * to indicate that any call to this class is temporary for debugging purposes
  * and should be removed ultimately
  */
-@Deprecated // do not remove, see java-doc
+@Deprecated(forRemoval = false) // do not remove, see java-doc
 @UtilityClass
 public class _Debug {