This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v4
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/v4 by this push:
new 2e370a2ee9c CAUSEWAY-3892: work on deprecations (3)
2e370a2ee9c is described below
commit 2e370a2ee9c47c0627d1aca340675d9239416fa9
Author: Andi Huber <[email protected]>
AuthorDate: Fri Jun 13 11:26:15 2025 +0200
CAUSEWAY-3892: work on deprecations (3)
---
.../applib/services/bookmark/IdStringifier.java | 80 ---------
.../applib/services/email/EmailService.java | 8 +-
.../services/wrapper/events/ParseValueEvent.java | 62 -------
.../commons/internal/exceptions/_Exceptions.java | 46 -----
.../core/config/CausewayConfiguration.java | 197 +--------------------
.../core/config/CausewayModuleCoreConfig.java | 35 ++++
.../causeway/core/config/EmailConfiguration.java | 24 +--
.../core/metamodel/object/ManagedObject.java | 2 -
.../metamodel/spec/HasObjectSpecification.java | 2 -
.../valuesemantics/BigDecimalValueSemantics.java | 4 +-
.../BigDecimalValueSemanticsProviderTest.java | 2 +-
...anticsProvider_configureDecimalFormat_Test.java | 6 +-
.../CausewayModuleCoreRuntimeServices.java | 4 +-
.../runtimeservices/email/EmailServiceDefault.java | 120 +++----------
.../restclient/api/delete/DeleteMessage.java | 2 -
.../api/deleteMany/DeleteManyMessage.java | 2 -
.../applib/user/events/UserCreatedEvent.java | 5 -
.../fc/res/FullCalendarCssReference.java | 50 ------
.../extensions/sse/applib/service/SseChannel.java | 3 -
.../sse/wicket/services/SseServiceDefault.java | 4 +-
.../repository/RepositoryServiceDefault.java | 3 +-
.../persistence/jpa/eclipselink/inject/_Util.java | 24 +--
.../integration/entity/_JpaEntityStateUtil.java | 45 -----
.../viewers/jpa/wkt/InteractionTestJpaWkt.java | 2 +-
.../client/auth/basic/BasicCreds.java | 3 -
.../client/auth/oauth2/Oauth2Creds.java | 5 -
.../service/valuerender/_JsonValueConverters.java | 6 -
.../scalars/jdkmath/BigDecimalConverterTest.java | 7 +-
28 files changed, 103 insertions(+), 650 deletions(-)
diff --git
a/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/IdStringifier.java
b/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/IdStringifier.java
index ec82d17f005..7fb7b34c1ba 100644
---
a/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/IdStringifier.java
+++
b/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/IdStringifier.java
@@ -20,9 +20,6 @@
package org.apache.causeway.applib.services.bookmark;
-import org.apache.causeway.commons.internal.assertions._Assert;
-
-import lombok.Getter;
import org.jspecify.annotations.NonNull;
/**
@@ -44,7 +41,6 @@
*
* @since 2.0 {@index}
*/
-@SuppressWarnings("javadoc")
public interface IdStringifier<T> {
public final static char SEPARATOR = '_';
@@ -104,80 +100,4 @@ default T destring(final @NonNull Class<?>
targetEntityClass, final @NonNull Str
}
- /**
- * Provided for backward compatibility with some v1 Ids that used a prefix
to determine their actual type.
- * <p>
- * (In v2 we provide this so in the constructor, so there's no need to
encode the type in the stringified form
- * of the value).
- *
- * @param <T>
- *
- * @deprecated not used within the framework; eventually remove
- */
- @Deprecated
- abstract class AbstractWithPrefix<T> implements IdStringifier<T> {
-
- /**
- * eg <code>Integer.class</code>, or JDO-specific
<code>DatastoreId</code>,
- * or a custom class for application-defined PKs.
- */
- @Getter private final Class<T> correspondingClass;
-
- private final String prefix;
-
- public AbstractWithPrefix(
- final @NonNull Class<T> correspondingClass,
- final @NonNull String typeCode) {
- _Assert.assertFalse(correspondingClass.isPrimitive(),
- ()->String.format("not allowed to be initialzed with a
primitive class (%s), "
- + "use the boxed variant instead",
- correspondingClass));
- this.correspondingClass = correspondingClass;
- this.prefix = typeCode + SEPARATOR;
- }
-
- @Override
- public final String enstring(final @NonNull T value) {
- return prefix + doEnstring(value);
- }
-
- /**
- * Overridable hook
- */
- protected String doEnstring(final T value) {
- return value.toString();
- }
-
- @Override
- public final T destring(
- final @NonNull Class<?> targetEntityClass,
- final @NonNull String stringified) {
- var suffix = removePrefix(stringified);
- return doDestring(suffix, targetEntityClass);
- }
-
- /**
- * Mandatory hook
- */
- protected abstract T doDestring(
- final @NonNull String idStr,
- final @NonNull Class<?> targetEntityClass);
-
- private String removePrefix(final String str) {
- if (str.startsWith(prefix)) {
- return str.substring(prefix.length());
- }
- throw new IllegalArgumentException(
- String.format("expected id to start with '%s', but got
'%s'", prefix, str));
- }
-
- /**
- * Not API
- */
- public boolean recognizes(final String stringified) {
- return stringified.startsWith(prefix);
- }
-
- }
-
}
diff --git
a/api/applib/src/main/java/org/apache/causeway/applib/services/email/EmailService.java
b/api/applib/src/main/java/org/apache/causeway/applib/services/email/EmailService.java
index 87e37f39aff..1a1810be8e0 100644
---
a/api/applib/src/main/java/org/apache/causeway/applib/services/email/EmailService.java
+++
b/api/applib/src/main/java/org/apache/causeway/applib/services/email/EmailService.java
@@ -18,14 +18,11 @@
*/
package org.apache.causeway.applib.services.email;
-import java.io.Serializable;
import java.util.List;
import jakarta.activation.DataSource;
-import jakarta.annotation.PostConstruct;
/**
- *
* The `EmailService` provides the ability to send HTML emails, with
* attachments, to one or more recipients.
*
@@ -36,10 +33,7 @@
*
* @since 1.x {@index}
*/
-public interface EmailService extends Serializable {
-
- @PostConstruct
- public void init() ;
+public interface EmailService {
/**
* The main API to send the email (and optional attachments).
diff --git
a/api/applib/src/main/java/org/apache/causeway/applib/services/wrapper/events/ParseValueEvent.java
b/api/applib/src/main/java/org/apache/causeway/applib/services/wrapper/events/ParseValueEvent.java
deleted file mode 100644
index 25b6007432b..00000000000
---
a/api/applib/src/main/java/org/apache/causeway/applib/services/wrapper/events/ParseValueEvent.java
+++ /dev/null
@@ -1,62 +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.causeway.applib.services.wrapper.events;
-
-import org.apache.causeway.applib.Identifier;
-import org.apache.causeway.applib.services.wrapper.WrapperFactory;
-
-/**
- * Supported only by {@link WrapperFactory},
- * represents a check as to whether the proposed values of the value type is
valid.
- * <p>
- * If {@link #getReason()} is not <tt>null</tt> then provides the reason why
the
- * proposed value is invalid, otherwise the new value is acceptable.
- *
- * @since 1.x {@index}
- */
-@Deprecated // not used
-public class ParseValueEvent extends ValidityEvent {
-
- private static Object coalesce(final Object source, final String proposed)
{
- return source != null ? source : proposed;
- }
-
- private final String proposed;
-
- public ParseValueEvent(final Object source, final Identifier
classIdentifier, final String proposed) {
- super(coalesce(source, proposed), classIdentifier);
- this.proposed = proposed;
- }
-
- /**
- * Will be the source provided in the
- * {@link #ParseValueEvent(Object, Identifier, String) constructor} if not
- * null, otherwise will fallback to the proposed value.
- */
- @Override
- public Object getSource() {
- return super.getSource();
- }
-
- @Override
- public String getProposed() {
- return proposed;
- }
-
-}
diff --git
a/commons/src/main/java/org/apache/causeway/commons/internal/exceptions/_Exceptions.java
b/commons/src/main/java/org/apache/causeway/commons/internal/exceptions/_Exceptions.java
index 7ee17ae6dc7..1aac4c6a198 100644
---
a/commons/src/main/java/org/apache/causeway/commons/internal/exceptions/_Exceptions.java
+++
b/commons/src/main/java/org/apache/causeway/commons/internal/exceptions/_Exceptions.java
@@ -254,52 +254,6 @@ public static void throwUnexpectedCodeReach() {
throw unexpectedCodeReach();
}
- /**
- * Used to hide from the compiler the fact, that this call always throws.
- *
- * <pre>{
- * throw notImplemented();
- * return 0; // won't compile: unreachable code
- *}</pre>
- *
- * hence ...
- *
- * <pre>{
- * throwNotImplemented();
- * return 0;
- *}</pre>
- *
- */
- @Deprecated
- public static void throwNotImplemented() {
- dumpStackTrace();
- throw notImplemented();
- }
-
- // -- SELECTIVE ERROR SUPPRESSION
-
- // /**
- // * Allows to selectively ignore unchecked exceptions. Most likely used
framework internally
- // * for workarounds, not properly dealing with the root cause. This way
at least we know, where
- // * we placed such workarounds.
- // *
- // * @param runnable that might throw an unchecked exception
- // * @param suppress predicate that decides whether to suppress an
exception
- // */
- // public static void catchSilently(
- // Runnable runnable,
- // Predicate<RuntimeException> suppress) {
- //
- // try {
- // runnable.run();
- // } catch (RuntimeException cause) {
- // if(suppress.test(cause)) {
- // return;
- // }
- // throw cause;
- // }
- // }
-
// -- SELECTIVE THROW
public static <E extends Exception> void throwWhenTrue(final E cause,
final Predicate<E> test) throws E {
diff --git
a/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
b/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
index de9f58f0161..bea650d6512 100644
---
a/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
+++
b/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
@@ -63,7 +63,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
-import
org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
import org.springframework.boot.info.BuildProperties;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.EnumerablePropertySource;
@@ -1847,51 +1846,15 @@ public static class Runtime {
public static class RuntimeServices {
private final Email email = new Email();
+ /**
+ * Mail specific configuration in addition to Spring's
<code>spring.mail.*</code>.
+ * See also spring.mail.port,
spring.mail.properties.mail.smtp.connectiontimeout,
+ * spring.mail.properties.mail.smtp.timeout, spring.mail.host,
spring.mail.username,
+ * spring.mail.password,
spring.mail.javamail.properties.mail.smtp.starttls.enable
+ */
@Data
public static class Email {
- @Deprecated
- private int port = 587;
-
- /**
- * The port to use for sending email.
- *
- * @deprecated - ignored, instead use
<code>spring.mail.port</code>
- */
- @Deprecated
- @DeprecatedConfigurationProperty(replacement =
"spring.mail.port")
- public int getPort() {
- return port;
- }
-
- @Deprecated
- private int socketConnectionTimeout = 2000;
-
- /**
- * The maximum number of millseconds to wait to obtain a
socket connection before timing out.
- *
- * @deprecated - ignored, instead use
<code>spring.mail.properties.mail.smtp.connectiontimeout</code>
- */
- @Deprecated
- @DeprecatedConfigurationProperty(replacement =
"spring.mail.properties.mail.smtp.connectiontimeout")
- public int getSocketConnectionTimeout() {
- return socketConnectionTimeout;
- }
-
- @Deprecated
- private int socketTimeout = 2000;
-
- /**
- * The maximum number of milliseconds to wait to obtain a
socket before timing out.
- *
- * @deprecated - ignored, instead use
<code>spring.mail.properties.mail.smtp.timeout</code>
- */
- @Deprecated
- @DeprecatedConfigurationProperty(replacement =
"spring.mail.properties.mail.smtp.timeout")
- public int getSocketTimeout() {
- return socketTimeout;
- }
-
/**
* If an email fails to send, whether to propagate the
exception (meaning that potentially the end-user
* might see the exception), or whether instead to just
indicate failure through the return value of
@@ -1927,63 +1890,6 @@ public static class Override {
@Data
public static class Sender {
- @Deprecated
- private String hostname;
-
- /**
- * Specifies the host running the SMTP service.
- *
- * <p>
- * If not specified, then the value used depends upon
the email implementation. The default
- * implementation will use the
<code>mail.smtp.host</code> system property.
- * </p>
- *
- * @deprecated - now ignored, instead use
<code>spring.mail.host</code>
- */
- @Deprecated
- @DeprecatedConfigurationProperty(replacement =
"spring.mail.host")
- public String getHostname() {
- return hostname;
- }
-
- @Deprecated
- private String username;
-
- /**
- * Specifies the username to use to connect to the SMTP
service.
- *
- * <p>
- * If not specified, then the sender's {@link
#getAddress() email address} will be used instead.
- * </p>
- *
- * @deprecated - now ignored, instead use
<code>spring.mail.username</code>
- */
- @Deprecated
- @DeprecatedConfigurationProperty(replacement =
"spring.mail.username")
- public String getUsername() {
- return username;
- }
-
- @Deprecated
- private String password;
-
- /**
- * Specifies the password (corresponding to the {@link
#getUsername() username} to connect to the
- * SMTP service.
- *
- * <p>
- * This configuration property is mandatory (for the
default implementation of the
- * {@link
org.apache.causeway.applib.services.email.EmailService}, at least).
- * </p>
- *
- * @deprecated - now ignored, instead use
<code>spring.mail.password</code>
- */
- @Deprecated
- @DeprecatedConfigurationProperty(replacement =
"spring.mail.password")
- public String getPassword() {
- return password;
- }
-
/**
* Specifies the email address of the user sending the
email.
*
@@ -2001,25 +1907,6 @@ public String getPassword() {
private String address;
}
- @Deprecated
- private final Tls tls = new Tls();
- @Deprecated
- @Data
- public static class Tls {
- @Deprecated
- private boolean enabled = true;
-
- /**
- * Whether TLS encryption should be started (that is,
<code>STARTTLS</code>).
- *
- * @deprecated - now ignored, instead use
<code>spring.mail.javamail.properties.mail.smtp.starttls.enable</code>
- */
- @Deprecated
- @DeprecatedConfigurationProperty(replacement =
"spring.mail.javamail.properties.mail.smtp.starttls.enable")
- public boolean isEnabled() {
- return enabled;
- }
- }
}
private final ApplicationFeatures applicationFeatures = new
ApplicationFeatures();
@@ -2034,27 +1921,6 @@ public static class ApplicationFeatures {
ApplicationFeaturesInitConfiguration init =
ApplicationFeaturesInitConfiguration.NOT_SPECIFIED;
}
- private final RepositoryService repositoryService = new
RepositoryService();
- @Data
- public static class RepositoryService {
- private boolean disableAutoFlush = false;
-
- /**
- * Normally any queries are automatically preceded by flushing
pending executions.
- *
- * <p>
- * This key allows this behaviour to be disabled.
- * </p>
- *
- * @deprecated - use instead
<code>causeway.persistence.commons.repository-service.disable-auto-flush</code>
- */
- @Deprecated
- @DeprecatedConfigurationProperty(replacement =
"causeway.persistence.commons.repository-service.disable-auto-flush")
- public boolean isDisableAutoFlush() {
- return disableAutoFlush;
- }
- }
-
private final ExceptionRecognizer exceptionRecognizer = new
ExceptionRecognizer();
@Data
public static class ExceptionRecognizer {
@@ -3584,23 +3450,6 @@ public static class BigDecimal {
*/
private boolean useScaleForMinFractionalFacet = true;
- /**
- * The minimum scale to use for all {@link java.math.BigDecimal}s.
- *
- * <p>
- * Is only used if the minimum scale has not been specified
explicitly by some other means, typically
- * either {@link Digits#fraction()} or an ORM semantic such as the
(JPA) {@link Column#scale()}.
- *
- * @deprecated - use {@link Display#getMinScale()} instead
- */
- @Deprecated(since = "2.2.0")
- private Integer minScale = null;
-
- @DeprecatedConfigurationProperty(replacement =
"causeway.value-types.big-decimal.display.min-scale", reason = "Moved")
- public Integer getMinScale() {
- return minScale;
- }
-
private final Editing editing = new Editing();
@Data
public static class Editing {
@@ -3661,40 +3510,6 @@ public static class Display {
private boolean useGroupingSeparator = true;
}
- /**
- * A common use of {@link java.math.BigDecimal} is as a money
value. In some locales (eg English), the
- * "," (comma) is the grouping (thousands) separator
wihle the "." (period) acts as a
- * decimal point, but in others (eg France, Italy) it is the other
way around.
- *
- * <p>
- * Surprisingly perhaps, a string such as "123,99", when
parsed ((by {@link java.text.DecimalFormat})
- * in an English locale, is not rejected but instead is
evaluated as the value 12399L. That's almost
- * certainly not what the end-user would have expected, and
results in a money value 100x too large.
- * </p>
- *
- * <p>
- * The purpose of this configuration property is to remove the
confusion by simply disallowing the
- * thousands separator from being part of the input string.
- * </p>
- *
- * <p>
- * For maximum safety, allowing the grouping separator is
disallowed, but the alternate (original)
- * behaviour can be reinstated by setting this config property
back to <code>true</code>.
- * </p>
- *
- * <p>
- * The same configuration property is also used for rendering
the value.
- * </p>
- *
- * @deprecated - use {@link Editing#isUseGroupingSeparator()}
instead.
- */
- @Deprecated(since = "2.2.0")
- private boolean useGroupingSeparator = false;
-
- @DeprecatedConfigurationProperty(replacement =
"causeway.value-types.big-decimal.editing.use-grouping-separator")
- public boolean isUseGroupingSeparator() {
- return useGroupingSeparator;
- }
}
private final Kroki kroki = new Kroki();
diff --git
a/core/config/src/main/java/org/apache/causeway/core/config/CausewayModuleCoreConfig.java
b/core/config/src/main/java/org/apache/causeway/core/config/CausewayModuleCoreConfig.java
index 77cded292af..2cfc7dbedb9 100644
---
a/core/config/src/main/java/org/apache/causeway/core/config/CausewayModuleCoreConfig.java
+++
b/core/config/src/main/java/org/apache/causeway/core/config/CausewayModuleCoreConfig.java
@@ -18,10 +18,13 @@
*/
package org.apache.causeway.core.config;
+import org.springframework.beans.factory.annotation.Value;
import
org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.apache.causeway.commons.internal.base._Strings;
import org.apache.causeway.core.config.applib.RestfulPathProvider;
import org.apache.causeway.core.config.beans.CausewayBeanFactoryPostProcessor;
import org.apache.causeway.core.config.converters.PatternsConverter;
@@ -62,4 +65,36 @@ public class CausewayModuleCoreConfig {
public static final String NAMESPACE = "causeway.config";
+ @Bean
+ public EmailConfiguration emailConfiguration(
+ CausewayConfiguration conf,
+ @Value("#{systemProperties['spring.mail.username']}") String
senderEmailUsername,
+ @Value("#{systemProperties['spring.mail.password']}") String
senderEmailPassword,
+ @Value("#{systemProperties['spring.mail.host']}") String
senderEmailHostName,
+ @Value("#{systemProperties['spring.mail.port']}") Integer
senderEmailPort,
+
@Value("#{systemProperties['spring.mail.javamail.properties.mail.smtp.starttls.enable']}")
Boolean senderEmailTlsEnabled,
+
@Value("#{systemProperties['spring.mail.properties.mail.smtp.timeout']}")
Integer smtpTimeout,
+
@Value("#{systemProperties['spring.mail.properties.mail.smtp.connectiontimeout']}")
Integer smtpConnectionTimeout) {
+
+
+ var emailConfiguration =
conf.getCore().getRuntimeServices().getEmail();
+
+ String senderUsername = _Strings.emptyToNull(senderEmailUsername);
+ String senderPassword = _Strings.emptyToNull(senderEmailPassword);
+ String senderHostName = _Strings.emptyToNull(senderEmailHostName);
+ int senderPort = senderEmailPort!=null ? senderEmailPort : 587;
+ boolean isSenderTlsEnabled = senderEmailTlsEnabled!=null ?
senderEmailTlsEnabled : true;
+ int socketTimeout = smtpTimeout!=null ? smtpTimeout : 2000;
+ int socketConnectionTimeout = smtpConnectionTimeout!=null ?
smtpConnectionTimeout : 2000;
+ boolean isThrowExceptionOnFail =
emailConfiguration.isThrowExceptionOnFail();
+ String senderAddress = emailConfiguration.getSender().getAddress();
+ String overrideTo = emailConfiguration.getOverride().getTo();
+ String overrideCc = emailConfiguration.getOverride().getCc();
+ String overrideBcc = emailConfiguration.getOverride().getBcc();
+
+ return new EmailConfiguration(senderUsername, senderPassword,
senderHostName, senderPort,
+ isSenderTlsEnabled, socketTimeout, socketConnectionTimeout,
+ isThrowExceptionOnFail, senderAddress, overrideTo, overrideCc,
overrideBcc);
+ }
+
}
diff --git
a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/basic/BasicCreds.java
b/core/config/src/main/java/org/apache/causeway/core/config/EmailConfiguration.java
similarity index 67%
copy from
viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/basic/BasicCreds.java
copy to
core/config/src/main/java/org/apache/causeway/core/config/EmailConfiguration.java
index 9efa49e4fb4..6774f9f2331 100644
---
a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/basic/BasicCreds.java
+++
b/core/config/src/main/java/org/apache/causeway/core/config/EmailConfiguration.java
@@ -16,15 +16,19 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.viewer.restfulobjects.client.auth.basic;
+package org.apache.causeway.core.config;
-import lombok.Builder;
-
-@Builder
-public record BasicCreds(
- String username,
- String password) {
-
- @Deprecated public String getUsername() { return username(); }
- @Deprecated public String getPassword() { return password(); }
+public record EmailConfiguration(
+ String senderUsername,
+ String senderPassword,
+ String senderHostName,
+ int senderPort,
+ boolean isSenderTlsEnabled,
+ int socketTimeout,
+ int socketConnectionTimeout,
+ boolean isThrowExceptionOnFail,
+ String senderAddress,
+ String overrideTo,
+ String overrideCc,
+ String overrideBcc) {
}
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/ManagedObject.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/ManagedObject.java
index b52b51d71ed..d51f16d4975 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/ManagedObject.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/ManagedObject.java
@@ -352,8 +352,6 @@ <T> T assertCompliance(
*/
Specialization specialization();
- @Deprecated default Specialization getSpecialization() { return
specialization(); }
-
@Override default Specialization.BookmarkPolicy getBookmarkPolicy() {
return specialization().getBookmarkPolicy();
}
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/spec/HasObjectSpecification.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/spec/HasObjectSpecification.java
index d4939f3c4f4..0e64e4d5f5f 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/spec/HasObjectSpecification.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/spec/HasObjectSpecification.java
@@ -30,8 +30,6 @@
*/
public interface HasObjectSpecification {
- @Deprecated default ObjectSpecification getSpecification() { return
objSpec(); }
-
ObjectSpecification objSpec();
// -- SHORTCUTS
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
index 6e9b17db5d7..d42cff650f4 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
@@ -137,7 +137,7 @@ public BigDecimal parseTextRepresentation(final
ValueSemanticsProvider.Context c
}
private boolean isUseGroupingSeparatorFrom(final
CausewayConfiguration.ValueTypes.BigDecimal bigDecimalConfig) {
- return bigDecimalConfig.getEditing().isUseGroupingSeparator() ||
bigDecimalConfig.isUseGroupingSeparator();
+ return bigDecimalConfig.getEditing().isUseGroupingSeparator() ||
bigDecimalConfig.getDisplay().isUseGroupingSeparator();
}
@Override
@@ -185,7 +185,7 @@ protected void configureDecimalFormat(
private static Optional<Integer> minScaleFrom(final
CausewayConfiguration.ValueTypes.BigDecimal bigDecimalConfig) {
return Optional.ofNullable(bigDecimalConfig.getDisplay().getMinScale())
- .or(() ->
Optional.ofNullable(bigDecimalConfig.getMinScale()));
+ .or(() ->
Optional.ofNullable(bigDecimalConfig.getDisplay().getMinScale()));
}
@Override
diff --git
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
index c47f43d0f7e..4e97d6a2ad1 100644
---
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
+++
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
@@ -109,7 +109,7 @@ void titleOf() {
@Test
void titleOfWhenUseGroupingSeparator() {
-
causewayConfiguration.getValueTypes().getBigDecimal().setUseGroupingSeparator(true);
+
causewayConfiguration.getValueTypes().getBigDecimal().getDisplay().setUseGroupingSeparator(true);
assertEquals("34,132.199", value.titlePresentation(null, bigDecimal));
}
diff --git
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemanticsProvider_configureDecimalFormat_Test.java
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemanticsProvider_configureDecimalFormat_Test.java
index 86a1b5d95db..bb8ec84542b 100644
---
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemanticsProvider_configureDecimalFormat_Test.java
+++
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemanticsProvider_configureDecimalFormat_Test.java
@@ -58,7 +58,7 @@ void setUpObjects() throws Exception {
context = new ValueSemanticsProvider.Context(mockIdentifier, null);
causewayConfiguration = CausewayConfiguration.builder().build();
-
causewayConfiguration.getValueTypes().getBigDecimal().setMinScale(null);
+
causewayConfiguration.getValueTypes().getBigDecimal().getDisplay().setMinScale(null);
// expecting
Mockito.lenient().when(mockSpecificationLoader.loadFeature(mockIdentifier)).thenReturn(Optional.of(mockObjectFeature));
@@ -101,7 +101,7 @@ void min_facets_not_set_but_fallback() {
Mockito.lenient().when(mockObjectFeature.lookupFacet(MinFractionalDigitsFacet.class))
.thenReturn(Optional.empty());
-
causewayConfiguration.getValueTypes().getBigDecimal().setMinScale(fallbackScale);
+
causewayConfiguration.getValueTypes().getBigDecimal().getDisplay().setMinScale(fallbackScale);
// when
DecimalFormat format = new DecimalFormat();
@@ -124,7 +124,7 @@ void min_facets_not_set_and_no_fallback() {
Mockito.lenient().when(mockObjectFeature.lookupFacet(MinFractionalDigitsFacet.class))
.thenReturn(Optional.empty());
-
causewayConfiguration.getValueTypes().getBigDecimal().setMinScale(null);
+
causewayConfiguration.getValueTypes().getBigDecimal().getDisplay().setMinScale(null);
// when
DecimalFormat format = new DecimalFormat();
diff --git
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
index 26a96b1db13..2ec2bbaff05 100644
---
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
+++
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
@@ -18,8 +18,6 @@
*/
package org.apache.causeway.core.runtimeservices;
-import jakarta.inject.Singleton;
-
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@@ -136,7 +134,7 @@ public class CausewayModuleCoreRuntimeServices {
public static final String NAMESPACE = "causeway.runtimeservices";
- @Bean @Singleton // also used by _Spring utility
+ @Bean // also used by _Spring utility
public OrderComparator orderComparator() {
return new AnnotationAwareOrderComparator();
}
diff --git
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/email/EmailServiceDefault.java
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/email/EmailServiceDefault.java
index 4a6b70e9d56..25c332c60c5 100644
---
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/email/EmailServiceDefault.java
+++
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/email/EmailServiceDefault.java
@@ -22,7 +22,6 @@
import java.util.List;
import jakarta.activation.DataSource;
-import jakarta.annotation.PostConstruct;
import jakarta.annotation.Priority;
import jakarta.inject.Inject;
import jakarta.inject.Named;
@@ -33,13 +32,17 @@
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
import org.apache.causeway.applib.annotation.PriorityPrecedence;
import org.apache.causeway.applib.services.email.EmailService;
import org.apache.causeway.commons.internal.base._Strings;
-import org.apache.causeway.core.config.CausewayConfiguration;
+import org.apache.causeway.core.config.EmailConfiguration;
import
org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
+import lombok.Getter;
+import lombok.SneakyThrows;
+import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
/**
@@ -60,97 +63,26 @@
@Slf4j
public class EmailServiceDefault implements EmailService {
- private static final long serialVersionUID = 1L;
- public static class EmailServiceException extends RuntimeException {
- static final long serialVersionUID = 1L;
- public EmailServiceException(final Exception cause) {
- super(cause);
- }
- }
-
- @Inject private CausewayConfiguration configuration;
-
- @Inject private Provider<JavaMailSender> emailSenderProvider;
-
- // -- INIT
-
- private boolean initialized;
-
- /**
- * Loads responsive email templates borrowed from
http://zurb.com/ink/templates.php (Basic)
- */
- @Override
- @PostConstruct
- public void init() {
-
- if (initialized) {
- return;
- }
-
- initialized = true;
-
- if (!isConfigured()) {
- log.warn("NOT configured");
- } else {
- log.debug("configured");
- }
- }
-
- protected String getSenderEmailUsername() {
- return
configuration.getCore().getRuntimeServices().getEmail().getSender().getUsername();
- }
-
- protected String getSenderEmailAddress() {
- return
configuration.getCore().getRuntimeServices().getEmail().getSender().getAddress();
- }
-
- protected String getSenderEmailPassword() {
- return
configuration.getCore().getRuntimeServices().getEmail().getSender().getPassword();
- }
-
- protected String getSenderEmailHostName() {
- return
configuration.getCore().getRuntimeServices().getEmail().getSender().getHostname();
- }
-
- protected Integer getSenderEmailPort() {
- return
configuration.getCore().getRuntimeServices().getEmail().getPort();
- }
+ @Getter private final EmailConfiguration configuration;
+ private final Provider<JavaMailSender> emailSenderProvider;
- protected Boolean getSenderEmailTlsEnabled() {
- return
configuration.getCore().getRuntimeServices().getEmail().getTls().isEnabled();
- }
+ @Getter(onMethod_={@Override}) @Accessors(fluent=true)
+ private final boolean isConfigured;
- protected boolean isThrowExceptionOnFail() {
- return
configuration.getCore().getRuntimeServices().getEmail().isThrowExceptionOnFail();
- }
+ @Inject
+ public EmailServiceDefault(
+ EmailConfiguration configuration,
+ Provider<JavaMailSender> emailSenderProvider) {
- protected int getSocketTimeout() {
- return
configuration.getCore().getRuntimeServices().getEmail().getSocketTimeout();
- }
-
- protected int getSocketConnectionTimeout() {
- return
configuration.getCore().getRuntimeServices().getEmail().getSocketConnectionTimeout();
- }
+ this.configuration = configuration;
+ this.emailSenderProvider = emailSenderProvider;
- protected String getEmailOverrideTo() {
- return
configuration.getCore().getRuntimeServices().getEmail().getOverride().getTo();
- }
-
- protected String getEmailOverrideCc() {
- return
configuration.getCore().getRuntimeServices().getEmail().getOverride().getCc();
- }
-
- protected String getEmailOverrideBcc() {
- return
configuration.getCore().getRuntimeServices().getEmail().getOverride().getBcc();
- }
-
- @Override
- public boolean isConfigured() {
- final String senderEmailAddress = getSenderEmailAddress();
- final String senderEmailPassword = getSenderEmailPassword();
- return !_Strings.isNullOrEmpty(senderEmailAddress) &&
!_Strings.isNullOrEmpty(senderEmailPassword);
+ this.isConfigured =
StringUtils.hasLength(configuration.senderAddress())
+ && StringUtils.hasLength(configuration.senderPassword());
+ if (!isConfigured()) log.warn("NOT configured");
}
+ @SneakyThrows
@Override
public boolean send(
final List<String> toList,
@@ -161,13 +93,12 @@ public boolean send(
final DataSource... attachments) {
try {
-
var javaMailSender = emailSenderProvider.get();
var email = javaMailSender.createMimeMessage();
var emailHelper = new MimeMessageHelper(email, true);
- emailHelper.setFrom(getSenderEmailAddress());
+ emailHelper.setFrom(configuration.senderAddress());
emailHelper.setSubject(subject);
boolean html = true;
@@ -179,9 +110,9 @@ public boolean send(
}
}
- final String overrideToList = getEmailOverrideTo();
- final String overrideCc = getEmailOverrideCc();
- final String overrideBcc = getEmailOverrideBcc();
+ final String overrideToList = configuration.overrideTo();
+ final String overrideCc = configuration.overrideCc();
+ final String overrideBcc = configuration.overrideBcc();
final String[] toListElseOverride =
originalUnlessOverridden(toList, overrideToList);
if (notEmpty(toListElseOverride)) {
@@ -200,10 +131,7 @@ public boolean send(
} catch (MessagingException e) {
log.error("An error occurred while trying to send an email", e);
- final Boolean throwExceptionOnFail = isThrowExceptionOnFail();
- if (throwExceptionOnFail) {
- throw new EmailServiceException(e);
- }
+ if (configuration.isThrowExceptionOnFail()) throw e;
return false;
}
diff --git
a/extensions/core/executionoutbox/restclient/src/main/java/org/apache/causeway/extensions/executionoutbox/restclient/api/delete/DeleteMessage.java
b/extensions/core/executionoutbox/restclient/src/main/java/org/apache/causeway/extensions/executionoutbox/restclient/api/delete/DeleteMessage.java
index 90eb1143985..31a2510030e 100644
---
a/extensions/core/executionoutbox/restclient/src/main/java/org/apache/causeway/extensions/executionoutbox/restclient/api/delete/DeleteMessage.java
+++
b/extensions/core/executionoutbox/restclient/src/main/java/org/apache/causeway/extensions/executionoutbox/restclient/api/delete/DeleteMessage.java
@@ -23,8 +23,6 @@ public record DeleteMessage(
StringValue interactionId,
IntValue sequence) {
- @Deprecated public StringValue getInteractionId() { return
interactionId(); }
- @Deprecated public IntValue getSequence() { return sequence(); }
public DeleteMessage(final String interactionId, final int sequence) {
this(new StringValue(interactionId), new IntValue(sequence));
diff --git
a/extensions/core/executionoutbox/restclient/src/main/java/org/apache/causeway/extensions/executionoutbox/restclient/api/deleteMany/DeleteManyMessage.java
b/extensions/core/executionoutbox/restclient/src/main/java/org/apache/causeway/extensions/executionoutbox/restclient/api/deleteMany/DeleteManyMessage.java
index 9c03f3ff923..380d7735050 100644
---
a/extensions/core/executionoutbox/restclient/src/main/java/org/apache/causeway/extensions/executionoutbox/restclient/api/deleteMany/DeleteManyMessage.java
+++
b/extensions/core/executionoutbox/restclient/src/main/java/org/apache/causeway/extensions/executionoutbox/restclient/api/deleteMany/DeleteManyMessage.java
@@ -22,8 +22,6 @@
public record DeleteManyMessage(StringValue interactionsDtoXml) {
- @Deprecated public StringValue getInteractionsDtoXml() { return
interactionsDtoXml(); }
-
public DeleteManyMessage(final String interactionsDtoXml) {
this(new StringValue(interactionsDtoXml));
}
diff --git
a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/events/UserCreatedEvent.java
b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/events/UserCreatedEvent.java
index eadb3dd1c4b..ec537d51041 100644
---
a/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/events/UserCreatedEvent.java
+++
b/extensions/security/secman/applib/src/main/java/org/apache/causeway/extensions/secman/applib/user/events/UserCreatedEvent.java
@@ -44,11 +44,6 @@
*/
public record UserCreatedEvent(@NonNull ApplicationUser user) {
- /**
- * @deprecated use {@link #user()} instead
- */
- @Deprecated public ApplicationUser getUser() { return user(); }
-
// -- SHORTCUTS
public AccountType getAccountType() {
diff --git
a/extensions/vw/fullcalendar/wicket/integration/src/main/java/org/apache/causeway/extensions/fullcalendar/wkt/integration/fc/res/FullCalendarCssReference.java
b/extensions/vw/fullcalendar/wicket/integration/src/main/java/org/apache/causeway/extensions/fullcalendar/wkt/integration/fc/res/FullCalendarCssReference.java
deleted file mode 100644
index 61e7a9fb3b1..00000000000
---
a/extensions/vw/fullcalendar/wicket/integration/src/main/java/org/apache/causeway/extensions/fullcalendar/wkt/integration/fc/res/FullCalendarCssReference.java
+++ /dev/null
@@ -1,50 +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.causeway.extensions.fullcalendar.wkt.integration.fc.res;
-
-import org.apache.wicket.markup.head.CssHeaderItem;
-import org.apache.wicket.markup.head.HeaderItem;
-
-import lombok.Getter;
-import lombok.experimental.Accessors;
-
-import
de.agilecoders.wicket.webjars.request.resource.WebjarsCssResourceReference;
-
-@Deprecated // no longer available since fullcalendar 6.x
-public class FullCalendarCssReference
-extends WebjarsCssResourceReference {
-
- private static final long serialVersionUID = 1L;
-
- @Getter(lazy = true) @Accessors(fluent = true)
- private static final FullCalendarCssReference instance =
- new FullCalendarCssReference();
-
- private FullCalendarCssReference() {
- super("fullcalendar/6.1.10/index.global.min.css");
- }
-
- /**
- * @return this resource reference singleton instance as header item
- */
- public static HeaderItem asHeaderItem() {
- return CssHeaderItem.forReference(instance());
- }
-
-}
diff --git
a/extensions/vw/sse/applib/src/main/java/org/apache/causeway/extensions/sse/applib/service/SseChannel.java
b/extensions/vw/sse/applib/src/main/java/org/apache/causeway/extensions/sse/applib/service/SseChannel.java
index e1bc017ae39..9337f62ef94 100644
---
a/extensions/vw/sse/applib/src/main/java/org/apache/causeway/extensions/sse/applib/service/SseChannel.java
+++
b/extensions/vw/sse/applib/src/main/java/org/apache/causeway/extensions/sse/applib/service/SseChannel.java
@@ -35,9 +35,6 @@ public interface SseChannel {
UUID uuid();
Class<?> sourceType();
- @Deprecated default UUID getId() { return uuid(); }
- @Deprecated default Class<?> getSourceType() { return sourceType(); }
-
void listenWhile(Predicate<SseSource> listener);
void fire(SseSource source);
diff --git
a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/services/SseServiceDefault.java
b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/services/SseServiceDefault.java
index 4a0755b3470..44beb7c1257 100644
---
a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/services/SseServiceDefault.java
+++
b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/services/SseServiceDefault.java
@@ -114,7 +114,7 @@ private void run(final SseSource task) {
var eventStreamLifecycle =
eventStreamPool.acquireLifecycleForType(sourceType);
var eventStream = eventStreamLifecycle.getEventStream();
- log.debug("submitting task type='{}' -> stream='{}'", sourceType,
eventStream.getId());
+ log.debug("submitting task type='{}' -> stream='{}'", sourceType,
eventStream.uuid());
try {
@@ -174,7 +174,7 @@ public void release() {
synchronized ($LOCK) {
remaining = --runningTasksCounter;
if(remaining<1) {
-
eventStreamPool.eventStreamsByType.remove(eventStream.getSourceType());
+
eventStreamPool.eventStreamsByType.remove(eventStream.sourceType());
}
}
diff --git
a/persistence/commons/src/main/java/org/apache/causeway/persistence/commons/integration/repository/RepositoryServiceDefault.java
b/persistence/commons/src/main/java/org/apache/causeway/persistence/commons/integration/repository/RepositoryServiceDefault.java
index cc3a21ca011..c9a410ef820 100644
---
a/persistence/commons/src/main/java/org/apache/causeway/persistence/commons/integration/repository/RepositoryServiceDefault.java
+++
b/persistence/commons/src/main/java/org/apache/causeway/persistence/commons/integration/repository/RepositoryServiceDefault.java
@@ -93,8 +93,7 @@ public class RepositoryServiceDefault
@PostConstruct
public void init() {
var disableAutoFlush =
-
causewayConfiguration.getPersistence().getCommons().getRepositoryService().isDisableAutoFlush()
||
-
causewayConfiguration.getCore().getRuntimeServices().getRepositoryService().isDisableAutoFlush();
+
causewayConfiguration.getPersistence().getCommons().getRepositoryService().isDisableAutoFlush();
this.autoFlush = !disableAutoFlush;
}
diff --git
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/_Util.java
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/_Util.java
index 4f506f6ad74..74af28b4d17 100644
---
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/_Util.java
+++
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/_Util.java
@@ -69,50 +69,42 @@ public Class<T> getJavaClass() {
@Override
public Type getBaseType() {
- _Exceptions.throwNotImplemented();
- return null;
+ throw _Exceptions.notImplemented();
}
@Override
public Set<Type> getTypeClosure() {
- _Exceptions.throwNotImplemented();
- return null;
+ throw _Exceptions.notImplemented();
}
@Override
public <X extends Annotation> X getAnnotation(final Class<X>
annotationType) {
- _Exceptions.throwNotImplemented();
- return null;
+ throw _Exceptions.notImplemented();
}
@Override
public Set<Annotation> getAnnotations() {
- _Exceptions.throwNotImplemented();
- return null;
+ throw _Exceptions.notImplemented();
}
@Override
public boolean isAnnotationPresent(final Class<? extends
Annotation> annotationType) {
- _Exceptions.throwNotImplemented();
- return false;
+ throw _Exceptions.notImplemented();
}
@Override
public Set<AnnotatedConstructor<T>> getConstructors() {
- _Exceptions.throwNotImplemented();
- return null;
+ throw _Exceptions.notImplemented();
}
@Override
public Set<AnnotatedMethod<? super T>> getMethods() {
- _Exceptions.throwNotImplemented();
- return null;
+ throw _Exceptions.notImplemented();
}
@Override
public Set<AnnotatedField<? super T>> getFields() {
- _Exceptions.throwNotImplemented();
- return null;
+ throw _Exceptions.notImplemented();
}
};
}
diff --git
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/_JpaEntityStateUtil.java
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/_JpaEntityStateUtil.java
index 1131bc8b4f4..490b5800f14 100644
---
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/_JpaEntityStateUtil.java
+++
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/_JpaEntityStateUtil.java
@@ -88,49 +88,4 @@ EntityState getEntityState(
: EntityState.TRANSIENT_OR_REMOVED;
}
- @Deprecated
- EntityState getEntityStateLegacy(
- final EntityManager entityManager,
- final PersistenceUnitUtil persistenceUnitUtil,
- final Class<?> entityClass,
- final PrimaryKeyType<?> primaryKeyType,
- final Object pojo) {
- if (entityManager.contains(pojo)) {
- var primaryKey = persistenceUnitUtil.getIdentifier(pojo);
- if (primaryKey == null) {
- return EntityState.ATTACHED_NO_OID;
- }
- return EntityState.ATTACHED;
- }
-
- try {
- var primaryKey = persistenceUnitUtil.getIdentifier(pojo);
- if (primaryKey == null) {
- return EntityState.TRANSIENT_OR_REMOVED;
- } else {
- // detect shallow primary key
- //TODO this is a hack - see whether we can actually ask the
EntityManager to give us an accurate answer
- return primaryKeyType.isValid(primaryKey)
- ? EntityState.DETACHED
- : EntityState.TRANSIENT_OR_REMOVED;
- }
- } catch (PersistenceException ex) {
- /* horrible hack, but encountered NPEs if using a composite key
(eg CommandLogEntry)
- (this was without any weaving) */
- Throwable cause = ex.getCause();
- if (cause instanceof DescriptorException) {
- DescriptorException descriptorException =
(DescriptorException) cause;
- Throwable internalException =
descriptorException.getInternalException();
- if (internalException instanceof NullPointerException) {
- return EntityState.TRANSIENT_OR_REMOVED;
- }
- }
- if (cause instanceof NullPointerException) {
- // horrible hack, encountered if using composite key (eg
ExecutionLogEntry) with dynamic weaving
- return EntityState.TRANSIENT_OR_REMOVED;
- }
- throw ex;
- }
- }
-
}
diff --git
a/regressiontests/viewers-jpa/src/test/java/org/apache/causeway/testdomain/viewers/jpa/wkt/InteractionTestJpaWkt.java
b/regressiontests/viewers-jpa/src/test/java/org/apache/causeway/testdomain/viewers/jpa/wkt/InteractionTestJpaWkt.java
index 502f68a7331..90e642ed70a 100644
---
a/regressiontests/viewers-jpa/src/test/java/org/apache/causeway/testdomain/viewers/jpa/wkt/InteractionTestJpaWkt.java
+++
b/regressiontests/viewers-jpa/src/test/java/org/apache/causeway/testdomain/viewers/jpa/wkt/InteractionTestJpaWkt.java
@@ -208,7 +208,7 @@ void loadBookPage_Dune_then_change_Isbn() {
//System.err.printf("pageParameters %s%n", pageParameters);
- assertEquals(ManagedObject.Specialization.ENTITY,
bookAdapter.getSpecialization());
+ assertEquals(ManagedObject.Specialization.ENTITY,
bookAdapter.specialization());
assertTrue(bookAdapter.isBookmarkMemoized(), "bookAdapter should be
bookmarked");
// open Dune page
diff --git
a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/basic/BasicCreds.java
b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/basic/BasicCreds.java
index 9efa49e4fb4..9cfd6300389 100644
---
a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/basic/BasicCreds.java
+++
b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/basic/BasicCreds.java
@@ -24,7 +24,4 @@
public record BasicCreds(
String username,
String password) {
-
- @Deprecated public String getUsername() { return username(); }
- @Deprecated public String getPassword() { return password(); }
}
diff --git
a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/oauth2/Oauth2Creds.java
b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/oauth2/Oauth2Creds.java
index 11a9b3e8055..4297b48c737 100644
---
a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/oauth2/Oauth2Creds.java
+++
b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/auth/oauth2/Oauth2Creds.java
@@ -25,9 +25,4 @@ public record Oauth2Creds(
String tenantId,
String clientId,
String clientSecret) {
-
- @Deprecated public String getTenantId() { return tenantId(); }
- @Deprecated public String getClientId() { return clientId(); }
- @Deprecated public String getClientSecret() { return clientSecret(); }
-
}
diff --git
a/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/service/valuerender/_JsonValueConverters.java
b/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/service/valuerender/_JsonValueConverters.java
index d55b888e960..99f22fc89e9 100644
---
a/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/service/valuerender/_JsonValueConverters.java
+++
b/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/service/valuerender/_JsonValueConverters.java
@@ -51,12 +51,6 @@ enum DefaultFormat {
BIGINTEGER(BigInteger.class, "big-integer(18)", "javamathbiginteger"),
@Deprecated //should be covered 100% per {@link ValueSemanticsProvider}
BIGDECIMAL(BigDecimal.class, "big-decimal", "javamathbigdecimal"),
-// @Deprecated //should be covered 100% per {@link
ValueSemanticsProvider}
-// JODALOCALDATE(LocalDate.class, "date", "jodalocaldate"),
-// @Deprecated //should be covered 100% per {@link
ValueSemanticsProvider}
-// JODALOCALDATETIME(LocalDateTime.class, "date-time",
"jodalocaldatetime"),
-// @Deprecated //should be covered 100% per {@link
ValueSemanticsProvider}
-// JODADATETIME(DateTime.class, "date-time", "jodadatetime"),
@Deprecated //should be covered 100% per {@link ValueSemanticsProvider}
JAVAUTILDATE(java.util.Date.class, "date-time", "javautildate"),
@Deprecated //should be covered 100% per {@link ValueSemanticsProvider}
diff --git
a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/scalars/jdkmath/BigDecimalConverterTest.java
b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/scalars/jdkmath/BigDecimalConverterTest.java
index fa4b94b4485..04cdcfb7446 100644
---
a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/scalars/jdkmath/BigDecimalConverterTest.java
+++
b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/scalars/jdkmath/BigDecimalConverterTest.java
@@ -91,7 +91,8 @@ void scale2_italian() {
@Test
void scale2_english_withThousandSeparators_not_allowed() {
-
assertThat(converterTester.getConfigurationForBigDecimalValueType().isUseGroupingSeparator()).isFalse();
+
converterTester.getConfigurationForBigDecimalValueType().getDisplay().setUseGroupingSeparator(false);
+
assertThat(converterTester.getConfigurationForBigDecimalValueType().getDisplay().isUseGroupingSeparator()).isFalse();
converterTester.setScenario(Locale.ENGLISH,
newConverter(CustomerScale2.class));
converterTester.assertConversionFailure("789,123.45", "Invalid value
'789,123.45'; do not use the ',' grouping separator");
@@ -99,8 +100,8 @@ void scale2_english_withThousandSeparators_not_allowed() {
@Test
void scale2_english_withThousandSeparators_allowed() {
-
converterTester.getConfigurationForBigDecimalValueType().setUseGroupingSeparator(true);
-
assertThat(converterTester.getConfigurationForBigDecimalValueType().isUseGroupingSeparator()).isTrue();
+
converterTester.getConfigurationForBigDecimalValueType().getDisplay().setUseGroupingSeparator(true);
+
assertThat(converterTester.getConfigurationForBigDecimalValueType().getDisplay().isUseGroupingSeparator()).isTrue();
converterTester.setScenario(Locale.ENGLISH,
newConverter(CustomerScale2.class));
converterTester.assertRoundtrip(bd_789123_45_scale2, "789123.45");