You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by jo...@apache.org on 2024/07/05 12:54:36 UTC
(sling-org-apache-sling-api) 01/01: Revert "SLING-12062 add LazyBindings.putOnly (#52)"
This is an automated email from the ASF dual-hosted git repository.
joerghoh pushed a commit to branch SLING-12370
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-api.git
commit 0c03c8a814a4ab69aa46bae88dbdfb64e3bb87e7
Author: Joerg Hoh <jo...@apache.org>
AuthorDate: Fri Jul 5 14:19:24 2024 +0200
Revert "SLING-12062 add LazyBindings.putOnly (#52)"
This reverts commit 9b872a1c3fd17d75b4e573fbc30a4fc9fae166ca.
---
.../apache/sling/api/scripting/LazyBindings.java | 17 +--
.../apache/sling/api/scripting/SlingBindings.java | 4 +-
.../apache/sling/api/scripting/package-info.java | 2 +-
.../sling/api/scripting/LazyBindingsTest.java | 26 ----
.../sling/api/scripting/SlingBindingsTest.java | 140 ---------------------
5 files changed, 5 insertions(+), 184 deletions(-)
diff --git a/src/main/java/org/apache/sling/api/scripting/LazyBindings.java b/src/main/java/org/apache/sling/api/scripting/LazyBindings.java
index 78e4fd8..d44acd2 100644
--- a/src/main/java/org/apache/sling/api/scripting/LazyBindings.java
+++ b/src/main/java/org/apache/sling/api/scripting/LazyBindings.java
@@ -75,20 +75,6 @@ public class LazyBindings extends HashMap<String, Object> implements Bindings {
@Override
public Object put(String key, Object value) {
Object previous = this.get(key);
- putOnly(key, value);
- return previous;
- }
-
- /**
- * Set a named value; identical with {@link #put(String, Object)} but does not return (and evaluate)
- * any previous value set.
- * This is an extension of the LazyBindings implementation and can be beneficial if the supplied value is a Supplier, for which the
- * evaluation can be costly.
- *
- * @param key the name associated with the value
- * @param value the value associated with the name
- */
- public void putOnly(String key, Object value) {
if (value instanceof LazyBindings.Supplier) {
suppliers.put(key, (LazyBindings.Supplier) value);
super.remove(key);
@@ -96,12 +82,13 @@ public class LazyBindings extends HashMap<String, Object> implements Bindings {
super.put(key, value);
suppliers.remove(key);
}
+ return previous;
}
@Override
public void putAll(Map<? extends String, ?> toMerge) {
for (Entry<? extends String, ?> entry : toMerge.entrySet()) {
- putOnly(entry.getKey(), entry.getValue());
+ put(entry.getKey(), entry.getValue());
}
}
diff --git a/src/main/java/org/apache/sling/api/scripting/SlingBindings.java b/src/main/java/org/apache/sling/api/scripting/SlingBindings.java
index 806cd53..bdc32f7 100644
--- a/src/main/java/org/apache/sling/api/scripting/SlingBindings.java
+++ b/src/main/java/org/apache/sling/api/scripting/SlingBindings.java
@@ -182,7 +182,7 @@ public class SlingBindings extends LazyBindings {
*/
protected void safePut(final String key, final Object value) {
if ( value != null ) {
- this.putOnly(key, value);
+ this.put(key, value);
}
}
@@ -191,7 +191,7 @@ public class SlingBindings extends LazyBindings {
* @param flush Whether to flush or not
*/
public void setFlush(boolean flush) {
- putOnly(FLUSH, flush);
+ put(FLUSH, flush);
}
/**
diff --git a/src/main/java/org/apache/sling/api/scripting/package-info.java b/src/main/java/org/apache/sling/api/scripting/package-info.java
index 1772977..e43eb81 100644
--- a/src/main/java/org/apache/sling/api/scripting/package-info.java
+++ b/src/main/java/org/apache/sling/api/scripting/package-info.java
@@ -17,7 +17,7 @@
* under the License.
*/
-@Version("2.6.0")
+@Version("2.5.0")
package org.apache.sling.api.scripting;
import org.osgi.annotation.versioning.Version;
diff --git a/src/test/java/org/apache/sling/api/scripting/LazyBindingsTest.java b/src/test/java/org/apache/sling/api/scripting/LazyBindingsTest.java
index 4069ae5..a50b45c 100644
--- a/src/test/java/org/apache/sling/api/scripting/LazyBindingsTest.java
+++ b/src/test/java/org/apache/sling/api/scripting/LazyBindingsTest.java
@@ -35,7 +35,6 @@ import java.util.function.Supplier;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.Mockito;
public class LazyBindingsTest {
private static final String THE_QUESTION = "What is The Answer to the Ultimate Question of Life, The Universe, and Everything?";
@@ -221,31 +220,6 @@ public class LazyBindingsTest {
assertEquals("lazybar", bindings.get("foo"));
}
- @Test
- public void testPut_vs_PutOnly() {
- final LazyBindings bindings = new LazyBindings();
-
- Supplier supplierPut = Mockito.spy(new LazyBindings.Supplier() {
- @Override
- public Object get() {
- return "bar";
- }
- });
- bindings.put("put", supplierPut);
- bindings.put("put", supplierPut);
- Mockito.verify(supplierPut, Mockito.times(1)).get();
-
- Supplier supplierPutOnly = Mockito.spy(new LazyBindings.Supplier() {
- @Override
- public Object get() {
- return "bar";
- }
- });
- bindings.putOnly("putOnly", supplierPutOnly);
- bindings.putOnly("putOnly", supplierPutOnly);
- Mockito.verify(supplierPutOnly, Mockito.never()).get();
- }
-
private class TestSupplier implements LazyBindings.Supplier {
private final String name;
diff --git a/src/test/java/org/apache/sling/api/scripting/SlingBindingsTest.java b/src/test/java/org/apache/sling/api/scripting/SlingBindingsTest.java
deleted file mode 100644
index a42897f..0000000
--- a/src/test/java/org/apache/sling/api/scripting/SlingBindingsTest.java
+++ /dev/null
@@ -1,140 +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.sling.api.scripting;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.PrintWriter;
-import java.io.Reader;
-
-import org.apache.sling.api.SlingHttpServletRequest;
-import org.apache.sling.api.SlingHttpServletResponse;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.slf4j.Logger;
-
-public class SlingBindingsTest {
-
- SlingBindings bindings = new SlingBindings();
-
- @Test
- public void test_Flush() {
- assertFalse(bindings.getFlush());
- bindings.setFlush(true);
- assertTrue(bindings.getFlush());
- }
-
- @Test
- public void test_Log() {
- Logger logger = Mockito.mock(Logger.class);
- assertNull(bindings.getLog());
- bindings.setLog(null);
- assertNull(bindings.getLog());
- bindings.setLog(logger);
- assertEquals(logger,bindings.getLog());
- }
-
- @Test
- public void test_out() {
- PrintWriter printWriter = Mockito.mock(PrintWriter.class);
- assertNull(bindings.getOut());
- bindings.setOut(null);
- assertNull(bindings.getOut());
- bindings.setOut(printWriter);
- assertEquals(printWriter,bindings.getOut());
- }
-
- @Test
- public void test_request() {
- SlingHttpServletRequest request = Mockito.mock(SlingHttpServletRequest.class);
- assertNull(bindings.getRequest());
- bindings.setRequest(null);
- assertNull(bindings.getRequest());
- bindings.setRequest(request);
- assertEquals(request,bindings.getRequest());
- }
-
- @Test
- public void test_reader() {
- Reader reader = Mockito.mock(Reader.class);
- assertNull(bindings.getReader());
- bindings.setReader(null);
- assertNull(bindings.getReader());
- bindings.setReader(reader);
- assertEquals(reader,bindings.getReader());
- }
-
- @Test
- public void test_resource() {
- Resource resource = Mockito.mock(Resource.class);
- assertNull(bindings.getResource());
- bindings.setResource(null);
- assertNull(bindings.getResource());
- bindings.setResource(resource);
- assertEquals(resource,bindings.getResource());
- }
-
- @Test
- public void test_resourceresolver() {
- ResourceResolver resolver = Mockito.mock(ResourceResolver.class);
- assertNull(bindings.getResourceResolver());
- bindings.setResourceResolver(null);
- assertNull(bindings.getResourceResolver());
- bindings.setResourceResolver(resolver);
- assertEquals(resolver,bindings.getResourceResolver());
- }
-
- @Test
- public void test_response() {
- SlingHttpServletResponse response = Mockito.mock(SlingHttpServletResponse.class);
- assertNull(bindings.getResponse());
- bindings.setResponse(null);
- assertNull(bindings.getResponse());
- bindings.setResponse(response);
- assertEquals(response, bindings.getResponse());
- }
-
- @Test
- public void test_sling() {
- SlingScriptHelper sling = Mockito.mock(SlingScriptHelper.class);
- assertNull(bindings.getSling());
- bindings.setSling(null);
- assertNull(bindings.getSling());
- bindings.setSling(sling);
- assertEquals(sling,bindings.getSling());
- }
-
- @Test
- public void test_nonMatchingClass() {
- SlingHttpServletResponse response = Mockito.mock(SlingHttpServletResponse.class);
- bindings.setResponse(response);
- assertEquals(response,bindings.getResponse());
-
- // manually put a wrong type
- SlingHttpServletRequest request = Mockito.mock(SlingHttpServletRequest.class);
- bindings.put(SlingBindings.RESPONSE, request);
- // incorrect type, so a null is expected
- assertNull(bindings.getResponse());
- }
-}