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/causeway.git
The following commit(s) were added to refs/heads/master by this push:
new 15158b010d CAUSEWAY-3586: deduplicate code
15158b010d is described below
commit 15158b010dab2f4972c6390fbd328e1c19520380
Author: Andi Huber <[email protected]>
AuthorDate: Thu Sep 28 11:35:36 2023 +0200
CAUSEWAY-3586: deduplicate code
---
.../applib/services/bookmark/Bookmark.java | 6 +--
.../commons/internal/codec/_UrlDecoderUtil.java | 55 ----------------------
.../resources/DomainObjectResourceServerside.java | 6 +--
.../resources/DomainServiceResourceServerside.java | 6 +--
.../viewer/resources/ResourceAbstract.java | 4 +-
.../context/ResourceContext_getArg_Test.java | 6 +--
6 files changed, 14 insertions(+), 69 deletions(-)
diff --git
a/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/Bookmark.java
b/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/Bookmark.java
index 296c41931a..2447e6c0a7 100644
---
a/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/Bookmark.java
+++
b/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/Bookmark.java
@@ -31,8 +31,8 @@ import org.springframework.lang.Nullable;
import org.apache.causeway.applib.CausewayModuleApplib;
import org.apache.causeway.applib.id.LogicalType;
import org.apache.causeway.commons.internal.base._Strings;
-import org.apache.causeway.commons.internal.codec._UrlDecoderUtil;
import org.apache.causeway.commons.internal.exceptions._Exceptions;
+import org.apache.causeway.commons.io.UrlUtils;
import org.apache.causeway.schema.common.v2.OidDto;
import lombok.AccessLevel;
@@ -151,7 +151,7 @@ public final class Bookmark implements Oid {
public static Bookmark parseElseFail(final @Nullable String input) {
return parse(input)
- .orElseThrow(()->_Exceptions.illegalArgument("cannot parse
Bookmark %s", input));
+ .orElseThrow(()->_Exceptions.illegalArgument("cannot parse
Bookmark '%s'", input));
}
/**
@@ -160,7 +160,7 @@ public final class Bookmark implements Oid {
public static Optional<Bookmark> parseUrlEncoded(@Nullable final String
urlEncodedStr) {
return _Strings.isEmpty(urlEncodedStr)
? Optional.empty()
- : parse(_UrlDecoderUtil.urlDecode(urlEncodedStr));
+ : parse(UrlUtils.urlDecodeUtf8(urlEncodedStr));
}
// -- TO DTO
diff --git
a/commons/src/main/java/org/apache/causeway/commons/internal/codec/_UrlDecoderUtil.java
b/commons/src/main/java/org/apache/causeway/commons/internal/codec/_UrlDecoderUtil.java
deleted file mode 100644
index dfa5281031..0000000000
---
a/commons/src/main/java/org/apache/causeway/commons/internal/codec/_UrlDecoderUtil.java
+++ /dev/null
@@ -1,55 +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.commons.internal.codec;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-
-import lombok.experimental.UtilityClass;
-
-/**
- * <h1>- internal use only -</h1>
- *
- * <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
- */
-@UtilityClass
-public final class _UrlDecoderUtil {
-
- public static String urlDecode(final String input) {
- try {
- return URLDecoder.decode(input, "UTF-8");
- } catch (final UnsupportedEncodingException e) {
- return "";
- }
- }
-
- public static String urlDecodeNullSafe(final String input) {
- if (input == null) {
- return null;
- }
-
- return urlDecode(input);
- }
-
-}
diff --git
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
index caf2e7c918..44b62f1a0a 100644
---
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
+++
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
@@ -43,7 +43,7 @@ import
org.apache.causeway.applib.layout.component.DomainObjectLayoutData;
import org.apache.causeway.applib.layout.component.PropertyLayoutData;
import org.apache.causeway.applib.layout.grid.Grid;
import org.apache.causeway.applib.layout.links.Link;
-import org.apache.causeway.commons.internal.codec._UrlDecoderUtil;
+import org.apache.causeway.commons.io.UrlUtils;
import org.apache.causeway.core.metamodel.consent.Consent;
import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.causeway.core.metamodel.facets.object.icon.ObjectIcon;
@@ -689,8 +689,8 @@ implements DomainObjectResource {
final @PathParam("actionId") String actionId,
final @QueryParam("x-causeway-querystring") String
xCausewayUrlEncodedQueryString) {
- final String urlUnencodedQueryString = _UrlDecoderUtil
- .urlDecodeNullSafe(xCausewayUrlEncodedQueryString != null
+ final String urlUnencodedQueryString = UrlUtils.urlDecodeUtf8(
+ xCausewayUrlEncodedQueryString != null
? xCausewayUrlEncodedQueryString
: httpServletRequest.getQueryString());
val resourceContext = createResourceContext(
diff --git
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
index 447648e132..94db187a80 100644
---
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
+++
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
@@ -37,7 +37,7 @@ import javax.ws.rs.core.Response;
import org.springframework.stereotype.Component;
import org.apache.causeway.applib.annotation.Where;
-import org.apache.causeway.commons.internal.codec._UrlDecoderUtil;
+import org.apache.causeway.commons.io.UrlUtils;
import
org.apache.causeway.core.metamodel.facets.object.domainservice.DomainServiceFacet;
import org.apache.causeway.core.metamodel.object.ManagedObject;
import org.apache.causeway.viewer.restfulobjects.applib.JsonRepresentation;
@@ -268,8 +268,8 @@ implements DomainServiceResource {
final @PathParam("actionId") String actionId,
final @QueryParam("x-causeway-querystring") String
xCausewayUrlEncodedQueryString) {
- final String urlUnencodedQueryString = _UrlDecoderUtil
- .urlDecodeNullSafe(xCausewayUrlEncodedQueryString != null
+ final String urlUnencodedQueryString = UrlUtils.urlDecodeUtf8(
+ xCausewayUrlEncodedQueryString != null
? xCausewayUrlEncodedQueryString
: httpServletRequest.getQueryString());
val resourceContext = createResourceContext(
diff --git
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
index 3ff3c21bdd..07fe8e8fd6 100644
---
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
+++
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
@@ -36,8 +36,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.apache.causeway.applib.annotation.Where;
import org.apache.causeway.applib.services.bookmark.Bookmark;
import org.apache.causeway.commons.internal.base._Strings;
-import org.apache.causeway.commons.internal.codec._UrlDecoderUtil;
import org.apache.causeway.commons.io.TextUtils;
+import org.apache.causeway.commons.io.UrlUtils;
import org.apache.causeway.core.config.viewer.web.WebAppContextPath;
import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.causeway.core.metamodel.context.HasMetaModelContext;
@@ -160,7 +160,7 @@ implements HasMetaModelContext {
private String getUrlDecodedQueryStringIfAny() {
final String queryStringIfAny = httpServletRequest.getQueryString();
- return _UrlDecoderUtil.urlDecodeNullSafe(queryStringIfAny);
+ return UrlUtils.urlDecodeUtf8(queryStringIfAny);
}
private ResourceContext resourceContext(
diff --git
a/viewers/restfulobjects/viewer/src/test/java/org/apache/causeway/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
b/viewers/restfulobjects/viewer/src/test/java/org/apache/causeway/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
index 8513b283f8..ae4be649f2 100644
---
a/viewers/restfulobjects/viewer/src/test/java/org/apache/causeway/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
+++
b/viewers/restfulobjects/viewer/src/test/java/org/apache/causeway/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
@@ -31,7 +31,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
import org.apache.causeway.applib.services.iactnlayer.InteractionLayerTracker;
import org.apache.causeway.applib.services.iactnlayer.InteractionService;
-import org.apache.causeway.commons.internal.codec._UrlDecoderUtil;
+import org.apache.causeway.commons.io.UrlUtils;
import org.apache.causeway.core.metamodel._testing.MetaModelContext_forTesting;
import org.apache.causeway.core.metamodel.context.MetaModelContext;
import org.apache.causeway.core.metamodel.specloader.SpecificationLoader;
@@ -97,7 +97,7 @@ class ResourceContext_getArg_Test {
final String queryString =
UrlEncodingUtils.urlEncode(JsonRepresentation.newMap("x-ro-page",
"123").asJsonNode());
resourceContext = new ResourceContext(ResourceDescriptor.empty(),
null, null, null, null, null,
-
RequestParams.ofQueryString(_UrlDecoderUtil.urlDecodeNullSafe(queryString)),
+
RequestParams.ofQueryString(UrlUtils.urlDecodeUtf8(queryString)),
mockHttpServletRequest, null, null,
metaModelContext, null, null) {
@Override
@@ -114,7 +114,7 @@ class ResourceContext_getArg_Test {
final String queryString =
UrlEncodingUtils.urlEncode(JsonRepresentation.newMap("xxx",
"123").asJsonNode());
resourceContext = new ResourceContext(ResourceDescriptor.empty(),
null, null, null, null, null,
-
RequestParams.ofQueryString(_UrlDecoderUtil.urlDecodeNullSafe(queryString)),
+
RequestParams.ofQueryString(UrlUtils.urlDecodeUtf8(queryString)),
mockHttpServletRequest, null, null,
metaModelContext, null, null) {
@Override