From 27663d633c6c98ed82b20d83f396f6d4d745085e Mon Sep 17 00:00:00 2001 From: Tomas Langer Date: Mon, 16 Dec 2019 17:29:33 +0100 Subject: [PATCH 1/8] Remove OptionalHelper and replace with Optional methods. Signed-off-by: Tomas Langer --- .../io/helidon/common/OptionalHelper.java | 110 ------------------ .../helidon/common/configurable/Resource.java | 8 +- .../common/mapper/MapperManagerImpl.java | 5 +- .../helidon/config/ClasspathConfigSource.java | 4 +- .../java/io/helidon/config/ConfigValue.java | 7 +- .../io/helidon/config/FileConfigSource.java | 4 +- .../config/internal/PrefixedConfigSource.java | 8 +- .../config/spi/AbstractConfigSource.java | 6 +- .../spi/AbstractParsableConfigSource.java | 4 +- .../config/encryption/EncryptionFilter.java | 6 +- .../config/encryption/EncryptionUtil.java | 4 +- .../helidon/config/etcd/EtcdConfigSource.java | 4 +- .../helidon/config/git/GitConfigSource.java | 4 +- .../ObjectConfigMapperProvider.java | 9 +- .../examples/spi/AtnProviderSyncTest.java | 5 +- .../signatures/SignatureExampleUtil.java | 3 +- .../demo/todos/frontend/TodosHandler.java | 7 +- .../webserver/examples/comments/Main.java | 4 +- .../jersey/common/InvokedResourceImpl.java | 8 +- .../io/helidon/metrics/MetricsSupport.java | 5 +- .../io/helidon/metrics/MetricsSupport.java | 5 +- .../jwt/auth/JsonWebTokenImpl.java | 13 +-- .../jwt/auth/JwtAuthProvider.java | 9 +- .../jwt/auth/JwtAuthProviderTest.java | 16 ++- .../microprofile/server/ServerImpl.java | 4 +- .../tracing/MpTracingInterceptor.java | 6 +- .../security/abac/scope/ScopeValidator.java | 87 +++++++------- .../integration/common/CommonTracing.java | 10 +- .../integration/grpc/GrpcClientSecurity.java | 3 +- .../integration/grpc/GrpcSecurityHandler.java | 7 +- .../jersey/client/ClientSecurityFilter.java | 19 ++- .../jersey/ClientSecurityFilter.java | 5 +- .../integration/jersey/SecurityFilter.java | 4 +- .../webserver/SecurityHandler.java | 7 +- .../java/io/helidon/security/jwt/Jwt.java | 74 +++++------- .../java/io/helidon/security/jwt/jwk/Jwk.java | 6 +- .../io/helidon/security/jwt/jwk/JwkPki.java | 8 +- .../helidon/security/jwt/jwk/JwkKeysTest.java | 17 ++- .../security/providers/abac/AbacProvider.java | 3 +- .../httpsign/HttpSignProviderTest.java | 31 +++-- .../providers/httpsign/HttpSignatureTest.java | 7 +- .../security/providers/jwt/JwtProvider.java | 3 +- .../providers/jwt/JwtProviderTest.java | 17 ++- .../security/providers/oidc/OidcProvider.java | 24 ++-- .../security/providers/oidc/OidcSupport.java | 3 +- .../security/DefaultAuditProvider.java | 3 +- .../io/helidon/security/ProviderRequest.java | 6 +- .../java/io/helidon/security/Subject.java | 5 +- .../security/AuthenticationResponseTest.java | 10 +- .../helidon/security/EntityHandlingTest.java | 3 +- .../config/ComponentTracingConfig.java | 6 +- .../tracing/config/SpanLogTracingConfig.java | 6 +- .../tracing/config/SpanTracingConfig.java | 11 +- .../helidon/tracing/config/TracingConfig.java | 6 +- .../jersey/client/ClientTracingFilter.java | 21 ++-- .../webserver/HashResponseHeaders.java | 3 +- .../java/io/helidon/webserver/Response.java | 5 +- 57 files changed, 233 insertions(+), 455 deletions(-) delete mode 100644 common/common/src/main/java/io/helidon/common/OptionalHelper.java diff --git a/common/common/src/main/java/io/helidon/common/OptionalHelper.java b/common/common/src/main/java/io/helidon/common/OptionalHelper.java deleted file mode 100644 index 4da36d9c73a..00000000000 --- a/common/common/src/main/java/io/helidon/common/OptionalHelper.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. - * - * Licensed 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 io.helidon.common; - -import java.util.Objects; -import java.util.Optional; -import java.util.function.Consumer; -import java.util.function.Supplier; -import java.util.stream.Stream; - -/** - * A wrapper on top of {@code Optional} to replicate some of the new Java9 - * methods. - * @param the type of the underlying optional value - */ -public class OptionalHelper { - - private Optional optional; - - private OptionalHelper(Optional optional){ - Objects.requireNonNull(optional); - this.optional = optional; - } - - /** - * Static factory method to create a new {@code OptionalHelper} instance. - * @param the type of the underly optional value - * @param optional the optional to wrap - * @return the created {@code OptionalHelper} instance - */ - public static OptionalHelper from(Optional optional){ - return new OptionalHelper<>(optional); - } - - /** - * Get the underlying {@code Optional} instance. - * @return the wrapped {@code Optional} - */ - public Optional asOptional(){ - return optional; - } - - /** - * If the underlying {@code Optional} does not have a value, set it to the - * {@code Optional} produced by the supplying function. - * - * @param supplier the supplying function that produces an {@code Optional} - * @return returns this instance of {@code OptionalHelper} with the same - * the underlying {@code Optional} if a value is present, otherwise - * with the {@code Optional} produced by the supplying function. - * @throws NullPointerException if the supplying function is {@code null} or - * produces a {@code null} result - */ - public OptionalHelper or(Supplier> supplier){ - Objects.requireNonNull(supplier); - if (!optional.isPresent()) { - Optional supplied = supplier.get(); - Objects.requireNonNull(supplied); - optional = supplied; - } - return this; - } - - /** - * If a value is present, performs the given action with the value, - * otherwise performs the given empty-based action. - * - * @param action the action to be performed, if a value is present - * @param emptyAction the empty-based action to be performed, if no value is - * present - * @throws NullPointerException if a value is present and the given action - * is {@code null}, or no value is present and the given empty-based - * action is {@code null}. - */ - public void ifPresentOrElse(Consumer action, Runnable emptyAction) { - if (optional.isPresent()) { - action.accept(optional.get()); - } else { - emptyAction.run(); - } - } - - /** - * If a value is present, returns a sequential {@link Stream} containing - * only that value, otherwise returns an empty {@code Stream}. - * - * @return the optional value as a {@code Stream} - */ - public Stream stream(){ - if (!optional.isPresent()) { - return Stream.empty(); - } else { - return Stream.of(optional.get()); - } - } -} diff --git a/common/configurable/src/main/java/io/helidon/common/configurable/Resource.java b/common/configurable/src/main/java/io/helidon/common/configurable/Resource.java index 5d809e2e395..62ba05746ca 100644 --- a/common/configurable/src/main/java/io/helidon/common/configurable/Resource.java +++ b/common/configurable/src/main/java/io/helidon/common/configurable/Resource.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import java.util.Objects; import java.util.Optional; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; /** @@ -151,12 +150,11 @@ static Resource create(String description, InputStream inputStream) { * @return a resource ready to load from one of the locations or empty if neither is defined */ static Optional create(Config config, String keyPrefix) { - return OptionalHelper.from(ResourceUtil.fromConfigPath(config, keyPrefix)) + return ResourceUtil.fromConfigPath(config, keyPrefix) .or(() -> ResourceUtil.fromConfigResourcePath(config, keyPrefix)) .or(() -> ResourceUtil.fromConfigUrl(config, keyPrefix)) .or(() -> ResourceUtil.fromConfigContent(config, keyPrefix)) - .or(() -> ResourceUtil.fromConfigB64Content(config, keyPrefix)) - .asOptional(); + .or(() -> ResourceUtil.fromConfigB64Content(config, keyPrefix)); } /** diff --git a/common/mapper/src/main/java/io/helidon/common/mapper/MapperManagerImpl.java b/common/mapper/src/main/java/io/helidon/common/mapper/MapperManagerImpl.java index e69c7dd60b9..78ce4149081 100644 --- a/common/mapper/src/main/java/io/helidon/common/mapper/MapperManagerImpl.java +++ b/common/mapper/src/main/java/io/helidon/common/mapper/MapperManagerImpl.java @@ -22,7 +22,6 @@ import java.util.concurrent.ConcurrentHashMap; import io.helidon.common.GenericType; -import io.helidon.common.OptionalHelper; import io.helidon.common.mapper.spi.MapperProvider; /** @@ -112,14 +111,14 @@ private Mapper findMapper(GenericType s private Optional> fromProviders(Class sourceType, Class targetType) { return providers.stream() - .flatMap(provider -> OptionalHelper.from(provider.mapper(sourceType, targetType)).stream()) + .flatMap(provider -> provider.mapper(sourceType, targetType).stream()) .findFirst(); } private Optional> fromProviders(GenericType sourceType, GenericType targetType) { return providers.stream() - .flatMap(provider -> OptionalHelper.from(provider.mapper(sourceType, targetType)).stream()) + .flatMap(provider -> provider.mapper(sourceType, targetType).stream()) .findFirst(); } diff --git a/config/config/src/main/java/io/helidon/config/ClasspathConfigSource.java b/config/config/src/main/java/io/helidon/config/ClasspathConfigSource.java index a00af674d56..e1bb922c5ba 100644 --- a/config/config/src/main/java/io/helidon/config/ClasspathConfigSource.java +++ b/config/config/src/main/java/io/helidon/config/ClasspathConfigSource.java @@ -21,7 +21,6 @@ import java.time.Instant; import java.util.Optional; -import io.helidon.common.OptionalHelper; import io.helidon.config.spi.AbstractParsableConfigSource; import io.helidon.config.spi.ConfigParser; import io.helidon.config.spi.ConfigSource; @@ -85,9 +84,8 @@ protected String uid() { @Override protected String mediaType() { - return OptionalHelper.from(Optional.ofNullable(super.mediaType())) + return Optional.ofNullable(super.mediaType()) .or(this::probeContentType) - .asOptional() .orElse(null); } diff --git a/config/config/src/main/java/io/helidon/config/ConfigValue.java b/config/config/src/main/java/io/helidon/config/ConfigValue.java index c40735eaa5b..b2a231025c2 100644 --- a/config/config/src/main/java/io/helidon/config/ConfigValue.java +++ b/config/config/src/main/java/io/helidon/config/ConfigValue.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -163,9 +163,8 @@ default T get() throws MissingValueException, ConfigMappingException { * {@code Optional} produced by the supplying function. * * @param supplier the supplying function that produces an {@code Optional} - * @return returns this instance of {@code OptionalHelper} with the same - * the underlying {@code Optional} if a value is present, otherwise - * with the {@code Optional} produced by the supplying function. + * @return returns current value using {@link #asOptional()} if present, + * otherwise value produced by the supplying function. * @throws NullPointerException if the supplying function is {@code null} or * produces a {@code null} result */ diff --git a/config/config/src/main/java/io/helidon/config/FileConfigSource.java b/config/config/src/main/java/io/helidon/config/FileConfigSource.java index 3bba76642e1..fdfc38ae2a9 100644 --- a/config/config/src/main/java/io/helidon/config/FileConfigSource.java +++ b/config/config/src/main/java/io/helidon/config/FileConfigSource.java @@ -22,7 +22,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.OptionalHelper; import io.helidon.config.internal.FileSourceHelper; import io.helidon.config.spi.AbstractParsableConfigSource; import io.helidon.config.spi.ConfigParser; @@ -92,9 +91,8 @@ protected String uid() { @Override protected String mediaType() { - return OptionalHelper.from(Optional.ofNullable(super.mediaType())) + return Optional.ofNullable(super.mediaType()) .or(this::probeContentType) - .asOptional() .orElse(null); } diff --git a/config/config/src/main/java/io/helidon/config/internal/PrefixedConfigSource.java b/config/config/src/main/java/io/helidon/config/internal/PrefixedConfigSource.java index 1a36ff58104..f0e94031531 100644 --- a/config/config/src/main/java/io/helidon/config/internal/PrefixedConfigSource.java +++ b/config/config/src/main/java/io/helidon/config/internal/PrefixedConfigSource.java @@ -19,7 +19,6 @@ import java.util.Objects; import java.util.Optional; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; import io.helidon.config.MetaConfig; @@ -79,10 +78,9 @@ public String description() { @Override public Optional load() throws ConfigException { - return OptionalHelper.from(source.load() - .map(originRoot -> new ObjectNodeBuilderImpl().addObject(key, originRoot).build())) - .or(Optional::empty) - .asOptional(); + return source.load() + .map(originRoot -> new ObjectNodeBuilderImpl().addObject(key, originRoot).build()) + .or(Optional::empty); } @Override diff --git a/config/config/src/main/java/io/helidon/config/spi/AbstractConfigSource.java b/config/config/src/main/java/io/helidon/config/spi/AbstractConfigSource.java index 8433e0357b7..8fcfd89ebbc 100644 --- a/config/config/src/main/java/io/helidon/config/spi/AbstractConfigSource.java +++ b/config/config/src/main/java/io/helidon/config/spi/AbstractConfigSource.java @@ -25,7 +25,6 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.config.internal.ConfigKeyImpl; import io.helidon.config.internal.ListNodeBuilderImpl; @@ -128,10 +127,9 @@ private ConfigNode processValue(Optional datastamp, Config.Key key, ValueNode } private Optional findParserForKey(Config.Key key) { - return OptionalHelper.from(Optional.ofNullable(parserMapping).map(mapping -> mapping.apply(key))) + return Optional.ofNullable(parserMapping).map(mapping -> mapping.apply(key)) .or(() -> Optional.ofNullable(mediaTypeMapping).map(mapping -> mapping.apply(key)) - .flatMap(mediaType -> configContext().findParser(mediaType))) - .asOptional(); + .flatMap(mediaType -> configContext().findParser(mediaType))); } /** diff --git a/config/config/src/main/java/io/helidon/config/spi/AbstractParsableConfigSource.java b/config/config/src/main/java/io/helidon/config/spi/AbstractParsableConfigSource.java index 8e543fdceed..b29e7a85bef 100644 --- a/config/config/src/main/java/io/helidon/config/spi/AbstractParsableConfigSource.java +++ b/config/config/src/main/java/io/helidon/config/spi/AbstractParsableConfigSource.java @@ -18,7 +18,6 @@ import java.util.Optional; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; import io.helidon.config.spi.ConfigNode.ObjectNode; @@ -95,10 +94,9 @@ protected ConfigParser parser() { * @throws ConfigParserException in case of problem to parse configuration from the source */ private ObjectNode parse(ConfigContext context, ConfigParser.Content content) throws ConfigParserException { - return OptionalHelper.from(Optional.ofNullable(parser())) + return Optional.ofNullable(parser()) .or(() -> context.findParser(Optional.ofNullable(content.mediaType()) .orElseThrow(() -> new ConfigException("Unknown media type.")))) - .asOptional() .map(parser -> parser.parse(content)) .orElseThrow(() -> new ConfigException("Cannot find suitable parser for '" + content.mediaType() + "' media type.")); diff --git a/config/encryption/src/main/java/io/helidon/config/encryption/EncryptionFilter.java b/config/encryption/src/main/java/io/helidon/config/encryption/EncryptionFilter.java index 63ec6a51198..2f43ca540ff 100644 --- a/config/encryption/src/main/java/io/helidon/config/encryption/EncryptionFilter.java +++ b/config/encryption/src/main/java/io/helidon/config/encryption/EncryptionFilter.java @@ -25,7 +25,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.OptionalHelper; import io.helidon.common.pki.KeyConfig; import io.helidon.config.Config; import io.helidon.config.MissingValueException; @@ -80,10 +79,9 @@ public final class EncryptionFilter implements ConfigFilter { private EncryptionFilter(Builder builder, Config config) { if (builder.fromConfig) { - this.requireEncryption = OptionalHelper.from(EncryptionUtil.getEnv(ConfigProperties.REQUIRE_ENCRYPTION_ENV_VARIABLE) - .map(Boolean::parseBoolean)) + this.requireEncryption = EncryptionUtil.getEnv(ConfigProperties.REQUIRE_ENCRYPTION_ENV_VARIABLE) + .map(Boolean::parseBoolean) .or(() -> config.get(ConfigProperties.REQUIRE_ENCRYPTION_CONFIG_KEY).asBoolean().asOptional()) - .asOptional() .orElse(true); this.masterPassword = EncryptionUtil.resolveMasterPassword(requireEncryption, config).orElse(null); diff --git a/config/encryption/src/main/java/io/helidon/config/encryption/EncryptionUtil.java b/config/encryption/src/main/java/io/helidon/config/encryption/EncryptionUtil.java index 94da51bbbbc..20be8b44e4a 100644 --- a/config/encryption/src/main/java/io/helidon/config/encryption/EncryptionUtil.java +++ b/config/encryption/src/main/java/io/helidon/config/encryption/EncryptionUtil.java @@ -35,7 +35,6 @@ import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec; -import io.helidon.common.OptionalHelper; import io.helidon.common.configurable.Resource; import io.helidon.common.pki.KeyConfig; import io.helidon.config.Config; @@ -282,7 +281,7 @@ static String decryptAes(char[] masterPassword, String encryptedBase64) throws C } static Optional resolveMasterPassword(boolean requireEncryption, Config config) { - Optional result = OptionalHelper.from(getEnv(ConfigProperties.MASTER_PASSWORD_ENV_VARIABLE)) + Optional result = getEnv(ConfigProperties.MASTER_PASSWORD_ENV_VARIABLE) .or(() -> { ConfigValue value = config.get(ConfigProperties.MASTER_PASSWORD_CONFIG_KEY).asString(); if (value.isPresent()) { @@ -295,7 +294,6 @@ static Optional resolveMasterPassword(boolean requireEncryption, Config } return value.asOptional(); }) - .asOptional() .map(String::toCharArray); if (!result.isPresent()) { diff --git a/config/etcd/src/main/java/io/helidon/config/etcd/EtcdConfigSource.java b/config/etcd/src/main/java/io/helidon/config/etcd/EtcdConfigSource.java index 03426e05de0..d53fab43e90 100644 --- a/config/etcd/src/main/java/io/helidon/config/etcd/EtcdConfigSource.java +++ b/config/etcd/src/main/java/io/helidon/config/etcd/EtcdConfigSource.java @@ -23,7 +23,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; import io.helidon.config.ConfigHelper; @@ -58,9 +57,8 @@ public class EtcdConfigSource extends AbstractParsableConfigSource { @Override protected String mediaType() { - return OptionalHelper.from(Optional.ofNullable(super.mediaType())) + return Optional.ofNullable(super.mediaType()) .or(this::probeContentType) - .asOptional() .orElse(null); } diff --git a/config/git/src/main/java/io/helidon/config/git/GitConfigSource.java b/config/git/src/main/java/io/helidon/config/git/GitConfigSource.java index 4b775dac24e..ffcb1b52bd9 100644 --- a/config/git/src/main/java/io/helidon/config/git/GitConfigSource.java +++ b/config/git/src/main/java/io/helidon/config/git/GitConfigSource.java @@ -33,7 +33,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; import io.helidon.config.ConfigHelper; @@ -226,9 +225,8 @@ protected String uid() { @Override protected String mediaType() { - return OptionalHelper.from(Optional.ofNullable(super.mediaType())) + return Optional.ofNullable(super.mediaType()) .or(this::probeContentType) - .asOptional() .orElse(null); } diff --git a/config/object-mapping/src/main/java/io/helidon/config/objectmapping/ObjectConfigMapperProvider.java b/config/object-mapping/src/main/java/io/helidon/config/objectmapping/ObjectConfigMapperProvider.java index c92e3d180ec..ee327c988c3 100644 --- a/config/object-mapping/src/main/java/io/helidon/config/objectmapping/ObjectConfigMapperProvider.java +++ b/config/object-mapping/src/main/java/io/helidon/config/objectmapping/ObjectConfigMapperProvider.java @@ -23,7 +23,6 @@ import javax.annotation.Priority; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.config.objectmapping.ObjectConfigMappers.BuilderConfigMapper; import io.helidon.config.objectmapping.ObjectConfigMappers.ConfigMethodHandleConfigMapper; @@ -59,9 +58,8 @@ public class ObjectConfigMapperProvider implements ConfigMapperProvider { @Override public Optional> mapper(Class type) { - return OptionalHelper - // T create(Config) - .from(findStaticConfigMethodMapper(type, METHOD_CREATE)) + return // T create(Config) + findStaticConfigMethodMapper(type, METHOD_CREATE) // T from(Config) .or(() -> findStaticConfigMethodMapper(type, METHOD_FROM)) // Config constructor @@ -97,9 +95,8 @@ public Optional> mapper(Class type) { // constructor(param, params...) .or(() -> findConstructorWithParamsMapper(type)) // generic mapping support - .or(() -> findGenericMapper(type)) + .or(() -> findGenericMapper(type)); // we could not find anything, let config decide what to do - .asOptional(); } private static Optional> findStaticConfigMethodMapper(Class type, diff --git a/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/AtnProviderSyncTest.java b/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/AtnProviderSyncTest.java index 22fe2e0394b..5901e4f7a59 100644 --- a/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/AtnProviderSyncTest.java +++ b/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/AtnProviderSyncTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ import java.util.Set; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; import io.helidon.security.AuthenticationResponse; @@ -203,7 +202,7 @@ private void validateResponse(AuthenticationResponse response) { assertThat(response.status(), is(SecurityResponse.SecurityStatus.SUCCESS)); Optional maybeuser = response.user(); - OptionalHelper.from(maybeuser).ifPresentOrElse(user -> { + maybeuser.ifPresentOrElse(user -> { assertThat(user.principal().id(), is(VALUE)); Set roles = Security.getRoles(user); assertThat(roles.size(), is(1)); diff --git a/examples/security/webserver-signatures/src/main/java/io/helidon/security/examples/signatures/SignatureExampleUtil.java b/examples/security/webserver-signatures/src/main/java/io/helidon/security/examples/signatures/SignatureExampleUtil.java index 996a40c8306..e44c6e17e2c 100644 --- a/examples/security/webserver-signatures/src/main/java/io/helidon/security/examples/signatures/SignatureExampleUtil.java +++ b/examples/security/webserver-signatures/src/main/java/io/helidon/security/examples/signatures/SignatureExampleUtil.java @@ -23,7 +23,6 @@ import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.MediaType; import io.helidon.security.SecurityContext; import io.helidon.webserver.Routing; @@ -82,7 +81,7 @@ static void processService1Request(ServerRequest req, ServerResponse res, String res.headers().contentType(MediaType.TEXT_PLAIN.withCharset("UTF-8")); - OptionalHelper.from(securityContext).ifPresentOrElse(context -> { + securityContext.ifPresentOrElse(context -> { CLIENT.target("http://localhost:" + svc2port + path) .request() .rx() diff --git a/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/TodosHandler.java b/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/TodosHandler.java index 3f5de26f366..d821582b1a7 100644 --- a/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/TodosHandler.java +++ b/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/TodosHandler.java @@ -21,7 +21,6 @@ import javax.json.JsonObject; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.Http; import io.helidon.media.jsonp.server.JsonSupport; import io.helidon.metrics.RegistryFactory; @@ -203,7 +202,7 @@ private void sendResponse(final ServerResponse res, final Optional jsonResponse, final Http.Status failureStatus) { - OptionalHelper.from(jsonResponse) + jsonResponse .ifPresentOrElse(res::send, () -> res.status(failureStatus)); } @@ -239,8 +238,8 @@ private void secure(final ServerRequest req, final ServerResponse res, final Consumer ctx) { - OptionalHelper.from(req.context() - .get(SecurityContext.class)) + req.context() + .get(SecurityContext.class) .ifPresentOrElse(ctx, () -> noSecurityContext(res)); } diff --git a/examples/webserver/comment-aas/src/main/java/io/helidon/webserver/examples/comments/Main.java b/examples/webserver/comment-aas/src/main/java/io/helidon/webserver/examples/comments/Main.java index b6d939a7143..d04b1b3b13d 100644 --- a/examples/webserver/comment-aas/src/main/java/io/helidon/webserver/examples/comments/Main.java +++ b/examples/webserver/comment-aas/src/main/java/io/helidon/webserver/examples/comments/Main.java @@ -19,7 +19,6 @@ import java.util.Optional; import java.util.concurrent.CompletionException; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.Http; import io.helidon.config.Config; import io.helidon.webserver.HttpException; @@ -68,9 +67,8 @@ static Routing createRouting(boolean acceptAnonymousUsers) { return Routing.builder() // Filter that translates user identity header into the contextual "user" information .any((req, res) -> { - String user = OptionalHelper.from(req.headers().first("user-identity")) + String user = req.headers().first("user-identity") .or(() -> acceptAnonymousUsers ? Optional.of("anonymous") : Optional.empty()) - .asOptional() .orElseThrow(() -> new HttpException("Anonymous access is forbidden!", Http.Status.FORBIDDEN_403)); req.context().register("user", user); diff --git a/jersey/common/src/main/java/io/helidon/jersey/common/InvokedResourceImpl.java b/jersey/common/src/main/java/io/helidon/jersey/common/InvokedResourceImpl.java index ca9699bbfde..1e50492b2cc 100644 --- a/jersey/common/src/main/java/io/helidon/jersey/common/InvokedResourceImpl.java +++ b/jersey/common/src/main/java/io/helidon/jersey/common/InvokedResourceImpl.java @@ -28,8 +28,6 @@ import javax.ws.rs.Path; import javax.ws.rs.container.ContainerRequestContext; -import io.helidon.common.OptionalHelper; - import org.glassfish.jersey.server.ExtendedUriInfo; import org.glassfish.jersey.server.model.Invocable; import org.glassfish.jersey.server.model.ResourceMethod; @@ -97,10 +95,8 @@ public Optional> handlingClass() { @Override public Optional findAnnotation(Class annotationClass) { - return OptionalHelper.from(findMethodAnnotation(annotationClass)) - .or(() -> findClassAnnotation(annotationClass)) - .asOptional(); - + return findMethodAnnotation(annotationClass) + .or(() -> findClassAnnotation(annotationClass)); } @Override diff --git a/metrics/metrics/src/main/java/io/helidon/metrics/MetricsSupport.java b/metrics/metrics/src/main/java/io/helidon/metrics/MetricsSupport.java index 1265a182c2f..3d9397975b5 100644 --- a/metrics/metrics/src/main/java/io/helidon/metrics/MetricsSupport.java +++ b/metrics/metrics/src/main/java/io/helidon/metrics/MetricsSupport.java @@ -32,7 +32,6 @@ import javax.json.JsonObjectBuilder; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; import io.helidon.config.Config; @@ -363,7 +362,7 @@ private Metadata reusableMetadata(String name, String displayName, String descri private void getOne(ServerRequest req, ServerResponse res, Registry registry) { String metricName = req.path().param("metric"); - OptionalHelper.from(registry.getMetric(metricName)) + registry.getMetric(metricName) .ifPresentOrElse(metric -> { if (requestsJsonData(req.headers())) { JsonObjectBuilder builder = JSON.createObjectBuilder(); @@ -398,7 +397,7 @@ private void optionsMultiple(ServerRequest req, ServerResponse res, Registry... private void optionsOne(ServerRequest req, ServerResponse res, Registry registry) { String metricName = req.path().param("metric"); - OptionalHelper.from(registry.getMetric(metricName)) + registry.getMetric(metricName) .ifPresentOrElse(metric -> { if (req.headers().isAccepted(MediaType.APPLICATION_JSON)) { JsonObjectBuilder builder = JSON.createObjectBuilder(); diff --git a/metrics2/metrics2/src/main/java/io/helidon/metrics/MetricsSupport.java b/metrics2/metrics2/src/main/java/io/helidon/metrics/MetricsSupport.java index addf4df9a72..71d19e8daa4 100644 --- a/metrics2/metrics2/src/main/java/io/helidon/metrics/MetricsSupport.java +++ b/metrics2/metrics2/src/main/java/io/helidon/metrics/MetricsSupport.java @@ -42,7 +42,6 @@ import javax.json.JsonValue; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; import io.helidon.config.Config; @@ -404,7 +403,7 @@ public void update(Routing.Rules rules) { private void getOne(ServerRequest req, ServerResponse res, Registry registry) { String metricName = req.path().param("metric"); - OptionalHelper.from(registry.getOptionalMetricEntry(metricName)) + registry.getOptionalMetricEntry(metricName) .ifPresentOrElse(entry -> { MediaType mediaType = findBestAccepted(req.headers()); if (mediaType == MediaType.APPLICATION_JSON) { @@ -449,7 +448,7 @@ private void optionsMultiple(ServerRequest req, ServerResponse res, Registry... private void optionsOne(ServerRequest req, ServerResponse res, Registry registry) { String metricName = req.path().param("metric"); - OptionalHelper.from(registry.getOptionalMetricWithIDsEntry(metricName)) + registry.getOptionalMetricWithIDsEntry(metricName) .ifPresentOrElse(entry -> { if (req.headers().isAccepted(MediaType.APPLICATION_JSON)) { JsonObjectBuilder builder = JSON.createObjectBuilder(); diff --git a/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JsonWebTokenImpl.java b/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JsonWebTokenImpl.java index 403d883c3e4..461fcc9ab0a 100644 --- a/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JsonWebTokenImpl.java +++ b/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JsonWebTokenImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import javax.json.JsonString; import javax.json.JsonValue; -import io.helidon.common.OptionalHelper; import io.helidon.security.Principal; import io.helidon.security.SecurityException; import io.helidon.security.jwt.Jwt; @@ -69,8 +68,8 @@ private JsonWebTokenImpl(SignedJwt signed) { String subject = jwt.subject() .orElseThrow(() -> new JwtException("JWT does not contain subject claim, cannot create principal.")); - this.name = OptionalHelper.from(jwt.userPrincipal()) - .or(jwt::preferredUsername).asOptional() + this.name = jwt.userPrincipal() + .or(jwt::preferredUsername) .orElse(subject); this.id = subject; @@ -165,10 +164,8 @@ private Optional getJsonValue(String claimName) { // special case, raw token is not really a claim return Optional.of(Json.createValue(signed.tokenContent())); } - return OptionalHelper - .from(jwt.payloadClaim(claimName)) - .or(() -> jwt.headerClaim(claimName)) - .asOptional(); + return jwt.payloadClaim(claimName) + .or(() -> jwt.headerClaim(claimName)); } private Object convert(Claims claims, JsonValue value) { diff --git a/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java b/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java index 576333f3ae5..27b3feda6de 100644 --- a/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java +++ b/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java @@ -48,7 +48,6 @@ import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.common.InputStreamHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.configurable.Resource; import io.helidon.common.pki.KeyConfig; import io.helidon.config.Config; @@ -353,7 +352,7 @@ private OutboundSecurityResponse propagate(JwtOutboundTarget ot, Subject subject principal.abacAttribute(name).ifPresent(val -> builder.addPayloadClaim(name, val)); }); - OptionalHelper.from(principal.abacAttribute("full_name")) + principal.abacAttribute("full_name") .ifPresentOrElse(name -> builder.addPayloadClaim("name", name), () -> builder.removePayloadClaim("name")); @@ -555,16 +554,14 @@ public JwtAuthProvider build() { } private JwkKeys createJwkKeys() { - return OptionalHelper - .from(Optional.ofNullable(publicKeyPath) - .map(this::loadJwkKeysFromLocation)) + return Optional.ofNullable(publicKeyPath) + .map(this::loadJwkKeysFromLocation) .or(() -> Optional.ofNullable(publicKey) .map(this::loadJwkKeys)) .or(() -> Optional.ofNullable(defaultJwk) .map(jwk -> JwkKeys.builder() .addKey(jwk) .build())) - .asOptional() .orElseThrow(() -> new SecurityException("No public key or default JWK set.")); } diff --git a/microprofile/jwt-auth/jwt-auth/src/test/java/io/helidon/microprofile/jwt/auth/JwtAuthProviderTest.java b/microprofile/jwt-auth/jwt-auth/src/test/java/io/helidon/microprofile/jwt/auth/JwtAuthProviderTest.java index 14b87df7af1..8cfbb4bab15 100644 --- a/microprofile/jwt-auth/jwt-auth/src/test/java/io/helidon/microprofile/jwt/auth/JwtAuthProviderTest.java +++ b/microprofile/jwt-auth/jwt-auth/src/test/java/io/helidon/microprofile/jwt/auth/JwtAuthProviderTest.java @@ -26,7 +26,6 @@ import java.util.Optional; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.configurable.Resource; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; @@ -98,7 +97,7 @@ public void testWrongToken() { when(ec.securityLevels()).thenReturn(securityLevels); when(appSecurityLevel.filterAnnotations(LoginConfig.class, EndpointConfig.AnnotationScope.CLASS)) - .thenReturn(listOf(new LoginConfig(){ + .thenReturn(listOf(new LoginConfig() { @Override public Class annotationType() { return LoginConfig.class; @@ -211,8 +210,8 @@ public void testEcBothWays() { ProviderRequest atnRequest = mockRequest(signedToken); AuthenticationResponse authenticationResponse = provider.syncAuthenticate(atnRequest); - OptionalHelper.from(authenticationResponse.user() - .map(Subject::principal)) + authenticationResponse.user() + .map(Subject::principal) .ifPresentOrElse(atnPrincipal -> { assertThat(atnPrincipal, instanceOf(JsonWebTokenImpl.class)); JsonWebTokenImpl jsonWebToken = (JsonWebTokenImpl) atnPrincipal; @@ -286,10 +285,9 @@ public void testOctBothWays() { //now we need to use the same token to invoke authentication ProviderRequest atnRequest = mockRequest(signedToken); - AuthenticationResponse authenticationResponse = provider.syncAuthenticate(atnRequest); - OptionalHelper.from(authenticationResponse.user() - .map(Subject::principal)) + authenticationResponse.user() + .map(Subject::principal) .ifPresentOrElse(atnPrincipal -> { assertThat(atnPrincipal.id(), is(userId)); assertThat(atnPrincipal.getName(), is(userId)); @@ -379,8 +377,8 @@ public void testRsaBothWays() { ProviderRequest atnRequest = mockRequest(signedToken); AuthenticationResponse authenticationResponse = provider.syncAuthenticate(atnRequest); - OptionalHelper.from(authenticationResponse.user() - .map(Subject::principal)) + authenticationResponse.user() + .map(Subject::principal) .ifPresentOrElse(atnPrincipal -> { assertThat(atnPrincipal.id(), is(userId)); assertThat(atnPrincipal.getName(), is(username)); diff --git a/microprofile/server/src/main/java/io/helidon/microprofile/server/ServerImpl.java b/microprofile/server/src/main/java/io/helidon/microprofile/server/ServerImpl.java index 5bc53c07bd6..0d86e3f7073 100644 --- a/microprofile/server/src/main/java/io/helidon/microprofile/server/ServerImpl.java +++ b/microprofile/server/src/main/java/io/helidon/microprofile/server/ServerImpl.java @@ -46,7 +46,6 @@ import javax.ws.rs.core.Response; import javax.ws.rs.ext.ExceptionMapper; -import io.helidon.common.OptionalHelper; import io.helidon.common.Prioritized; import io.helidon.common.context.Context; import io.helidon.common.http.Http; @@ -130,9 +129,8 @@ private static boolean recordInitFinish(long time) { .port(builder.port()) .bindAddress(listenHost); - OptionalHelper.from(Optional.ofNullable(builder.basePath())) + Optional.ofNullable(builder.basePath()) .or(() -> config.get("server.base-path").asString().asOptional()) - .asOptional() .ifPresent(basePath -> { routingBuilder.any("/", (req, res) -> { res.status(Http.Status.MOVED_PERMANENTLY_301); diff --git a/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java b/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java index f3c55b0a148..ae0b8c91f9e 100644 --- a/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java +++ b/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java @@ -27,7 +27,6 @@ import javax.interceptor.InvocationContext; import javax.ws.rs.Path; -import io.helidon.common.OptionalHelper; import io.helidon.common.context.Context; import io.helidon.common.context.Contexts; import io.helidon.tracing.jersey.client.ClientTracingFilter; @@ -117,9 +116,8 @@ private Optional locateParent() { } Optional context = Contexts.context(); - return OptionalHelper.from(context.flatMap(ctx -> ctx.get(SpanContext.class))) - .or(() -> context.flatMap(ctx -> ctx.get(ClientTracingFilter.class, SpanContext.class))) - .asOptional(); + return context.flatMap(ctx -> ctx.get(SpanContext.class)) + .or(() -> context.flatMap(ctx -> ctx.get(ClientTracingFilter.class, SpanContext.class))); } private Tracer locateTracer() { diff --git a/security/abac/scope/src/main/java/io/helidon/security/abac/scope/ScopeValidator.java b/security/abac/scope/src/main/java/io/helidon/security/abac/scope/ScopeValidator.java index 6c1cbcc073a..9bf51b2a4ce 100644 --- a/security/abac/scope/src/main/java/io/helidon/security/abac/scope/ScopeValidator.java +++ b/security/abac/scope/src/main/java/io/helidon/security/abac/scope/ScopeValidator.java @@ -34,7 +34,6 @@ import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.security.EndpointConfig; import io.helidon.security.Grant; @@ -130,48 +129,50 @@ public ScopesConfig fromAnnotations(EndpointConfig endpointConfig) { @Override public void validate(ScopesConfig config, Errors.Collector collector, ProviderRequest request) { - OptionalHelper.from(request.subject()).ifPresentOrElse( - subject -> { - Set requiredScopes = new LinkedHashSet<>(config.requiredScopes()); - int origRequired = requiredScopes.size(); - - if (origRequired == 0) { - collector.hint(this, "There are no required scopes for current request."); - return; - } - - List userScopes = subject.grantsByType(SCOPE_GRANT_TYPE); - - // remove from required scopes - userScopes.stream().map(Grant::getName).forEach(requiredScopes::remove); - int remainingRequired = requiredScopes.size(); - - if (remainingRequired == origRequired) { - collector.fatal(this, "Access requires scopes: " + config.requiredScopes() + ", yet the user is in " - + "neither of them: " + userScopes); - return; - } - - if (remainingRequired == 0) { - // user is in all required scopes - return; - } - - if (useOrOperator) { - // this is sufficient - user is in at least one scope - return; - } - - collector.fatal(this, "User is not in all required scopes: " + config.requiredScopes() + ", user's " - + "scopes: " + userScopes); - - }, () -> { - List requiredScopes = config.requiredScopes(); - if (!requiredScopes.isEmpty()) { - collector.fatal(this, "User not logged int. Required scopes: " + requiredScopes); - } - } - ); + request.subject() + .ifPresentOrElse( + subject -> { + Set requiredScopes = new LinkedHashSet<>(config.requiredScopes()); + int origRequired = requiredScopes.size(); + + if (origRequired == 0) { + collector.hint(this, "There are no required scopes for current request."); + return; + } + + List userScopes = subject.grantsByType(SCOPE_GRANT_TYPE); + + // remove from required scopes + userScopes.stream().map(Grant::getName).forEach(requiredScopes::remove); + int remainingRequired = requiredScopes.size(); + + if (remainingRequired == origRequired) { + collector.fatal(this, + "Access requires scopes: " + config.requiredScopes() + ", yet the user is in " + + "neither of them: " + userScopes); + return; + } + + if (remainingRequired == 0) { + // user is in all required scopes + return; + } + + if (useOrOperator) { + // this is sufficient - user is in at least one scope + return; + } + + collector.fatal(this, "User is not in all required scopes: " + config.requiredScopes() + ", user's " + + "scopes: " + userScopes); + + }, () -> { + List requiredScopes = config.requiredScopes(); + if (!requiredScopes.isEmpty()) { + collector.fatal(this, "User not logged int. Required scopes: " + requiredScopes); + } + } + ); } /** diff --git a/security/integration/common/src/main/java/io/helidon/security/integration/common/CommonTracing.java b/security/integration/common/src/main/java/io/helidon/security/integration/common/CommonTracing.java index 4be9ba56767..7e232eeec5f 100644 --- a/security/integration/common/src/main/java/io/helidon/security/integration/common/CommonTracing.java +++ b/security/integration/common/src/main/java/io/helidon/security/integration/common/CommonTracing.java @@ -18,7 +18,6 @@ import java.util.Optional; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.security.SecurityResponse; import io.helidon.tracing.config.SpanTracingConfig; @@ -103,9 +102,8 @@ public void error(Throwable throwable) { public Optional findParent() { Optional closest = closestSecuritySpan(); - return OptionalHelper.from(closest.map(Span::context)) - .or(() -> parentSpanContext) - .asOptional(); + return closest.map(Span::context) + .or(() -> parentSpanContext); } /** @@ -120,9 +118,7 @@ public Optional findParent() { public Optional findParentSpan() { Optional closest = closestSecuritySpan(); - return OptionalHelper.from(closest) - .or(() -> parentSpan) - .asOptional(); + return closest.or(() -> parentSpan); } /** diff --git a/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcClientSecurity.java b/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcClientSecurity.java index a0053b45dbb..af5af55e0d1 100644 --- a/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcClientSecurity.java +++ b/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcClientSecurity.java @@ -21,7 +21,6 @@ import java.util.Map; import java.util.concurrent.Executor; -import io.helidon.common.OptionalHelper; import io.helidon.security.EndpointConfig; import io.helidon.security.OutboundSecurityClientBuilder; import io.helidon.security.OutboundSecurityResponse; @@ -97,7 +96,7 @@ public void applyRequestMetadata(RequestInfo requestInfo, Executor appExecutor, switch (status) { case FAILURE: case FAILURE_FINISH: - OptionalHelper.from(providerResponse.throwable()) + providerResponse.throwable() .ifPresentOrElse(tracing::error, () -> tracing.error(providerResponse.description().orElse("Failed"))); break; diff --git a/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcSecurityHandler.java b/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcSecurityHandler.java index a5d0529b6f2..b9ca8cbd85f 100644 --- a/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcSecurityHandler.java +++ b/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcSecurityHandler.java @@ -34,7 +34,6 @@ import javax.annotation.Priority; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.grpc.core.InterceptorPriorities; import io.helidon.grpc.server.ServiceDescriptor; @@ -926,7 +925,7 @@ private Builder configureFrom(GrpcSecurityHandler handler) { } private Builder customObjects(ClassToInstanceStore store) { - OptionalHelper.from(customObjects) + customObjects .ifPresentOrElse(myStore -> myStore.putAll(store), () -> { ClassToInstanceStore ctis = new ClassToInstanceStore<>(); ctis.putAll(store); @@ -1004,7 +1003,7 @@ Builder authenticate(boolean authenticate) { * @return updated builder instance */ Builder customObject(Object object) { - OptionalHelper.from(customObjects) + customObjects .ifPresentOrElse(store -> store.putInstance(object), () -> { ClassToInstanceStore ctis = new ClassToInstanceStore<>(); ctis.putInstance(object); @@ -1058,7 +1057,7 @@ Builder audit(boolean audited) { } Builder rolesAllowed(Collection roles) { - OptionalHelper.from(rolesAllowed).ifPresentOrElse(strings -> strings.addAll(roles), + rolesAllowed.ifPresentOrElse(strings -> strings.addAll(roles), () -> { Set newRoles = new HashSet<>(roles); rolesAllowed = Optional.of(newRoles); diff --git a/security/integration/jersey-client/src/main/java/io/helidon/security/integration/jersey/client/ClientSecurityFilter.java b/security/integration/jersey-client/src/main/java/io/helidon/security/integration/jersey/client/ClientSecurityFilter.java index ea6c252ed01..1c2c3da1e32 100644 --- a/security/integration/jersey-client/src/main/java/io/helidon/security/integration/jersey/client/ClientSecurityFilter.java +++ b/security/integration/jersey-client/src/main/java/io/helidon/security/integration/jersey/client/ClientSecurityFilter.java @@ -31,7 +31,6 @@ import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.ext.Provider; -import io.helidon.common.OptionalHelper; import io.helidon.common.context.Contexts; import io.helidon.security.EndpointConfig; import io.helidon.security.OutboundSecurityClientBuilder; @@ -121,7 +120,7 @@ private void outboundSecurity(ClientRequestContext requestContext, SecurityConte switch (status) { case FAILURE: case FAILURE_FINISH: - OptionalHelper.from(providerResponse.throwable()) + providerResponse.throwable() .ifPresentOrElse(tracing::error, () -> tracing.error(providerResponse.description().orElse("Failed"))); @@ -155,21 +154,17 @@ private void outboundSecurity(ClientRequestContext requestContext, SecurityConte } private Optional findContext(ClientRequestContext requestContext) { - return OptionalHelper - // from client property - .from(property(requestContext, SecurityContext.class, ClientSecurity.PROPERTY_CONTEXT)) - // then look for security context in context - .or(() -> Contexts.context().flatMap(ctx -> ctx.get(SecurityContext.class))) - .asOptional(); + return // client property + property(requestContext, SecurityContext.class, ClientSecurity.PROPERTY_CONTEXT) + // then look for security context in context + .or(() -> Contexts.context().flatMap(ctx -> ctx.get(SecurityContext.class))); } private static Optional property(ClientRequestContext requestContext, Class clazz, String propertyName) { - return OptionalHelper.from(Optional.empty()) - .or(() -> Optional.ofNullable(requestContext.getProperty(propertyName)) - .filter(clazz::isInstance)) + return Optional.ofNullable(requestContext.getProperty(propertyName)) + .filter(clazz::isInstance) .or(() -> Optional.ofNullable(requestContext.getConfiguration().getProperty(propertyName)) .filter(clazz::isInstance)) - .asOptional() .map(clazz::cast); } } diff --git a/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/ClientSecurityFilter.java b/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/ClientSecurityFilter.java index 0abcd45530c..5eff1327ac7 100644 --- a/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/ClientSecurityFilter.java +++ b/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/ClientSecurityFilter.java @@ -29,7 +29,6 @@ import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.ext.Provider; -import io.helidon.common.OptionalHelper; import io.helidon.common.context.Contexts; import io.helidon.security.EndpointConfig; import io.helidon.security.OutboundSecurityClientBuilder; @@ -78,7 +77,7 @@ private void doFilter(ClientRequestContext requestContext) { // from there // first try to find the context on request configuration - OptionalHelper.from(findContext(requestContext)) + findContext(requestContext) .or(() -> Contexts.context().flatMap(ctx -> ctx.get(SecurityContext.class))) .ifPresentOrElse(securityContext -> outboundSecurity(requestContext, securityContext), () -> LOGGER.finest("Security not propagated, as security context is not available " @@ -121,7 +120,7 @@ private void outboundSecurity(ClientRequestContext requestContext, SecurityConte switch (status) { case FAILURE: case FAILURE_FINISH: - OptionalHelper.from(providerResponse.throwable()) + providerResponse.throwable() .ifPresentOrElse(tracing::error, () -> tracing.error(providerResponse.description().orElse("Failed"))); diff --git a/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/SecurityFilter.java b/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/SecurityFilter.java index 9b7160c6845..889d7d12615 100644 --- a/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/SecurityFilter.java +++ b/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/SecurityFilter.java @@ -43,7 +43,6 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; -import io.helidon.common.OptionalHelper; import io.helidon.common.reactive.OutputStreamPublisher; import io.helidon.common.serviceloader.HelidonServiceLoader; import io.helidon.config.Config; @@ -237,9 +236,8 @@ public void filter(ContainerRequestContext requestContext, ContainerResponseCont .addParam(AuditEvent.AuditParam.plain("path", fc.getResourcePath())) .addParam(AuditEvent.AuditParam.plain("status", String.valueOf(responseContext.getStatus()))) .addParam(AuditEvent.AuditParam.plain("subject", - OptionalHelper.from(securityContext.user()) + securityContext.user() .or(securityContext::service) - .asOptional() .orElse(SecurityContext.ANONYMOUS))) .addParam(AuditEvent.AuditParam.plain("transport", "http")) .addParam(AuditEvent.AuditParam.plain("resourceType", fc.getResourceName())) diff --git a/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/SecurityHandler.java b/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/SecurityHandler.java index a832af3119f..2d10bf17977 100644 --- a/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/SecurityHandler.java +++ b/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/SecurityHandler.java @@ -38,7 +38,6 @@ import java.util.logging.Logger; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.DataChunk; import io.helidon.common.http.Http; import io.helidon.config.Config; @@ -1016,7 +1015,7 @@ private Builder configureFrom(SecurityHandler handler) { } private Builder customObjects(ClassToInstanceStore store) { - OptionalHelper.from(customObjects) + customObjects .ifPresentOrElse(myStore -> myStore.putAll(store), () -> { ClassToInstanceStore ctis = new ClassToInstanceStore<>(); ctis.putAll(store); @@ -1105,7 +1104,7 @@ Builder authenticate(boolean authenticate) { * @return updated builder instance */ Builder customObject(Object object) { - OptionalHelper.from(customObjects) + customObjects .ifPresentOrElse(store -> store.putInstance(object), () -> { ClassToInstanceStore ctis = new ClassToInstanceStore<>(); ctis.putInstance(object); @@ -1159,7 +1158,7 @@ Builder audit(boolean audited) { } Builder rolesAllowed(Collection roles) { - OptionalHelper.from(rolesAllowed).ifPresentOrElse(strings -> strings.addAll(roles), + rolesAllowed.ifPresentOrElse(strings -> strings.addAll(roles), () -> { Set newRoles = new HashSet<>(roles); rolesAllowed = Optional.of(newRoles); diff --git a/security/jwt/src/main/java/io/helidon/security/jwt/Jwt.java b/security/jwt/src/main/java/io/helidon/security/jwt/Jwt.java index b924e9ca291..ca8e17fcbb9 100644 --- a/security/jwt/src/main/java/io/helidon/security/jwt/Jwt.java +++ b/security/jwt/src/main/java/io/helidon/security/jwt/Jwt.java @@ -43,7 +43,6 @@ import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; -import io.helidon.common.OptionalHelper; import io.helidon.security.jwt.jwk.Jwk; /** @@ -285,10 +284,9 @@ public class Jwt { this.cHash = JwtUtil.getByteArray(payloadJson, "c_hash", "c_hash value"); this.nonce = JwtUtil.getString(payloadJson, "nonce"); this.scopes = JwtUtil.toScopes(payloadJson); - this.userPrincipal = OptionalHelper.from(JwtUtil.getString(payloadJson, "upn")) + this.userPrincipal = JwtUtil.getString(payloadJson, "upn") .or(() -> preferredUsername) - .or(() -> subject) - .asOptional(); + .or(() -> subject); } private Jwt(Builder builder) { @@ -299,48 +297,39 @@ private Jwt(Builder builder) { this.payloadClaims.putAll(JwtUtil.transformToJson(builder.payloadClaims)); // known headers - this.algorithm = OptionalHelper.from(builder.algorithm).or(() -> toOptionalString(builder.payloadClaims, "alg")) - .asOptional(); - this.keyId = OptionalHelper.from(builder.keyId).or(() -> toOptionalString(builder.payloadClaims, "kid")).asOptional(); - this.type = OptionalHelper.from(builder.type).or(() -> toOptionalString(builder.payloadClaims, "typ")).asOptional(); - this.contentType = OptionalHelper.from(builder.contentType).or(() -> toOptionalString(builder.payloadClaims, "cty")) - .asOptional(); + this.algorithm = builder.algorithm.or(() -> toOptionalString(builder.payloadClaims, "alg")); + this.keyId = builder.keyId.or(() -> toOptionalString(builder.payloadClaims, "kid")); + this.type = builder.type.or(() -> toOptionalString(builder.payloadClaims, "typ")); + this.contentType = builder.contentType.or(() -> toOptionalString(builder.payloadClaims, "cty")); // known payload this.issuer = builder.issuer; this.expirationTime = builder.expirationTime; this.issueTime = builder.issueTime; this.notBefore = builder.notBefore; - this.subject = OptionalHelper.from(builder.subject).or(() -> toOptionalString(builder.payloadClaims, "sub")).asOptional(); + this.subject = builder.subject.or(() -> toOptionalString(builder.payloadClaims, "sub")); this.audience = builder.audience; this.jwtId = builder.jwtId; - this.email = OptionalHelper.from(builder.email).or(() -> toOptionalString(builder.payloadClaims, "email")).asOptional(); - this.emailVerified = OptionalHelper.from(builder.emailVerified) - .or(() -> getClaim(builder.payloadClaims, "email_verified")).asOptional(); - this.fullName = OptionalHelper.from(builder.fullName).or(() -> toOptionalString(builder.payloadClaims, "name")) - .asOptional(); - this.givenName = OptionalHelper.from(builder.givenName).or(() -> toOptionalString(builder.payloadClaims, "given_name")) - .asOptional(); - this.middleName = OptionalHelper.from(builder.middleName).or(() -> toOptionalString(builder.payloadClaims, "middle_name")) - .asOptional(); - this.familyName = OptionalHelper.from(builder.familyName).or(() -> toOptionalString(builder.payloadClaims, "family_name")) - .asOptional(); - this.locale = OptionalHelper.from(builder.locale).or(() -> getClaim(builder.payloadClaims, "locale")).asOptional(); - this.nickname = OptionalHelper.from(builder.nickname).or(() -> toOptionalString(builder.payloadClaims, "nickname")) - .asOptional(); - this.preferredUsername = OptionalHelper.from(builder.preferredUsername) - .or(() -> toOptionalString(builder.payloadClaims, "preferred_username")).asOptional(); - this.profile = OptionalHelper.from(builder.profile).or(() -> getClaim(builder.payloadClaims, "profile")).asOptional(); - this.picture = OptionalHelper.from(builder.picture).or(() -> getClaim(builder.payloadClaims, "picture")).asOptional(); - this.website = OptionalHelper.from(builder.website).or(() -> getClaim(builder.payloadClaims, "website")).asOptional(); - this.gender = OptionalHelper.from(builder.gender).or(() -> toOptionalString(builder.payloadClaims, "gender")) - .asOptional(); - this.birthday = OptionalHelper.from(builder.birthday).or(() -> getClaim(builder.payloadClaims, "birthday")).asOptional(); - this.timeZone = OptionalHelper.from(builder.timeZone).or(() -> getClaim(builder.payloadClaims, "zoneinfo")).asOptional(); - this.phoneNumber = OptionalHelper.from(builder.phoneNumber) - .or(() -> toOptionalString(builder.payloadClaims, "phone_number")).asOptional(); - this.phoneNumberVerified = OptionalHelper.from(builder.phoneNumberVerified) - .or(() -> getClaim(builder.payloadClaims, "phone_number_verified")).asOptional(); + this.email = builder.email.or(() -> toOptionalString(builder.payloadClaims, "email")); + this.emailVerified = builder.emailVerified.or(() -> getClaim(builder.payloadClaims, "email_verified")); + this.fullName = builder.fullName.or(() -> toOptionalString(builder.payloadClaims, "name")); + this.givenName = builder.givenName.or(() -> toOptionalString(builder.payloadClaims, "given_name")); + this.middleName = builder.middleName.or(() -> toOptionalString(builder.payloadClaims, "middle_name")); + this.familyName = builder.familyName.or(() -> toOptionalString(builder.payloadClaims, "family_name")); + this.locale = builder.locale.or(() -> getClaim(builder.payloadClaims, "locale")); + this.nickname = builder.nickname.or(() -> toOptionalString(builder.payloadClaims, "nickname")); + this.preferredUsername = builder.preferredUsername + .or(() -> toOptionalString(builder.payloadClaims, "preferred_username")); + this.profile = builder.profile.or(() -> getClaim(builder.payloadClaims, "profile")); + this.picture = builder.picture.or(() -> getClaim(builder.payloadClaims, "picture")); + this.website = builder.website.or(() -> getClaim(builder.payloadClaims, "website")); + this.gender = builder.gender.or(() -> toOptionalString(builder.payloadClaims, "gender")); + this.birthday = builder.birthday.or(() -> getClaim(builder.payloadClaims, "birthday")); + this.timeZone = builder.timeZone.or(() -> getClaim(builder.payloadClaims, "zoneinfo")); + this.phoneNumber = builder.phoneNumber + .or(() -> toOptionalString(builder.payloadClaims, "phone_number")); + this.phoneNumberVerified = builder.phoneNumberVerified + .or(() -> getClaim(builder.payloadClaims, "phone_number_verified")); this.updatedAt = builder.updatedAt; this.address = builder.address; @@ -349,11 +338,10 @@ private Jwt(Builder builder) { this.nonce = builder.nonce; this.scopes = builder.scopes; - this.userPrincipal = OptionalHelper.from(builder.userPrincipal) + this.userPrincipal = builder.userPrincipal .or(() -> toOptionalString(builder.payloadClaims, "upn")) .or(() -> preferredUsername) - .or(() -> subject) - .asOptional(); + .or(() -> subject); this.userGroups = builder.userGroups; } @@ -1350,7 +1338,7 @@ public Builder scopes(List scopes) { * @return updated builder instance */ public Builder addScope(String scope) { - this.scopes = OptionalHelper.from(this.scopes).or(() -> Optional.of(new LinkedList<>())).asOptional(); + this.scopes = this.scopes.or(() -> Optional.of(new LinkedList<>())); this.scopes.ifPresent(it -> it.add(scope)); return this; } @@ -1363,7 +1351,7 @@ public Builder addScope(String scope) { * @return updated builder instance */ public Builder addUserGroup(String group) { - this.userGroups = OptionalHelper.from(this.userGroups).or(() -> Optional.of(new LinkedList<>())).asOptional(); + this.userGroups = this.userGroups.or(() -> Optional.of(new LinkedList<>())); this.userGroups.ifPresent(it -> it.add(group)); return this; } diff --git a/security/jwt/src/main/java/io/helidon/security/jwt/jwk/Jwk.java b/security/jwt/src/main/java/io/helidon/security/jwt/jwk/Jwk.java index 72e05a34d28..b6e765cd9e8 100644 --- a/security/jwt/src/main/java/io/helidon/security/jwt/jwk/Jwk.java +++ b/security/jwt/src/main/java/io/helidon/security/jwt/jwk/Jwk.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import javax.json.JsonObject; -import io.helidon.common.OptionalHelper; import io.helidon.security.jwt.JwtException; import static io.helidon.security.jwt.JwtUtil.asString; @@ -305,9 +304,8 @@ public final byte[] sign(byte[] bytesToSign) { abstract byte[] doSign(byte[] bytesToSign); boolean supports(String use, String operation) { - Boolean result = OptionalHelper.from(operations.map(ops -> ops.contains(operation))) + Boolean result = operations.map(ops -> ops.contains(operation)) .or(() -> usage.map(usage -> usage.equals(use))) - .asOptional() .orElse(true); if (!result && "verify".equals(operation)) { diff --git a/security/jwt/src/main/java/io/helidon/security/jwt/jwk/JwkPki.java b/security/jwt/src/main/java/io/helidon/security/jwt/jwk/JwkPki.java index 2c57ed5b1e8..c68e87df42c 100644 --- a/security/jwt/src/main/java/io/helidon/security/jwt/jwk/JwkPki.java +++ b/security/jwt/src/main/java/io/helidon/security/jwt/jwk/JwkPki.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,7 +34,6 @@ import javax.json.JsonObject; -import io.helidon.common.OptionalHelper; import io.helidon.security.jwt.JwtException; import io.helidon.security.jwt.JwtUtil; @@ -245,13 +244,12 @@ public T sha256Thumbprint(byte[] thumbprint) { T fromJson(JsonObject json) { super.fromJson(json); // get cert chain from URL or from fields if present - OptionalHelper.from(JwtUtil.getString(json, PARAM_X509_CHAIN_URL) + JwtUtil.getString(json, PARAM_X509_CHAIN_URL) .map(URI::create) - .map(Builder::processCertChain)) + .map(Builder::processCertChain) .or(() -> JwtUtil.getStrings(json, PARAM_X509_CHAIN) // certificate chain as base64 encoded array .map(Builder::processCertChain)) - .asOptional() .ifPresent(this::certificateChain); // thumbprints diff --git a/security/jwt/src/test/java/io/helidon/security/jwt/jwk/JwkKeysTest.java b/security/jwt/src/test/java/io/helidon/security/jwt/jwk/JwkKeysTest.java index eadbbbe8bf0..61a9fa3684e 100644 --- a/security/jwt/src/test/java/io/helidon/security/jwt/jwk/JwkKeysTest.java +++ b/security/jwt/src/test/java/io/helidon/security/jwt/jwk/JwkKeysTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import java.util.Optional; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.configurable.Resource; import io.helidon.security.jwt.JwtException; @@ -104,7 +103,7 @@ public void testUseEnc() { @Test public void testAuth0JwkDocument() { String keyId = "QzBCMDM1QTI2MjRFMTFDNDBDRTYwRkU4RDdEMzU5RTcwNDRBNjhCNQ"; - OptionalHelper.from(auth0Keys.forKeyId(keyId)).ifPresentOrElse(key -> { + auth0Keys.forKeyId(keyId).ifPresentOrElse(key -> { assertThat(key.algorithm(), is(JwkRSA.ALG_RS256)); assertThat(key.keyType(), is(Jwk.KEY_TYPE_RSA)); assertThat(key.usage(), is(Optional.of(Jwk.USE_SIGNATURE))); @@ -146,7 +145,7 @@ public void testNone() { } private void testRsa(String keyId, String algorithm) { - OptionalHelper.from(customKeys.forKeyId(keyId)).ifPresentOrElse(key -> { + customKeys.forKeyId(keyId).ifPresentOrElse(key -> { assertThat(key.algorithm(), is(algorithm)); assertThat(key.keyType(), is(Jwk.KEY_TYPE_RSA)); assertThat(key.usage(), is(Optional.of(Jwk.USE_SIGNATURE))); @@ -189,7 +188,7 @@ public void testEc() { } private void testEc(String keyId, String algorithm) { - OptionalHelper.from(customKeys.forKeyId(keyId)).ifPresentOrElse(key -> { + customKeys.forKeyId(keyId).ifPresentOrElse(key -> { assertThat(key.algorithm(), is(algorithm)); assertThat(key.keyType(), is(Jwk.KEY_TYPE_EC)); assertThat(key.usage(), is(Optional.of(Jwk.USE_SIGNATURE))); @@ -224,7 +223,7 @@ public void testOct() { } private void testOct(String keyId, String algorithm) { - OptionalHelper.from(customKeys.forKeyId(keyId)).ifPresentOrElse(key -> { + customKeys.forKeyId(keyId).ifPresentOrElse(key -> { assertThat(key.algorithm(), is(algorithm)); assertThat(key.keyType(), is(Jwk.KEY_TYPE_OCT)); assertThat(key.usage(), is(Optional.of(Jwk.USE_SIGNATURE))); @@ -253,7 +252,7 @@ private void testOct(String keyId, String algorithm) { @Test public void testCustomOct() { String keyId = "hmac-secret-001"; - OptionalHelper.from(customKeys.forKeyId(keyId)).ifPresentOrElse(key -> { + customKeys.forKeyId(keyId).ifPresentOrElse(key -> { assertThat(key.algorithm(), is(JwkOctet.ALG_HS256)); assertThat(key.keyType(), is(Jwk.KEY_TYPE_OCT)); assertThat(key.usage(), is(Optional.empty())); @@ -284,7 +283,7 @@ public void testCustomOct() { public void testECUsingBuilder() { //hack this a bit, so I do not have to create a key pair in java String fileKeyid = "ec-secret-001"; - OptionalHelper.from(customKeys.forKeyId(fileKeyid)).ifPresentOrElse(keyFromFile -> { + customKeys.forKeyId(fileKeyid).ifPresentOrElse(keyFromFile -> { String keyId = "some_key_id"; //the key must be an EC key JwkEC ec = (JwkEC) keyFromFile; @@ -301,7 +300,7 @@ public void testECUsingBuilder() { .addKey(ecKey) .build(); - OptionalHelper.from(keys.forKeyId(keyId)).ifPresentOrElse(key -> { + keys.forKeyId(keyId).ifPresentOrElse(key -> { assertThat(key.algorithm(), is(JwkEC.ALG_ES256)); assertThat(key.keyType(), is(Jwk.KEY_TYPE_EC)); assertThat(key.usage(), is(Optional.of(Jwk.USE_SIGNATURE))); diff --git a/security/providers/abac/src/main/java/io/helidon/security/providers/abac/AbacProvider.java b/security/providers/abac/src/main/java/io/helidon/security/providers/abac/AbacProvider.java index 719fe68a053..fb0ee92f789 100644 --- a/security/providers/abac/src/main/java/io/helidon/security/providers/abac/AbacProvider.java +++ b/security/providers/abac/src/main/java/io/helidon/security/providers/abac/AbacProvider.java @@ -33,7 +33,6 @@ import javax.annotation.security.RolesAllowed; import io.helidon.common.Errors; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.security.AuthorizationResponse; import io.helidon.security.EndpointConfig; @@ -145,7 +144,7 @@ protected AuthorizationResponse syncAuthorize(ProviderRequest providerRequest) { if (customObject.isPresent()) { attributes.add(new RuntimeAttribute(validator, customObject.get())); } else { - OptionalHelper.from(epConfig.config(configKey)) + epConfig.config(configKey) .ifPresentOrElse(attribConfig -> attributes .add(new RuntimeAttribute(validator, validator.fromConfig(attribConfig))), () -> { List annotationConfig = new ArrayList<>(); diff --git a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderTest.java b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderTest.java index d580a2f0599..50cb4d7d7d7 100644 --- a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderTest.java +++ b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import java.util.concurrent.ForkJoinPool; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.security.AuthenticationResponse; import io.helidon.security.EndpointConfig; import io.helidon.security.OutboundSecurityResponse; @@ -58,14 +57,14 @@ public void testInboundSignatureRsa() throws ExecutionException, InterruptedExce headers.put("Signature", CollectionsHelper.listOf("keyId=\"rsa-key-12345\",algorithm=\"rsa-sha256\",headers=\"date " - + "host (request-target) authorization\"," - + "signature=\"Rm5PjuUdJ927esGQ2gm/6QBEM9IM7J5qSZuP8NV8+GXUf" - + "boUV6ST2EYLYniFGt5/3BO/2+vqQdqezdTVPr/JCwqBx+9T9ZynG7YqRj" - + "KvXzcmvQOu5vQmCK5x/HR0fXU41Pjq+jywsD0k6KdxF6TWr6tvWRbwFet" - + "+YSb0088o/65Xeqghw7s0vShf7jPZsaaIHnvM9SjWgix9VvpdEn4NDvqh" - + "ebieVD3Swb1VG5+/7ECQ9VAlX30U5/jQ5hPO3yuvRlg5kkMjJiN7tf/68" - + "If/5O2Z4H+7VmW0b1U69/JoOQJA0av1gCX7HVfa/YTCxIK4UFiI6h963q" - + "2x7LSkqhdWGA==\"")); + + "host (request-target) authorization\"," + + "signature=\"Rm5PjuUdJ927esGQ2gm/6QBEM9IM7J5qSZuP8NV8+GXUf" + + "boUV6ST2EYLYniFGt5/3BO/2+vqQdqezdTVPr/JCwqBx+9T9ZynG7YqRj" + + "KvXzcmvQOu5vQmCK5x/HR0fXU41Pjq+jywsD0k6KdxF6TWr6tvWRbwFet" + + "+YSb0088o/65Xeqghw7s0vShf7jPZsaaIHnvM9SjWgix9VvpdEn4NDvqh" + + "ebieVD3Swb1VG5+/7ECQ9VAlX30U5/jQ5hPO3yuvRlg5kkMjJiN7tf/68" + + "If/5O2Z4H+7VmW0b1U69/JoOQJA0av1gCX7HVfa/YTCxIK4UFiI6h963q" + + "2x7LSkqhdWGA==\"")); headers.put("host", CollectionsHelper.listOf("example.org")); headers.put("date", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); headers.put("authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); @@ -91,8 +90,8 @@ public void testInboundSignatureRsa() throws ExecutionException, InterruptedExce atnResponse.status(), is(SecurityResponse.SecurityStatus.SUCCESS)); - OptionalHelper.from(atnResponse.user() - .map(Subject::principal)) + atnResponse.user() + .map(Subject::principal) .ifPresentOrElse(principal -> { assertThat(principal.getName(), is("aUser")); assertThat(principal.abacAttribute(HttpSignProvider.ATTRIB_NAME_KEY_ID), is(Optional.of("rsa-key-12345"))); @@ -107,8 +106,8 @@ public void testInboundSignatureHmac() throws InterruptedException, ExecutionExc headers.put("Signature", CollectionsHelper .listOf("keyId=\"myServiceKeyId\",algorithm=\"hmac-sha256\",headers=\"date host (request-target) " - + "authorization\"," - + "signature=\"0BcQq9TckrtGvlpHiMxNqMq0vW6dPVTGVDUVDrGwZyI=\"")); + + "authorization\"," + + "signature=\"0BcQq9TckrtGvlpHiMxNqMq0vW6dPVTGVDUVDrGwZyI=\"")); headers.put("host", CollectionsHelper.listOf("example.org")); headers.put("date", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); headers.put("authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); @@ -134,8 +133,8 @@ public void testInboundSignatureHmac() throws InterruptedException, ExecutionExc atnResponse.status(), is(SecurityResponse.SecurityStatus.SUCCESS)); - OptionalHelper.from(atnResponse.service() - .map(Subject::principal)) + atnResponse.service() + .map(Subject::principal) .ifPresentOrElse(principal -> { assertThat(principal.getName(), is("aSetOfTrustedServices")); assertThat(principal.abacAttribute(HttpSignProvider.ATTRIB_NAME_KEY_ID), is(Optional.of("myServiceKeyId"))); diff --git a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignatureTest.java b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignatureTest.java index c25b062b0d6..1fdcc6e0605 100644 --- a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignatureTest.java +++ b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignatureTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import java.util.TreeMap; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.configurable.Resource; import io.helidon.common.pki.KeyConfig; import io.helidon.security.SecurityEnvironment; @@ -107,7 +106,7 @@ public void testInvalid1() { HttpSignature httpSignature = HttpSignature.fromHeader(invalidSignature); Optional validate = httpSignature.validate(); - OptionalHelper.from(validate).ifPresentOrElse(msg -> assertThat(msg, containsString("signature is a mandatory")), + validate.ifPresentOrElse(msg -> assertThat(msg, containsString("signature is a mandatory")), () -> fail("Should have failed validation")); } @@ -118,7 +117,7 @@ public void testInvalid2() { HttpSignature httpSignature = HttpSignature.fromHeader(invalidSignature); Optional validate = httpSignature.validate(); - OptionalHelper.from(validate).ifPresentOrElse(msg -> assertThat(msg, containsString("keyId is a mandatory")), + validate.ifPresentOrElse(msg -> assertThat(msg, containsString("keyId is a mandatory")), () -> fail("Should have failed validation")); } diff --git a/security/providers/jwt/src/main/java/io/helidon/security/providers/jwt/JwtProvider.java b/security/providers/jwt/src/main/java/io/helidon/security/providers/jwt/JwtProvider.java index e5c5b45b034..10ac750e5ef 100644 --- a/security/providers/jwt/src/main/java/io/helidon/security/providers/jwt/JwtProvider.java +++ b/security/providers/jwt/src/main/java/io/helidon/security/providers/jwt/JwtProvider.java @@ -26,7 +26,6 @@ import java.util.logging.Logger; import io.helidon.common.Errors; -import io.helidon.common.OptionalHelper; import io.helidon.common.configurable.Resource; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; @@ -338,7 +337,7 @@ private OutboundSecurityResponse propagate(JwtOutboundTarget ot, Subject subject principal.abacAttribute(name).ifPresent(val -> builder.addPayloadClaim(name, val)); }); - OptionalHelper.from(principal.abacAttribute("full_name")) + principal.abacAttribute("full_name") .ifPresentOrElse(name -> builder.addPayloadClaim("name", name), () -> builder.removePayloadClaim("name")); diff --git a/security/providers/jwt/src/test/java/io/helidon/security/providers/jwt/JwtProviderTest.java b/security/providers/jwt/src/test/java/io/helidon/security/providers/jwt/JwtProviderTest.java index 33c90ef3353..1756301b03c 100644 --- a/security/providers/jwt/src/test/java/io/helidon/security/providers/jwt/JwtProviderTest.java +++ b/security/providers/jwt/src/test/java/io/helidon/security/providers/jwt/JwtProviderTest.java @@ -24,7 +24,6 @@ import java.util.Optional; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.configurable.Resource; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; @@ -170,8 +169,8 @@ public void testEcBothWays() { when(atnRequest.env()).thenReturn(se); AuthenticationResponse authenticationResponse = provider.syncAuthenticate(atnRequest); - OptionalHelper.from(authenticationResponse.user() - .map(Subject::principal)) + authenticationResponse.user() + .map(Subject::principal) .ifPresentOrElse(atnPrincipal -> { assertThat(atnPrincipal.id(), is(userId)); assertThat(atnPrincipal.getName(), is(username)); @@ -244,8 +243,8 @@ public void testInvalidSignatureOk() { when(atnRequest.env()).thenReturn(se); AuthenticationResponse authenticationResponse = provider.syncAuthenticate(atnRequest); - OptionalHelper.from(authenticationResponse.user() - .map(Subject::principal)) + authenticationResponse.user() + .map(Subject::principal) .ifPresentOrElse(atnPrincipal -> { assertThat(atnPrincipal.id(), is(userId)); assertThat(atnPrincipal.getName(), is(username)); @@ -382,8 +381,8 @@ public void testOctBothWays() { when(atnRequest.env()).thenReturn(se); AuthenticationResponse authenticationResponse = provider.syncAuthenticate(atnRequest); - OptionalHelper.from(authenticationResponse.user() - .map(Subject::principal)) + authenticationResponse.user() + .map(Subject::principal) .ifPresentOrElse(atnPrincipal -> { assertThat(atnPrincipal.id(), is(userId)); assertThat(atnPrincipal.getName(), is(userId)); @@ -477,8 +476,8 @@ public void testRsaBothWays() { when(atnRequest.env()).thenReturn(se); AuthenticationResponse authenticationResponse = provider.syncAuthenticate(atnRequest); - OptionalHelper.from(authenticationResponse.user() - .map(Subject::principal)) + authenticationResponse.user() + .map(Subject::principal) .ifPresentOrElse(atnPrincipal -> { assertThat(atnPrincipal.id(), is(userId)); assertThat(atnPrincipal.getName(), is(username)); diff --git a/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcProvider.java b/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcProvider.java index d5c88cadea5..721a5816f36 100644 --- a/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcProvider.java +++ b/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcProvider.java @@ -45,7 +45,6 @@ import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.Http; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; @@ -205,29 +204,28 @@ protected AuthenticationResponse syncAuthenticate(ProviderRequest providerReques try { if (oidcConfig.useHeader()) { - token = OptionalHelper.from(token) - .or(() -> oidcConfig.headerHandler().extractToken(providerRequest.env().headers())) - .asOptional(); - if (!token.isPresent()) { + token = token + .or(() -> oidcConfig.headerHandler().extractToken(providerRequest.env().headers())); + + if (token.isEmpty()) { missingLocations.add("header"); } } if (oidcConfig.useParam()) { - token = OptionalHelper.from(token) - .or(() -> paramHeaderHandler.extractToken(providerRequest.env().headers())) - .asOptional(); + token = token + .or(() -> paramHeaderHandler.extractToken(providerRequest.env().headers())); - if (!token.isPresent()) { + if (token.isEmpty()) { missingLocations.add("query-param"); } } if (oidcConfig.useCookie()) { - token = OptionalHelper.from(token) - .or(() -> findCookie(providerRequest.env().headers())) - .asOptional(); - if (!token.isPresent()) { + token = token + .or(() -> findCookie(providerRequest.env().headers())); + + if (token.isEmpty()) { missingLocations.add("cookie"); } } diff --git a/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcSupport.java b/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcSupport.java index 31f0ef9e158..1bbae6676ad 100644 --- a/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcSupport.java +++ b/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcSupport.java @@ -32,7 +32,6 @@ import javax.ws.rs.core.Response; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.Http; import io.helidon.config.Config; import io.helidon.security.Security; @@ -173,7 +172,7 @@ private void processOidcRedirect(ServerRequest req, ServerResponse res) { // redirected from IDCS Optional codeParam = req.queryParams().first(CODE_PARAM_NAME); // if code is not in the request, this is a problem - OptionalHelper.from(codeParam) + codeParam .ifPresentOrElse(code -> processCode(code, req, res), () -> processError(req, res)); } diff --git a/security/security/src/main/java/io/helidon/security/DefaultAuditProvider.java b/security/security/src/main/java/io/helidon/security/DefaultAuditProvider.java index d9410bbbbf1..4f0a5e16f31 100644 --- a/security/security/src/main/java/io/helidon/security/DefaultAuditProvider.java +++ b/security/security/src/main/java/io/helidon/security/DefaultAuditProvider.java @@ -22,7 +22,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; import io.helidon.security.spi.AuditProvider; @@ -99,7 +98,7 @@ private void logEvent(String tracingId, TracedAuditEvent event, Level level) { String finalMsg = msg; - OptionalHelper.from(event.throwable()) + event.throwable() .ifPresentOrElse(throwable -> auditLogger.log(level, finalMsg, throwable), () -> auditLogger.log(level, finalMsg)); diff --git a/security/security/src/main/java/io/helidon/security/ProviderRequest.java b/security/security/src/main/java/io/helidon/security/ProviderRequest.java index dbac5644c74..4cfbac2f9c8 100644 --- a/security/security/src/main/java/io/helidon/security/ProviderRequest.java +++ b/security/security/src/main/java/io/helidon/security/ProviderRequest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,7 +27,6 @@ import java.util.logging.Logger; import java.util.stream.Collectors; -import io.helidon.common.OptionalHelper; import io.helidon.security.util.AbacSupport; /** @@ -125,12 +124,11 @@ public static Optional getValue(Object object, String key) { //now check accessor methods String capName = capitalize(key); - return OptionalHelper.from(getMethod(aClass, "get" + capName)) + return getMethod(aClass, "get" + capName) .or(() -> getMethod(aClass, key)) .or(() -> getMethod(aClass, "is" + capName)) .or(() -> getMethod(aClass, "has" + capName)) .or(() -> getMethod(aClass, "should" + capName)) - .asOptional() .map(method -> { try { return method.invoke(object); diff --git a/security/security/src/main/java/io/helidon/security/Subject.java b/security/security/src/main/java/io/helidon/security/Subject.java index e00be4b3780..4905e2a41b2 100644 --- a/security/security/src/main/java/io/helidon/security/Subject.java +++ b/security/security/src/main/java/io/helidon/security/Subject.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,7 +29,6 @@ import java.util.stream.Collectors; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.security.util.AbacSupport; /** @@ -171,7 +170,7 @@ public javax.security.auth.Subject toJavaSubject() { Set principals = new LinkedHashSet<>(this.principals); for (String key : attributes.abacAttributeNames()) { - OptionalHelper.from(attributes.abacAttribute(key)) + attributes.abacAttribute(key) .stream() .filter(prop -> prop instanceof Principal) .map(Principal.class::cast) diff --git a/security/security/src/test/java/io/helidon/security/AuthenticationResponseTest.java b/security/security/src/test/java/io/helidon/security/AuthenticationResponseTest.java index 81af57e0a00..978d374f203 100644 --- a/security/security/src/test/java/io/helidon/security/AuthenticationResponseTest.java +++ b/security/security/src/test/java/io/helidon/security/AuthenticationResponseTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,8 +18,6 @@ import java.util.Optional; -import io.helidon.common.OptionalHelper; - import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.is; @@ -40,7 +38,7 @@ public void testFail() { assertThat(response.status(), is(SecurityResponse.SecurityStatus.FAILURE)); assertThat(response.user(), is(Optional.empty())); assertThat(response.service(), is(Optional.empty())); - OptionalHelper.from(response.description()) + response.description() .ifPresentOrElse(it -> assertThat(it, is(message)), () -> fail("Description should have been filled")); response.throwable().ifPresent(it -> fail("Throwable should not be filled")); } @@ -55,9 +53,9 @@ public void testFailWithException() { assertThat(response.status(), is(SecurityResponse.SecurityStatus.FAILURE)); assertThat(response.user(), is(Optional.empty())); assertThat(response.service(), is(Optional.empty())); - OptionalHelper.from(response.description()) + response.description() .ifPresentOrElse(it -> assertThat(it, is(message)), () -> fail("Description should have been filled")); - OptionalHelper.from(response.throwable()) + response.throwable() .ifPresentOrElse(it -> assertThat(it, sameInstance(throwable)), () -> fail("Throwable should not be filled")); } diff --git a/security/security/src/test/java/io/helidon/security/EntityHandlingTest.java b/security/security/src/test/java/io/helidon/security/EntityHandlingTest.java index 1c5788ff99a..cb3c6f81448 100644 --- a/security/security/src/test/java/io/helidon/security/EntityHandlingTest.java +++ b/security/security/src/test/java/io/helidon/security/EntityHandlingTest.java @@ -23,7 +23,6 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.Flow; -import io.helidon.common.OptionalHelper; import io.helidon.common.reactive.SubmissionPublisher; import io.helidon.security.providers.ProviderForTesting; @@ -79,7 +78,7 @@ public void reactiveTest() throws Throwable { Optional requestMessage = request.requestEntity(); - OptionalHelper.from(requestMessage).ifPresentOrElse(message -> message.filter(byteBufferPublisher -> { + requestMessage.ifPresentOrElse(message -> message.filter(byteBufferPublisher -> { ByteArrayOutputStream baos = new ByteArrayOutputStream(); SubmissionPublisher bPublisher = new SubmissionPublisher<>(); diff --git a/tracing/config/src/main/java/io/helidon/tracing/config/ComponentTracingConfig.java b/tracing/config/src/main/java/io/helidon/tracing/config/ComponentTracingConfig.java index c9144a5a90e..b00fcb2b01b 100644 --- a/tracing/config/src/main/java/io/helidon/tracing/config/ComponentTracingConfig.java +++ b/tracing/config/src/main/java/io/helidon/tracing/config/ComponentTracingConfig.java @@ -19,7 +19,6 @@ import java.util.Map; import java.util.Optional; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; /** @@ -85,9 +84,8 @@ public Optional getSpan(String spanName) { @Override public Optional isEnabled() { - return OptionalHelper.from(newer.isEnabled()) - .or(older::isEnabled) - .asOptional(); + return newer.isEnabled() + .or(older::isEnabled); } }; } diff --git a/tracing/config/src/main/java/io/helidon/tracing/config/SpanLogTracingConfig.java b/tracing/config/src/main/java/io/helidon/tracing/config/SpanLogTracingConfig.java index 3171d8829a4..8b75422542b 100644 --- a/tracing/config/src/main/java/io/helidon/tracing/config/SpanLogTracingConfig.java +++ b/tracing/config/src/main/java/io/helidon/tracing/config/SpanLogTracingConfig.java @@ -17,7 +17,6 @@ import java.util.Optional; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; /** @@ -52,9 +51,8 @@ static SpanLogTracingConfig merge(SpanLogTracingConfig older, SpanLogTracingConf return new SpanLogTracingConfig(newer.name()) { @Override public Optional isEnabled() { - return OptionalHelper.from(newer.isEnabled()) - .or(older::isEnabled) - .asOptional(); + return newer.isEnabled() + .or(older::isEnabled); } }; } diff --git a/tracing/config/src/main/java/io/helidon/tracing/config/SpanTracingConfig.java b/tracing/config/src/main/java/io/helidon/tracing/config/SpanTracingConfig.java index 475fa20139e..cc638099427 100644 --- a/tracing/config/src/main/java/io/helidon/tracing/config/SpanTracingConfig.java +++ b/tracing/config/src/main/java/io/helidon/tracing/config/SpanTracingConfig.java @@ -19,7 +19,6 @@ import java.util.Map; import java.util.Optional; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; /** @@ -60,16 +59,14 @@ static SpanTracingConfig merge(SpanTracingConfig older, SpanTracingConfig newer) return new SpanTracingConfig(newer.name()) { @Override public Optional newName() { - return OptionalHelper.from(newer.newName()) - .or(older::newName) - .asOptional(); + return newer.newName() + .or(older::newName); } @Override public Optional isEnabled() { - return OptionalHelper.from(newer.isEnabled()) - .or(older::isEnabled) - .asOptional(); + return newer.isEnabled() + .or(older::isEnabled); } @Override diff --git a/tracing/config/src/main/java/io/helidon/tracing/config/TracingConfig.java b/tracing/config/src/main/java/io/helidon/tracing/config/TracingConfig.java index 74fd5ca08dd..7f87402dbb3 100644 --- a/tracing/config/src/main/java/io/helidon/tracing/config/TracingConfig.java +++ b/tracing/config/src/main/java/io/helidon/tracing/config/TracingConfig.java @@ -19,7 +19,6 @@ import java.util.Map; import java.util.Optional; -import io.helidon.common.OptionalHelper; import io.helidon.config.Config; /** @@ -139,9 +138,8 @@ public Optional getComponent(String componentName) { @Override public Optional isEnabled() { - return OptionalHelper.from(newer.isEnabled()) - .or(older::isEnabled) - .asOptional(); + return newer.isEnabled() + .or(older::isEnabled); } }; } diff --git a/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java b/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java index 305d281a2b1..b9a1f0fb68d 100644 --- a/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java +++ b/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java @@ -34,7 +34,6 @@ import javax.ws.rs.core.MultivaluedMap; import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; import io.helidon.common.context.Contexts; import io.helidon.tracing.config.SpanTracingConfig; import io.helidon.tracing.config.TracingConfigUtil; @@ -284,39 +283,33 @@ private Optional findParentSpan(Tracer tracer, ClientRequestContext } // then spans registered in context - return OptionalHelper - // from injected span context - .from(tracingContext.map(TracingContext::parentSpan)) + return // from injected span context + tracingContext.map(TracingContext::parentSpan) // first look for "our" span context (e.g. one registered by a component that is aware that we exist) .or(() -> Contexts.context().flatMap(ctx -> ctx.get(ClientTracingFilter.class, SpanContext.class))) // then look for overall span context - .or(() -> Contexts.context().flatMap(ctx -> ctx.get(SpanContext.class))) - .asOptional(); + .or(() -> Contexts.context().flatMap(ctx -> ctx.get(SpanContext.class))); } private String findSpanName(ClientRequestContext requestContext, SpanTracingConfig spanConfig) { - return OptionalHelper.from(property(requestContext, String.class, SPAN_NAME_PROPERTY_NAME)) + return property(requestContext, String.class, SPAN_NAME_PROPERTY_NAME) .or(spanConfig::newName) - .asOptional() .orElseGet(() -> requestContext.getMethod().toUpperCase()); } private Tracer findTracer(ClientRequestContext requestContext, Optional tracingContext) { - return OptionalHelper.from(property(requestContext, Tracer.class, TRACER_PROPERTY_NAME)) + return property(requestContext, Tracer.class, TRACER_PROPERTY_NAME) .or(() -> tracingContext.map(TracingContext::tracer)) .or(() -> Contexts.context().flatMap(ctx -> ctx.get(Tracer.class))) - .asOptional() .orElseGet(GlobalTracer::get); } private static Optional property(ClientRequestContext requestContext, Class clazz, String propertyName) { - return OptionalHelper.from(Optional.empty()) - .or(() -> Optional.ofNullable(requestContext.getProperty(propertyName)) - .filter(clazz::isInstance)) + return Optional.ofNullable(requestContext.getProperty(propertyName)) + .filter(clazz::isInstance) .or(() -> Optional.ofNullable(requestContext.getConfiguration().getProperty(propertyName)) .filter(clazz::isInstance)) - .asOptional() .map(clazz::cast); } diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/HashResponseHeaders.java b/webserver/webserver/src/main/java/io/helidon/webserver/HashResponseHeaders.java index 00cad28063b..04a82f12f4c 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/HashResponseHeaders.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/HashResponseHeaders.java @@ -37,7 +37,6 @@ import java.util.function.Supplier; import java.util.stream.Collectors; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.AlreadyCompletedException; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; @@ -111,7 +110,7 @@ public void contentType(MediaType contentType) { @Override public OptionalLong contentLength() { - return OptionalHelper.from(first(Http.Header.CONTENT_LENGTH)).stream() + return first(Http.Header.CONTENT_LENGTH).stream() .mapToLong(Long::parseLong).findFirst(); } diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/Response.java b/webserver/webserver/src/main/java/io/helidon/webserver/Response.java index 8f50d3b9820..c40ffc5803f 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/Response.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/Response.java @@ -33,7 +33,6 @@ import java.util.function.Function; import java.util.function.Predicate; -import io.helidon.common.OptionalHelper; import io.helidon.common.http.DataChunk; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; @@ -342,7 +341,7 @@ boolean accept(Object o) { // Test content type compatibility return requestedContentType == null - || OptionalHelper.from(headers().contentType()) + || headers().contentType() .or(() -> { // if no contentType is yet registered, try to write requested try { headers.contentType(requestedContentType); @@ -350,7 +349,7 @@ boolean accept(Object o) { } catch (Exception e) { return Optional.empty(); } - }).asOptional() + }) .filter(requestedContentType) // MediaType is a predicate of compatible media type .isPresent(); } From 135417e1591439465ae17c83229ad3222b95663f Mon Sep 17 00:00:00 2001 From: Tomas Langer Date: Mon, 16 Dec 2019 21:05:21 +0100 Subject: [PATCH 2/8] Remove CollectionsHelper and replace with Set, Map and List methods. Signed-off-by: Tomas Langer --- .../src/main/java/__applicationName__.java.vm | 4 +- .../io/helidon/common/CollectionsHelper.java | 277 ------------------ .../main/java/io/helidon/common/Errors.java | 4 +- .../configurable/ThreadPoolSupplierTest.java | 4 +- .../helidon/common/http/FormParamsImpl.java | 4 +- .../java/io/helidon/common/http/Http.java | 6 +- .../io/helidon/common/http/MediaTypeTest.java | 13 +- .../io/helidon/common/pki/KeyConfigTest.java | 6 +- .../io/helidon/common/reactive/Multi.java | 4 +- .../io/helidon/common/reactive/MultiTest.java | 3 +- .../reactive/valve/ValvePublisherTest.java | 5 +- .../common/reactive/valve/ValvesTest.java | 6 +- .../java/io/helidon/config/BuilderImpl.java | 9 +- .../main/java/io/helidon/config/Config.java | 9 +- .../java/io/helidon/config/ConfigFactory.java | 3 +- .../io/helidon/config/ConfigLeafImpl.java | 8 +- .../helidon/config/ConfigMapperManager.java | 7 +- .../java/io/helidon/config/ConfigMappers.java | 4 +- .../java/io/helidon/config/ConfigSources.java | 3 +- .../java/io/helidon/config/MetaConfig.java | 5 +- .../io/helidon/config/MetaConfigFinder.java | 4 +- .../java/io/helidon/config/MetaProviders.java | 5 +- .../internal/AbstractNodeBuilderImpl.java | 6 +- .../FilesystemWatchPollingStrategy.java | 3 +- .../internal/ObjectNodeBuilderImpl.java | 5 +- .../internal/PropertiesConfigParser.java | 5 +- .../helidon/config/spi/AbstractMpSource.java | 4 +- .../config/spi/ConfigMapperProvider.java | 5 +- .../io/helidon/config/spi/OverrideSource.java | 3 +- .../config/AbstractConfigImplTestBase.java | 4 +- .../config/BuilderImplMappersTest.java | 36 ++- .../config/BuilderImplParsersTest.java | 17 +- .../io/helidon/config/BuilderImplTest.java | 8 +- .../helidon/config/ChainConfigFilterTest.java | 12 +- .../config/CompositeConfigSourceTest.java | 4 +- .../config/ConfigAsciidocGenerator.java | 16 +- .../io/helidon/config/ConfigChangesTest.java | 3 +- .../io/helidon/config/ConfigContextTest.java | 8 +- .../io/helidon/config/ConfigDiffTest.java | 12 +- .../io/helidon/config/ConfigEmptyTest.java | 10 +- .../io/helidon/config/ConfigListImplTest.java | 22 +- .../config/ConfigMapperManagerTest.java | 13 +- .../config/ConfigMappersFailingTest.java | 6 +- .../io/helidon/config/ConfigMappersTest.java | 11 +- .../helidon/config/ConfigObjectImplTest.java | 5 +- .../io/helidon/config/ConfigSourcesTest.java | 9 +- .../io/helidon/config/ConfigValuesTest.java | 6 +- .../config/FallbackMergingStrategyTest.java | 22 +- .../io/helidon/config/FilterLoadingTest.java | 13 +- .../io/helidon/config/HybridNodeTest.java | 6 +- .../config/InMemoryOverrideSourceTest.java | 19 +- .../java/io/helidon/config/MpConfigTest.java | 16 +- .../io/helidon/config/TreeStructureTests.java | 25 +- .../UseFirstAvailableConfigSourceTest.java | 6 +- .../FilesystemWatchPollingStrategyTest.java | 10 +- .../internal/ListNodeBuilderImplTest.java | 7 +- .../config/internal/MapConfigSourceTest.java | 15 +- .../internal/ObjectNodeBuilderImplTest.java | 24 +- .../internal/OverrideConfigFilterTest.java | 4 +- .../config/internal/OverrideSourcesTest.java | 4 +- .../UrlOverrideSourceServerMockTest.java | 12 +- .../internal/ValueResolvingFilterTest.java | 34 +-- .../config/spi/AbstractConfigSourceTest.java | 6 +- .../spi/AbstractParsableConfigSourceTest.java | 12 +- .../config/spi/AbstractSourceTest.java | 4 +- .../encryption/RsaLegacySecureConfigTest.java | 4 +- .../encryption/RsaSecureConfigTest.java | 4 +- .../SecureConfigFromConfigTest.java | 5 +- .../SecureLegacyConfigFromConfigTest.java | 5 +- .../config/etcd/EtcdConfigSourceProvider.java | 3 +- .../etcd/EtcdPollingStrategyProvider.java | 3 +- .../etcd/EtcdConfigSourceBuilderTest.java | 10 +- .../config/etcd/client/EtcdClientIT.java | 4 +- .../config/git/GitConfigSourceProvider.java | 3 +- .../git/GitConfigSourceBuilderTest.java | 10 +- .../hocon/internal/HoconConfigParser.java | 5 +- .../config/hocon/HoconConfigParserTest.java | 9 +- .../ObjectConfigMapperProvider.java | 3 +- .../helidon/config/objectmapping/Value.java | 4 +- .../FactoryMethodConfigMapperTest.java | 34 +-- .../GenericConfigMapperTest.java | 17 +- .../ObjectConfigMapperProviderTest.java | 5 +- .../objectmapping/ReflectionUtilTest.java | 15 +- .../Mappers1ConfigMapperProvider.java | 5 +- ...ppers2Priority100ConfigMapperProvider.java | 5 +- ...ppers2Priority150ConfigMapperProvider.java | 5 +- ...appers2Priority50ConfigMapperProvider.java | 5 +- .../module/meta1/MyConfigSource1Provider.java | 3 +- .../module/meta2/MyConfigSource2Provider.java | 3 +- .../AbstractParsers1ConfigParser.java | 5 +- .../mappers1/AbstractMapperServicesTest.java | 6 +- ...bstractDifferentIntMapperServicesTest.java | 6 +- .../mappers2/AbstractMapperServicesTest.java | 6 +- .../parsers1/ParserServicesDisabledTest.java | 7 +- .../yaml/internal/YamlConfigParser.java | 3 +- .../main/docs/guides/09_metrics_mp_guide.adoc | 2 +- docs/src/main/docs/guides/91_mp-tutorial.adoc | 4 +- .../examples/mapping/BuilderExample.java | 5 +- .../mapping/DeserializationExample.java | 5 +- .../mapping/FactoryMethodExample.java | 5 +- .../grpc/examples/common/StringClient.java | 7 +- .../grpc/example/client/Client.java | 5 +- .../examples/security/abac/AtnProvider.java | 4 +- .../explicit/HelloWorldApplication.java | 6 +- .../implicit/HelloWorldApplication.java | 6 +- .../example/idcs/IdcsApplication.java | 6 +- .../example/security/OtherApp.java | 6 +- .../example/security/StaticContentApp.java | 6 +- .../example/staticc/StaticContentApp.java | 6 +- .../openapi/basic/GreetApplication.java | 4 +- .../quickstart/mp/GreetApplication.java | 6 +- .../quickstart/mp/GreetApplication.java | 4 +- .../examples/abac/AbacApplication.java | 4 +- .../security/examples/abac/AtnProvider.java | 4 +- .../examples/jersey/JerseyBuilderMain.java | 7 +- .../examples/jersey/JerseyMainTest.java | 15 +- .../examples/security/MyProvider.java | 5 +- .../examples/oidc/OidcTestApplication.java | 4 +- .../examples/spi/AtnProviderSync.java | 4 +- .../examples/spi/OutboundProviderSync.java | 8 +- .../examples/spi/AtnProviderSyncTest.java | 9 +- .../spi/OutboundProviderSyncTest.java | 6 +- .../digest/DigestExampleBuilderMain.java | 7 +- .../webserver/digest/DigestExampleTest.java | 15 +- .../SignatureExampleBuilderMain.java | 7 +- .../signatures/SignatureExampleTest.java | 11 +- .../helidon/demo/todos/backend/DbService.java | 6 +- .../io/helidon/demo/todos/backend/Main.java | 4 +- .../todos/frontend/BackendServiceClient.java | 6 +- .../io/helidon/demo/todos/frontend/Main.java | 4 +- .../metrics/GrpcMetricsInterceptorIT.java | 3 +- .../grpc/server/SSLContextBuilder.java | 3 +- .../grpc/server/BindableServiceImplTest.java | 5 +- .../io/helidon/health/HealthSupportTest.java | 3 +- .../extension/HelidonReflectionFeature.java | 5 +- .../io/helidon/metrics/MetricsSupport.java | 4 +- .../helidon/metrics/MetricsSupportTest.java | 5 +- .../helidon/metrics/RegistryFactoryTest.java | 5 +- .../io/helidon/metrics/MetricsSupport.java | 3 +- .../io/helidon/metrics/MetricImplTest.java | 4 +- .../helidon/metrics/MetricsSupportTest.java | 4 +- .../helidon/metrics/RegistryFactoryTest.java | 5 +- .../config/ConfigCdiExtension.java | 11 +- .../grpc/client/GrpcClientCdiExtension.java | 3 +- .../grpc/core/AnnotatedMethod.java | 8 +- ...verStreamingMethodHandlerSupplierTest.java | 9 +- .../jwt/auth/cdi/ClaimProducer.java | 11 +- .../src/main/java/module-info.java | 1 + .../jwt/auth/cdi/JwtAuthTest.java | 3 +- .../jwt/auth/JwtAuthProvider.java | 4 +- .../jwt/auth/JwtAuthProviderTest.java | 15 +- .../metrics/MetricsMpService.java | 4 +- .../metrics/MetricsMpService.java | 4 +- .../helidon/microprofile/openapi/TestApp.java | 4 +- .../helidon/microprofile/server/Server.java | 3 +- .../microprofile/server/ServerImplTest.java | 5 +- .../microprofile/server/ServerSseTest.java | 4 +- .../tracing/MpTracingInterceptor.java | 7 +- .../tracing/TestTracerProvider.java | 3 +- .../microprofile/tracing/TracingTest.java | 3 +- .../abac/policy/el/AttributeResolverTest.java | 11 +- .../security/abac/policy/PolicyValidator.java | 4 +- .../security/abac/role/RoleValidator.java | 5 +- .../security/abac/role/RoleValidatorTest.java | 37 ++- .../security/abac/scope/ScopeValidator.java | 7 +- .../abac/scope/ScopeValidatorTest.java | 9 +- .../security/abac/time/TimeValidator.java | 3 +- .../security/abac/time/TimeValidatorTest.java | 5 +- .../integration/common/CommonTracing.java | 10 +- .../integration/grpc/GrpcSecurityHandler.java | 3 +- .../jersey/SecurityFilterCommon.java | 19 +- .../jersey/BindingTestProvider.java | 6 +- .../jersey/OptionalSecurityTest.java | 3 +- .../webserver/SecurityHandler.java | 21 +- .../integration/webserver/WebSecurity.java | 6 +- .../WebSecurityBuilderGateDefaultsTest.java | 23 +- .../webserver/WebSecurityQueryParamTest.java | 12 +- .../webserver/WebSecurityTests.java | 25 +- .../java/io/helidon/security/jwt/Jwt.java | 5 +- .../java/io/helidon/security/jwt/JwtTest.java | 9 +- .../helidon/security/jwt/jwk/JwkKeysTest.java | 6 +- .../providers/abac/AbacProviderTest.java | 14 +- .../providers/abac/Attrib1Validator.java | 4 +- .../providers/common/OutboundConfig.java | 5 +- .../providers/common/OutboundTarget.java | 9 +- .../google/login/GoogleTokenProvider.java | 6 +- .../providers/httpauth/ConfigUserStore.java | 4 +- .../httpauth/HttpBasicAuthProvider.java | 3 +- .../providers/httpauth/SecureUserStore.java | 5 +- .../BasicAuthOutboundOverrideTest.java | 4 +- ...uthProviderBuilderLegacyUserStoreTest.java | 5 +- .../httpauth/HttpAuthProviderBuilderTest.java | 6 +- .../httpauth/HttpAuthProviderConfigTest.java | 15 +- .../providers/httpsign/HttpSignProvider.java | 27 +- .../providers/httpsign/HttpSignature.java | 9 +- .../httpsign/SignedHeadersConfig.java | 13 +- .../httpsign/HttpSignProviderBuilderTest.java | 10 +- .../httpsign/HttpSignProviderTest.java | 32 +- .../providers/httpsign/HttpSignatureTest.java | 37 ++- .../httpsign/SignedHeadersConfigTest.java | 11 +- .../idcs/mapper/IdcsMtRoleMapperProvider.java | 3 +- .../providers/jwt/JwtProviderTest.java | 8 +- .../security/providers/oidc/OidcProvider.java | 7 +- .../security/providers/oidc/OidcSupport.java | 5 +- .../providers/oidc/OidcSupportTest.java | 4 +- .../io/helidon/security/EndpointConfig.java | 3 +- .../java/io/helidon/security/Security.java | 9 +- .../helidon/security/SecurityContextImpl.java | 4 +- .../helidon/security/SecurityEnvironment.java | 5 +- .../io/helidon/security/SecurityLevel.java | 7 +- .../io/helidon/security/SecurityResponse.java | 7 +- .../java/io/helidon/security/Subject.java | 3 +- .../security/spi/SecurityProvider.java | 12 +- .../security/CompositePolicyFlagsTest.java | 4 +- .../helidon/security/CompositePolicyTest.java | 5 +- .../security/DefaultAuditProviderTest.java | 7 +- .../helidon/security/SubjectMappingTest.java | 12 +- .../security/providers/PathBasedProvider.java | 13 +- .../providers/ResourceBasedProvider.java | 22 +- .../security/util/TokenHandlerTest.java | 5 +- .../apps/bookstore/mp/BookApplication.java | 7 +- .../context/hello/HelloApplication.java | 4 +- .../jaxrs/subresource/MpApplication.java | 4 +- .../functional/multiport/MpApplication.java | 4 +- .../tests/functional/multiport/MainTest.java | 5 +- .../mp/security/client/TestApplication.java | 4 +- .../zipkin/mp22/MpApplication.java | 4 +- .../tracing/jaeger/JaegerTracerBuilder.java | 3 +- .../jaeger/JaegerTracerBuilderTest.java | 15 +- .../jersey/client/ClientTracingFilter.java | 12 +- .../tracing/jersey/AbstractTracingFilter.java | 4 +- .../tests/it1/OpentraceableClientE2ETest.java | 6 +- .../test/java/io/helidon/tracing/TagTest.java | 6 +- .../tracing/zipkin/ZipkinTracerBuilder.java | 4 +- .../tracing/zipkin/ZipkinTracerProvider.java | 7 +- .../zipkin/ZipkinTracerBuilderTest.java | 9 +- .../zipkin/ZipkinTracerProviderTest.java | 52 ++-- .../webserver/accesslog/AccessLogSupport.java | 5 +- .../helidon/webserver/HashRequestHeaders.java | 7 +- .../java/io/helidon/webserver/Request.java | 3 +- .../io/helidon/webserver/RequestRouting.java | 10 +- .../helidon/webserver/SSLContextBuilder.java | 5 +- .../webserver/ServerConfiguration.java | 3 +- .../helidon/webserver/WebTracingConfig.java | 5 +- .../helidon/webserver/ContentCharsetTest.java | 12 +- .../webserver/HashRequestHeadersTest.java | 13 +- .../java/io/helidon/webserver/PlainTest.java | 10 +- .../webserver/RequestPredicateTest.java | 154 +++++----- .../io/helidon/webserver/RequestTest.java | 9 +- .../io/helidon/webserver/RouteListTest.java | 14 +- .../webserver/StaticContentHandlerTest.java | 10 +- .../webserver/utils/SocketHttpClient.java | 4 +- 252 files changed, 983 insertions(+), 1455 deletions(-) delete mode 100644 common/common/src/main/java/io/helidon/common/CollectionsHelper.java diff --git a/archetypes/mp/src/main/resources/archetype-resources/src/main/java/__applicationName__.java.vm b/archetypes/mp/src/main/resources/archetype-resources/src/main/java/__applicationName__.java.vm index 6af161f1a0b..f07465fa2d2 100644 --- a/archetypes/mp/src/main/resources/archetype-resources/src/main/java/__applicationName__.java.vm +++ b/archetypes/mp/src/main/resources/archetype-resources/src/main/java/__applicationName__.java.vm @@ -6,8 +6,6 @@ import javax.enterprise.context.ApplicationScoped; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Simple JAXRS Application that registers one resource class. */ @@ -17,6 +15,6 @@ public class ${applicationName} extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(${restResourceName}.class); + return Set.of(${restResourceName}.class); } } diff --git a/common/common/src/main/java/io/helidon/common/CollectionsHelper.java b/common/common/src/main/java/io/helidon/common/CollectionsHelper.java deleted file mode 100644 index 1b70fb2f4ec..00000000000 --- a/common/common/src/main/java/io/helidon/common/CollectionsHelper.java +++ /dev/null @@ -1,277 +0,0 @@ -/* - * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. - * - * Licensed 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 io.helidon.common; - -import java.util.AbstractMap; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * A set of static methods similar to Java9's List.of(), Set.of() and Map.of(). - */ -public abstract class CollectionsHelper { - - private CollectionsHelper(){}; - - /** - * Returns an immutable list containing zero elements. - * - * @param the {@code List}'s element type - * @return an empty {@code List} - */ - public static List listOf(){ - return Collections.emptyList(); - } - - /** - * Returns an unmodifiable list containing the given elements. - * - * @param the {@code List}'s element type - * @param elts the elements - * @return a {@code List} containing the specified elements - * - */ - @SafeVarargs - public static List listOf(T... elts){ - List list = Arrays.asList(elts); - return Collections.unmodifiableList(list); - } - - /** - * Returns an immutable set containing zero elements. - * - * @param the {@code Set}'s element type - * @return an empty {@code Set} - */ - public static Set setOf(){ - return Collections.emptySet(); - } - - /** - * Create an unmodifiable set containing the given elements. - * - * @param the {@code Set}'s element type - * @param elts elements to add - * @return a {@code Set} containing the specified elements - */ - @SafeVarargs - public static Set setOf(T... elts){ - Set set = new HashSet<>(); - set.addAll(Arrays.asList(elts)); - return Collections.unmodifiableSet(set); - } - - /** - * Returns an {@link java.util.Map.Entry} containing the given key and value. - * - * @param the key's type - * @param the value's type - * @param k key - * @param v value - * @return an {@code Entry} containing the specified key and value - */ - public static Map.Entry mapEntry(K k, V v){ - return new AbstractMap.SimpleEntry<>(k, v); - } - - /** - * Returns an immutable map containing zero mappings. - * @param the {@code Map}'s key type - * @param the {@code Map}'s value type - * @return an empty {@code Map} - */ - public static Map mapOf(){ - return Collections.emptyMap(); - } - - /** - * Create an unmodifiable map containing a single mappings. - * - * @param the {@code Map}'s key type - * @param the {@code Map}'s value type - * @param k1 key - * @param v1 value - * @return a {@code Map} containing the specified mappings - */ - public static Map mapOf(K k1, V v1){ - Map map = new HashMap<>(); - map.put(k1, v1); - return Collections.unmodifiableMap(map); - } - - /** - * Create an unmodifiable map containing 2 mappings. - * - * @param the {@code Map}'s key type - * @param the {@code Map}'s value type - * @param k1 first key - * @param v1 first value - * @param k2 second key - * @param v2 second value - * @return a {@code Map} containing the specified mappings - */ - public static Map mapOf(K k1, V v1, K k2, V v2){ - Map map = new HashMap<>(); - map.put(k1, v1); - map.put(k2, v2); - return Collections.unmodifiableMap(map); - } - - /** - * Create an unmodifiable map containing 3 mappings. - * - * @param the {@code Map}'s key type - * @param the {@code Map}'s value type - * @param k1 first key - * @param v1 first value - * @param k2 second key - * @param v2 second value - * @param k3 third key - * @param v3 third value - * @return a {@code Map} containing the specified mappings - */ - public static Map mapOf(K k1, V v1, K k2, V v2, K k3, V v3){ - Map map = new HashMap<>(); - map.put(k1, v1); - map.put(k2, v2); - map.put(k3, v3); - return Collections.unmodifiableMap(map); - } - - /** - * Create an unmodifiable map containing 4 mappings. - * - * @param the {@code Map}'s key type - * @param the {@code Map}'s value type - * @param k1 first key - * @param v1 first value - * @param k2 second key - * @param v2 second value - * @param k3 third key - * @param v3 third value - * @param k4 fourth key - * @param v4 fourth value - * @return a {@code Map} containing the specified mappings - */ - @SuppressWarnings("checkstyle:ParameterNumber") - public static Map mapOf(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4){ - Map map = new HashMap<>(); - map.put(k1, v1); - map.put(k2, v2); - map.put(k3, v3); - map.put(k4, v4); - return Collections.unmodifiableMap(map); - } - - /** - * Create an unmodifiable map containing 5 mappings. - * - * @param the {@code Map}'s key type - * @param the {@code Map}'s value type - * @param k1 first key - * @param v1 first value - * @param k2 second key - * @param v2 second value - * @param k3 third key - * @param v3 third value - * @param k4 fourth key - * @param v4 fourth value - * @param k5 fifth key - * @param v5 fifth value - * @return a {@code Map} containing the specified mappings - */ - @SuppressWarnings("checkstyle:ParameterNumber") - public static Map mapOf(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5){ - Map map = new HashMap<>(); - map.put(k1, v1); - map.put(k2, v2); - map.put(k3, v3); - map.put(k4, v4); - map.put(k5, v5); - return Collections.unmodifiableMap(map); - } - - /** - * Create an unmodifiable map containing 5 mappings. - * - * @param the {@code Map}'s key type - * @param the {@code Map}'s value type - * @param k1 first key - * @param v1 first value - * @param k2 second key - * @param v2 second value - * @param k3 third key - * @param v3 third value - * @param k4 fourth key - * @param v4 fourth value - * @param k5 fifth key - * @param v5 fifth value - * @param k6 sixth key - * @param v6 sixth value - * @return a {@code Map} containing the specified mappings - */ - @SuppressWarnings("checkstyle:ParameterNumber") - public static Map mapOf(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6){ - Map map = new HashMap<>(); - map.put(k1, v1); - map.put(k2, v2); - map.put(k3, v3); - map.put(k4, v4); - map.put(k5, v5); - map.put(k6, v6); - return Collections.unmodifiableMap(map); - } - - /** - * Create an unmodifiable map containing 5 mappings. - * - * @param the {@code Map}'s key type - * @param the {@code Map}'s value type - * @param k1 first key - * @param v1 first value - * @param k2 second key - * @param v2 second value - * @param k3 third key - * @param v3 third value - * @param k4 fourth key - * @param v4 fourth value - * @param k5 fifth key - * @param v5 fifth value - * @param k6 sixth key - * @param v6 sixth value - * @param k7 seventh key - * @param v7 seventh value - * @return a {@code Map} containing the specified mappings - */ - @SuppressWarnings("checkstyle:ParameterNumber") - public static Map mapOf(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7){ - Map map = new HashMap<>(); - map.put(k1, v1); - map.put(k2, v2); - map.put(k3, v3); - map.put(k4, v4); - map.put(k5, v5); - map.put(k6, v6); - map.put(k7, v7); - return Collections.unmodifiableMap(map); - } -} diff --git a/common/common/src/main/java/io/helidon/common/Errors.java b/common/common/src/main/java/io/helidon/common/Errors.java index ec6218d56df..88c911e9efa 100644 --- a/common/common/src/main/java/io/helidon/common/Errors.java +++ b/common/common/src/main/java/io/helidon/common/Errors.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -56,7 +56,7 @@ @SuppressWarnings("WeakerAccess") public final class Errors extends LinkedList { private static final Set WALKER_OPTIONS = - CollectionsHelper.setOf(StackWalker.Option.RETAIN_CLASS_REFERENCE); + Set.of(StackWalker.Option.RETAIN_CLASS_REFERENCE); private final boolean hasFatal; private final boolean hasWarning; diff --git a/common/configurable/src/test/java/io/helidon/common/configurable/ThreadPoolSupplierTest.java b/common/configurable/src/test/java/io/helidon/common/configurable/ThreadPoolSupplierTest.java index 5de13f5cce0..6af509a34f1 100644 --- a/common/configurable/src/test/java/io/helidon/common/configurable/ThreadPoolSupplierTest.java +++ b/common/configurable/src/test/java/io/helidon/common/configurable/ThreadPoolSupplierTest.java @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; @@ -33,7 +34,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.mapOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.CoreMatchers.startsWith; @@ -120,7 +120,7 @@ public void close() throws SecurityException { try { log.addHandler(handler); - Config config = Config.create(ConfigSources.create(mapOf(thresholdKey, threshold, rateKey, rate))); + Config config = Config.create(ConfigSources.create(Map.of(thresholdKey, threshold, rateKey, rate))); ExecutorService executor = ThreadPoolSupplier.create(config).get(); Optional asThreadPool = ThreadPool.asThreadPool(executor); ThreadPool pool = asThreadPool.orElseThrow(() -> new RuntimeException("not a thread pool")); diff --git a/common/http/src/main/java/io/helidon/common/http/FormParamsImpl.java b/common/http/src/main/java/io/helidon/common/http/FormParamsImpl.java index 688ec0e931e..12a5630089d 100644 --- a/common/http/src/main/java/io/helidon/common/http/FormParamsImpl.java +++ b/common/http/src/main/java/io/helidon/common/http/FormParamsImpl.java @@ -22,8 +22,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import io.helidon.common.CollectionsHelper; - /** * Implementation of the {@link FormParams} interface. */ @@ -33,7 +31,7 @@ class FormParamsImpl extends ReadOnlyParameters implements FormParams { * For form params represented in text/plain (uncommon), newlines appear between name=value * assignments. When urlencoded, ampersands separate the name=value assignments. */ - private static final Map PATTERNS = CollectionsHelper.mapOf( + private static final Map PATTERNS = Map.of( MediaType.APPLICATION_FORM_URLENCODED, preparePattern("&"), MediaType.TEXT_PLAIN, preparePattern("\n")); diff --git a/common/http/src/main/java/io/helidon/common/http/Http.java b/common/http/src/main/java/io/helidon/common/http/Http.java index d78c05b54fa..4a7835812c1 100644 --- a/common/http/src/main/java/io/helidon/common/http/Http.java +++ b/common/http/src/main/java/io/helidon/common/http/Http.java @@ -28,8 +28,6 @@ import java.util.Objects; import java.util.Optional; -import io.helidon.common.CollectionsHelper; - import static java.time.temporal.ChronoField.DAY_OF_MONTH; import static java.time.temporal.ChronoField.DAY_OF_WEEK; import static java.time.temporal.ChronoField.HOUR_OF_DAY; @@ -1068,7 +1066,7 @@ public static final class DateTime { // manually code maps to ensure correct data always used // (locale data can be changed by application code) - Map dayOfWeekFull = CollectionsHelper.mapOf(1L, "Monday", + Map dayOfWeekFull = Map.of(1L, "Monday", 2L, "Tuesday", 3L, "Wednesday", 4L, "Thursday", @@ -1101,7 +1099,7 @@ public static final class DateTime { // manually code maps to ensure correct data always used // (locale data can be changed by application code) - Map dayOfWeek3d = CollectionsHelper.mapOf(1L, "Mon", + Map dayOfWeek3d = Map.of(1L, "Mon", 2L, "Tue", 3L, "Wed", 4L, "Thu", diff --git a/common/http/src/test/java/io/helidon/common/http/MediaTypeTest.java b/common/http/src/test/java/io/helidon/common/http/MediaTypeTest.java index 9839469d31d..9c87d848adb 100644 --- a/common/http/src/test/java/io/helidon/common/http/MediaTypeTest.java +++ b/common/http/src/test/java/io/helidon/common/http/MediaTypeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,9 @@ package io.helidon.common.http; +import java.util.Map; import java.util.Optional; -import io.helidon.common.CollectionsHelper; - import org.hamcrest.core.Is; import org.junit.jupiter.api.Test; @@ -60,14 +59,14 @@ void parseCharset() { assertThat(mediaType.charset(), not(Optional.empty())); assertThat(mediaType.charset().get(), is("utf-8")); - assertThat(mediaType.parameters(), is(CollectionsHelper.mapOf("charset", "utf-8"))); + assertThat(mediaType.parameters(), is(Map.of("charset", "utf-8"))); } @Test void parseParameters() { MediaType mediaType = MediaType.parse("unknown-type/unknown-subtype; option1=value1; option2=value2"); - assertThat(mediaType.parameters(), is(CollectionsHelper.mapOf("option1", "value1", + assertThat(mediaType.parameters(), is(Map.of("option1", "value1", "option2", "value2"))); } @@ -75,7 +74,7 @@ void parseParameters() { void parseDuplicateParameters() { MediaType mediaType = MediaType.parse("unknown-type/unknown-subtype; option=value1; option=value2"); - assertThat(mediaType.parameters(), is(CollectionsHelper.mapOf("option", "value2"))); + assertThat(mediaType.parameters(), is(Map.of("option", "value2"))); } @Test @@ -125,7 +124,7 @@ void testBuilt() { assertThat(mediaType.type(), is("application")); assertThat(mediaType.subtype(), is("json")); assertThat(mediaType.charset(), is(Optional.of("ISO-8859-2"))); - assertThat(mediaType.parameters(), is(CollectionsHelper.mapOf("q", "0.1", "charset", "ISO-8859-2"))); + assertThat(mediaType.parameters(), is(Map.of("q", "0.1", "charset", "ISO-8859-2"))); assertThat(mediaType.qualityFactor(), closeTo(0.1, 0.000001)); } } \ No newline at end of file diff --git a/common/key-util/src/test/java/io/helidon/common/pki/KeyConfigTest.java b/common/key-util/src/test/java/io/helidon/common/pki/KeyConfigTest.java index 01fa0bba7fc..177f51e7eb9 100644 --- a/common/key-util/src/test/java/io/helidon/common/pki/KeyConfigTest.java +++ b/common/key-util/src/test/java/io/helidon/common/pki/KeyConfigTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,9 +19,9 @@ import java.security.cert.X509Certificate; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; +import java.util.List; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.Resource; import io.helidon.config.Config; @@ -175,6 +175,6 @@ void testPemConfigNoPasswordNoChain() { assertThat(conf.publicKey(), is(Optional.empty())); assertThat(conf.publicCert(), is(Optional.empty())); - assertThat("Cert chain must be empty", conf.certChain(), is(CollectionsHelper.listOf())); + assertThat("Cert chain must be empty", conf.certChain(), is(List.of())); } } diff --git a/common/reactive/src/main/java/io/helidon/common/reactive/Multi.java b/common/reactive/src/main/java/io/helidon/common/reactive/Multi.java index 4012600eb4a..836e1f4dff9 100644 --- a/common/reactive/src/main/java/io/helidon/common/reactive/Multi.java +++ b/common/reactive/src/main/java/io/helidon/common/reactive/Multi.java @@ -22,8 +22,6 @@ import io.helidon.common.mapper.Mapper; -import static io.helidon.common.CollectionsHelper.listOf; - /** * Multiple items publisher facility. * @param item type @@ -115,7 +113,7 @@ static Multi just(Collection items) { */ @SafeVarargs static Multi just(T... items) { - return new MultiFromPublisher<>(new FixedItemsPublisher<>(listOf(items))); + return new MultiFromPublisher<>(new FixedItemsPublisher<>(List.of(items))); } /** diff --git a/common/reactive/src/test/java/io/helidon/common/reactive/MultiTest.java b/common/reactive/src/test/java/io/helidon/common/reactive/MultiTest.java index a7546099c91..dcf423091d0 100644 --- a/common/reactive/src/test/java/io/helidon/common/reactive/MultiTest.java +++ b/common/reactive/src/test/java/io/helidon/common/reactive/MultiTest.java @@ -23,7 +23,6 @@ import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.listOf; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.hasItems; import static org.hamcrest.CoreMatchers.instanceOf; @@ -50,7 +49,7 @@ public void testJust() { @Test public void testJustCollection() { MultiTestSubscriber subscriber = new MultiTestSubscriber<>(); - Multi.just(listOf("foo", "bar")).subscribe(subscriber); + Multi.just(List.of("foo", "bar")).subscribe(subscriber); assertThat(subscriber.isComplete(), is(equalTo(true))); assertThat(subscriber.getLastError(), is(nullValue())); assertThat(subscriber.getItems(), hasItems("foo", "bar")); diff --git a/common/reactive/src/test/java/io/helidon/common/reactive/valve/ValvePublisherTest.java b/common/reactive/src/test/java/io/helidon/common/reactive/valve/ValvePublisherTest.java index 50d0c27b387..7e534dda711 100644 --- a/common/reactive/src/test/java/io/helidon/common/reactive/valve/ValvePublisherTest.java +++ b/common/reactive/src/test/java/io/helidon/common/reactive/valve/ValvePublisherTest.java @@ -28,7 +28,6 @@ import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.listOf; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.hasItems; import static org.hamcrest.CoreMatchers.instanceOf; @@ -169,7 +168,7 @@ public void onComplete() { void multipleSubscribers() throws Exception { Tank stringTank = new Tank<>(10); - stringTank.addAll(listOf("1", "2", "3")); + stringTank.addAll(List.of("1", "2", "3")); stringTank.close(); Multi multi = Multi.from(stringTank.toPublisher()); @@ -189,7 +188,7 @@ void multipleSubscribers() throws Exception { void multiplePublishers() throws Exception { Tank stringTank = new Tank<>(10); - stringTank.addAll(listOf("1", "2", "3")); + stringTank.addAll(List.of("1", "2", "3")); stringTank.close(); assertThat(Multi.from(stringTank.toPublisher()).collect(new StringCollector<>()).get(10, TimeUnit.SECONDS), is("123")); diff --git a/common/reactive/src/test/java/io/helidon/common/reactive/valve/ValvesTest.java b/common/reactive/src/test/java/io/helidon/common/reactive/valve/ValvesTest.java index 7e9cbb8753e..437407283a9 100644 --- a/common/reactive/src/test/java/io/helidon/common/reactive/valve/ValvesTest.java +++ b/common/reactive/src/test/java/io/helidon/common/reactive/valve/ValvesTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,8 +19,6 @@ import java.util.List; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.is; @@ -30,7 +28,7 @@ class ValvesTest { @Test void fromIterable() throws Exception { - List list = CollectionsHelper.listOf("a", "b", "c", "d", "e", "f", "g"); + List list = List.of("a", "b", "c", "d", "e", "f", "g"); String s = Valves.from(list).collect(Collectors.joining()).toCompletableFuture().get(); assertThat(s, is("abcdefg")); } diff --git a/config/config/src/main/java/io/helidon/config/BuilderImpl.java b/config/config/src/main/java/io/helidon/config/BuilderImpl.java index 322c0708704..b2ad3f1d95d 100644 --- a/config/config/src/main/java/io/helidon/config/BuilderImpl.java +++ b/config/config/src/main/java/io/helidon/config/BuilderImpl.java @@ -38,7 +38,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.common.GenericType; import io.helidon.common.Prioritized; import io.helidon.common.serviceloader.HelidonServiceLoader; @@ -191,7 +190,7 @@ public Config.Builder addMapper(Class type, Function mapper) { Objects.requireNonNull(type); Objects.requireNonNull(mapper); - addMapper(() -> CollectionsHelper.mapOf(type, mapper)); + addMapper(() -> Map.of(type, mapper)); return this; } @@ -204,12 +203,12 @@ public Config.Builder addMapper(GenericType type, Function map addMapper(new ConfigMapperProvider() { @Override public Map, Function> mappers() { - return CollectionsHelper.mapOf(); + return Map.of(); } @Override public Map, BiFunction> genericTypeMappers() { - return CollectionsHelper.mapOf(type, (config, aMapper) -> mappingFunction.apply(config)); + return Map.of(type, (config, aMapper) -> mappingFunction.apply(config)); } }); @@ -963,7 +962,7 @@ public String toString() { static final class ConfigSourceConfiguration { private static final ConfigSourceConfiguration EMPTY = - new ConfigSourceConfiguration(ConfigSources.empty(), CollectionsHelper.listOf(ConfigSources.empty())); + new ConfigSourceConfiguration(ConfigSources.empty(), List.of(ConfigSources.empty())); private final ConfigSource compositeSource; private final List allSources; diff --git a/config/config/src/main/java/io/helidon/config/Config.java b/config/config/src/main/java/io/helidon/config/Config.java index bb91c5915a8..65b997c0477 100644 --- a/config/config/src/main/java/io/helidon/config/Config.java +++ b/config/config/src/main/java/io/helidon/config/Config.java @@ -29,7 +29,6 @@ import java.util.function.Supplier; import java.util.stream.Stream; -import io.helidon.common.CollectionsHelper; import io.helidon.common.GenericType; import io.helidon.config.internal.ConfigKeyImpl; import io.helidon.config.spi.ConfigFilter; @@ -390,7 +389,7 @@ static Config create(Supplier... configSources) { */ @SafeVarargs static Builder builder(Supplier... configSources) { - return builder().sources(CollectionsHelper.listOf(configSources)); + return builder().sources(List.of(configSources)); } /** @@ -1288,7 +1287,7 @@ default Builder addSource(Supplier source) { * @see #disableSystemPropertiesSource() */ default Builder sources(Supplier configSource) { - sources(CollectionsHelper.listOf(configSource)); + sources(List.of(configSource)); return this; } @@ -1315,7 +1314,7 @@ default Builder sources(Supplier configSource) { */ default Builder sources(Supplier configSource, Supplier configSource2) { - sources(CollectionsHelper.listOf(configSource, configSource2)); + sources(List.of(configSource, configSource2)); return this; } @@ -1344,7 +1343,7 @@ default Builder sources(Supplier configSource, default Builder sources(Supplier configSource, Supplier configSource2, Supplier configSource3) { - sources(CollectionsHelper.listOf(configSource, configSource2, configSource3)); + sources(List.of(configSource, configSource2, configSource3)); return this; } diff --git a/config/config/src/main/java/io/helidon/config/ConfigFactory.java b/config/config/src/main/java/io/helidon/config/ConfigFactory.java index b71b651311c..76685aeecf3 100644 --- a/config/config/src/main/java/io/helidon/config/ConfigFactory.java +++ b/config/config/src/main/java/io/helidon/config/ConfigFactory.java @@ -36,7 +36,6 @@ import java.util.stream.IntStream; import java.util.stream.Stream; -import io.helidon.common.CollectionsHelper; import io.helidon.config.internal.ConfigKeyImpl; import io.helidon.config.spi.ConfigFilter; import io.helidon.config.spi.ConfigNode; @@ -298,7 +297,7 @@ private static Map loadMap(Optional item) { processNode(values, "", node); return values; } else { - return CollectionsHelper.mapOf(); + return Map.of(); } } diff --git a/config/config/src/main/java/io/helidon/config/ConfigLeafImpl.java b/config/config/src/main/java/io/helidon/config/ConfigLeafImpl.java index 970affc2141..913c4fc05ed 100644 --- a/config/config/src/main/java/io/helidon/config/ConfigLeafImpl.java +++ b/config/config/src/main/java/io/helidon/config/ConfigLeafImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,8 +30,6 @@ import io.helidon.config.spi.ConfigFilter; import io.helidon.config.spi.ConfigNode.ValueNode; -import static io.helidon.common.CollectionsHelper.listOf; - /** * Implementation of {@link Config} that represents a * {@link Type#VALUE single value} node. @@ -82,7 +80,7 @@ public ConfigValue> asList(Class type) throws ConfigMappingExcept aConfig -> aConfig.asList(type)); } else { return ConfigValues.create(this, - () -> Optional.of(listOf(mapperManager.map(stringValue, type, name()))), + () -> Optional.of(List.of(mapperManager.map(stringValue, type, name()))), aConfig -> aConfig.asList(type)); } @@ -112,7 +110,7 @@ public ConfigValue> asList(Function mapper) throws Config aConfig -> aConfig.asList(mapper)); } else { return ConfigValues.create(this, - () -> Optional.of(listOf(mapper.apply(mapperManager.simpleConfig(name(), stringValue)))), + () -> Optional.of(List.of(mapper.apply(mapperManager.simpleConfig(name(), stringValue)))), aConfig -> aConfig.asList(mapper)); } diff --git a/config/config/src/main/java/io/helidon/config/ConfigMapperManager.java b/config/config/src/main/java/io/helidon/config/ConfigMapperManager.java index 72aea60c669..ae24beab38a 100644 --- a/config/config/src/main/java/io/helidon/config/ConfigMapperManager.java +++ b/config/config/src/main/java/io/helidon/config/ConfigMapperManager.java @@ -30,7 +30,6 @@ import java.util.function.Predicate; import java.util.stream.Stream; -import io.helidon.common.CollectionsHelper; import io.helidon.common.GenericType; import io.helidon.config.spi.ConfigMapper; import io.helidon.config.spi.ConfigMapperProvider; @@ -285,17 +284,17 @@ public ConfigValue as(GenericType genericType) { @Override public ConfigValue> asNodeList() throws ConfigMappingException { - return ConfigValues.create(this, () -> Optional.of(CollectionsHelper.listOf(this)), Config::asNodeList); + return ConfigValues.create(this, () -> Optional.of(List.of(this)), Config::asNodeList); } @Override public ConfigValue> asList(Class type) throws ConfigMappingException { - return ConfigValues.create(this, () -> as(type).map(CollectionsHelper::listOf), config -> config.asList(type)); + return ConfigValues.create(this, () -> as(type).map(List::of), config -> config.asList(type)); } @Override public ConfigValue> asList(Function mapper) throws ConfigMappingException { - return ConfigValues.create(this, () -> as(mapper).map(CollectionsHelper::listOf), config -> config.asList(mapper)); + return ConfigValues.create(this, () -> as(mapper).map(List::of), config -> config.asList(mapper)); } @Override diff --git a/config/config/src/main/java/io/helidon/config/ConfigMappers.java b/config/config/src/main/java/io/helidon/config/ConfigMappers.java index f3ae7ddfffa..204f1a7ab96 100644 --- a/config/config/src/main/java/io/helidon/config/ConfigMappers.java +++ b/config/config/src/main/java/io/helidon/config/ConfigMappers.java @@ -63,8 +63,6 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; - /** * Utility methods for converting configuration to Java types. *

@@ -760,7 +758,7 @@ static class StringMap extends AbstractMap implements Map unknownMap) { diff --git a/config/config/src/main/java/io/helidon/config/ConfigSources.java b/config/config/src/main/java/io/helidon/config/ConfigSources.java index f1c4a704e16..abba7725fee 100644 --- a/config/config/src/main/java/io/helidon/config/ConfigSources.java +++ b/config/config/src/main/java/io/helidon/config/ConfigSources.java @@ -38,7 +38,6 @@ import java.util.function.Supplier; import io.helidon.common.Builder; -import io.helidon.common.CollectionsHelper; import io.helidon.config.internal.ConfigUtils; import io.helidon.config.internal.MapConfigSource; import io.helidon.config.internal.PrefixedConfigSource; @@ -337,7 +336,7 @@ public static UrlConfigSource.UrlBuilder url(URL url) { */ @SafeVarargs public static CompositeBuilder create(Supplier... configSources) { - return create(CollectionsHelper.listOf(configSources)); + return create(List.of(configSources)); } /** diff --git a/config/config/src/main/java/io/helidon/config/MetaConfig.java b/config/config/src/main/java/io/helidon/config/MetaConfig.java index 4a7e3347e16..9a7c1fe1880 100644 --- a/config/config/src/main/java/io/helidon/config/MetaConfig.java +++ b/config/config/src/main/java/io/helidon/config/MetaConfig.java @@ -24,7 +24,6 @@ import java.util.function.Function; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.common.serviceloader.HelidonServiceLoader; import io.helidon.config.spi.ConfigParser; import io.helidon.config.spi.ConfigSource; @@ -151,8 +150,8 @@ static List configSources(Function supportedMedia return metaConfigOpt .map(MetaConfig::configSources) .orElseGet(() -> MetaConfigFinder.findConfigSource(supportedMediaType) - .map(CollectionsHelper::listOf) - .orElseGet(CollectionsHelper::listOf)); + .map(List::of) + .orElseGet(List::of)); } diff --git a/config/config/src/main/java/io/helidon/config/MetaConfigFinder.java b/config/config/src/main/java/io/helidon/config/MetaConfigFinder.java index 1bfb4f9fd3c..82df2714af0 100644 --- a/config/config/src/main/java/io/helidon/config/MetaConfigFinder.java +++ b/config/config/src/main/java/io/helidon/config/MetaConfigFinder.java @@ -28,8 +28,6 @@ import io.helidon.common.media.type.MediaTypes; import io.helidon.config.spi.ConfigSource; -import static io.helidon.common.CollectionsHelper.listOf; - /** * Utility class that locates the meta configuration source. */ @@ -40,7 +38,7 @@ final class MetaConfigFinder { public static final String META_CONFIG_SYSTEM_PROPERTY = "io.helidon.config.meta-config"; private static final Logger LOGGER = Logger.getLogger(MetaConfigFinder.class.getName()); - private static final List CONFIG_SUFFIXES = listOf("yaml", "conf", "json", "properties"); + private static final List CONFIG_SUFFIXES = List.of("yaml", "conf", "json", "properties"); private static final String META_CONFIG_PREFIX = "meta-config."; private static final String CONFIG_PREFIX = "application."; diff --git a/config/config/src/main/java/io/helidon/config/MetaProviders.java b/config/config/src/main/java/io/helidon/config/MetaProviders.java index 347ef40810d..0861a763f7d 100644 --- a/config/config/src/main/java/io/helidon/config/MetaProviders.java +++ b/config/config/src/main/java/io/helidon/config/MetaProviders.java @@ -26,7 +26,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.common.serviceloader.HelidonServiceLoader; import io.helidon.config.internal.FileOverrideSource; import io.helidon.config.internal.PrefixedConfigSource; @@ -141,7 +140,7 @@ private static final class BuiltInPollingStrategyProvider implements PollingStra private static final String WATCH_TYPE = "watch"; private static final Map>> BUILT_IN = - CollectionsHelper.mapOf( + Map.of( REGULAR_TYPE, config -> target -> PollingStrategies.ScheduledBuilder.create(config).build(), WATCH_TYPE, config -> BuiltInPollingStrategyProvider::watchStrategy ); @@ -194,7 +193,7 @@ public RetryPolicy create(String type, Config metaConfig) { @Override public Set supported() { - return CollectionsHelper.setOf(REPEAT_TYPE); + return Set.of(REPEAT_TYPE); } } diff --git a/config/config/src/main/java/io/helidon/config/internal/AbstractNodeBuilderImpl.java b/config/config/src/main/java/io/helidon/config/internal/AbstractNodeBuilderImpl.java index adf9e844612..2980cca8faa 100644 --- a/config/config/src/main/java/io/helidon/config/internal/AbstractNodeBuilderImpl.java +++ b/config/config/src/main/java/io/helidon/config/internal/AbstractNodeBuilderImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,10 @@ package io.helidon.config.internal; +import java.util.Map; import java.util.Objects; import java.util.function.Function; -import io.helidon.common.CollectionsHelper; import io.helidon.config.ConfigException; import io.helidon.config.spi.ConfigNode; import io.helidon.config.spi.ConfigNode.ListNode; @@ -155,7 +155,7 @@ protected B deepMerge(MergingKey key, MergeableNode node) { } private void mergeValueMember(ValueNode member, MergingKey key, MergeableNode node, ID id) { - ObjectNode on = ObjectNodeBuilderImpl.create(CollectionsHelper.mapOf(), tokenResolver).value(member.get()).build(); + ObjectNode on = ObjectNodeBuilderImpl.create(Map.of(), tokenResolver).value(member.get()).build(); ConfigNode merged = ObjectNodeBuilderImpl .create(on, tokenResolver) // make copy of member .value(on.get()) diff --git a/config/config/src/main/java/io/helidon/config/internal/FilesystemWatchPollingStrategy.java b/config/config/src/main/java/io/helidon/config/internal/FilesystemWatchPollingStrategy.java index 8df53863d32..41018864f21 100644 --- a/config/config/src/main/java/io/helidon/config/internal/FilesystemWatchPollingStrategy.java +++ b/config/config/src/main/java/io/helidon/config/internal/FilesystemWatchPollingStrategy.java @@ -35,7 +35,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.common.reactive.SubmissionPublisher; import io.helidon.config.ConfigException; import io.helidon.config.ConfigHelper; @@ -225,7 +224,7 @@ private void register() throws IOException { Path dir = parentDir(target); WatchKey oldWatchKey = watchKey; watchKey = dir.register(watchService, - CollectionsHelper.listOf(ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY) + List.of(ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY) .toArray(new WatchEvent.Kind[0]), watchServiceModifiers.toArray(new WatchEvent.Modifier[0])); if (oldWatchKey != null) { diff --git a/config/config/src/main/java/io/helidon/config/internal/ObjectNodeBuilderImpl.java b/config/config/src/main/java/io/helidon/config/internal/ObjectNodeBuilderImpl.java index 5825cdc9af4..2fdfd6c046a 100644 --- a/config/config/src/main/java/io/helidon/config/internal/ObjectNodeBuilderImpl.java +++ b/config/config/src/main/java/io/helidon/config/internal/ObjectNodeBuilderImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ import java.util.Map; import java.util.function.Function; -import io.helidon.common.CollectionsHelper; import io.helidon.config.ConfigException; import io.helidon.config.spi.ConfigNode; import io.helidon.config.spi.ConfigNode.ListNode; @@ -108,7 +107,7 @@ protected String id(MergingKey key) { @Override protected MergeableNode member(String name) { - return members.computeIfAbsent(name, (k) -> new ObjectNodeImpl(CollectionsHelper.mapOf(), tokenResolver())); + return members.computeIfAbsent(name, (k) -> new ObjectNodeImpl(Map.of(), tokenResolver())); } @Override diff --git a/config/config/src/main/java/io/helidon/config/internal/PropertiesConfigParser.java b/config/config/src/main/java/io/helidon/config/internal/PropertiesConfigParser.java index 6250b726713..2efe08068a9 100644 --- a/config/config/src/main/java/io/helidon/config/internal/PropertiesConfigParser.java +++ b/config/config/src/main/java/io/helidon/config/internal/PropertiesConfigParser.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.config.ConfigHelper; import io.helidon.config.spi.ConfigNode; import io.helidon.config.spi.ConfigParser; @@ -54,7 +53,7 @@ public class PropertiesConfigParser implements ConfigParser { */ public static final int PRIORITY = ConfigParser.PRIORITY + 100; - private static final Set SUPPORTED_MEDIA_TYPES = CollectionsHelper.setOf(MEDIA_TYPE_TEXT_JAVA_PROPERTIES); + private static final Set SUPPORTED_MEDIA_TYPES = Set.of(MEDIA_TYPE_TEXT_JAVA_PROPERTIES); @Override public Set supportedMediaTypes() { diff --git a/config/config/src/main/java/io/helidon/config/spi/AbstractMpSource.java b/config/config/src/main/java/io/helidon/config/spi/AbstractMpSource.java index 6e4e7c7858c..d5ae8051ace 100644 --- a/config/config/src/main/java/io/helidon/config/spi/AbstractMpSource.java +++ b/config/config/src/main/java/io/helidon/config/spi/AbstractMpSource.java @@ -24,8 +24,6 @@ import java.util.concurrent.Flow; import java.util.concurrent.atomic.AtomicReference; -import io.helidon.common.CollectionsHelper; - import org.eclipse.microprofile.config.spi.ConfigSource; /** @@ -104,7 +102,7 @@ private static Map loadMap(Optional item) processNode(values, "", node); return values; } else { - return CollectionsHelper.mapOf(); + return Map.of(); } } diff --git a/config/config/src/main/java/io/helidon/config/spi/ConfigMapperProvider.java b/config/config/src/main/java/io/helidon/config/spi/ConfigMapperProvider.java index de3ef12ee4f..d3c135aa1f9 100644 --- a/config/config/src/main/java/io/helidon/config/spi/ConfigMapperProvider.java +++ b/config/config/src/main/java/io/helidon/config/spi/ConfigMapperProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ import java.util.function.BiFunction; import java.util.function.Function; -import io.helidon.common.CollectionsHelper; import io.helidon.common.GenericType; import io.helidon.config.Config; @@ -73,7 +72,7 @@ public interface ConfigMapperProvider { * {@link #mapper(Class)} is used instead */ default Map, BiFunction> genericTypeMappers() { - return CollectionsHelper.mapOf(); + return Map.of(); } /** diff --git a/config/config/src/main/java/io/helidon/config/spi/OverrideSource.java b/config/config/src/main/java/io/helidon/config/spi/OverrideSource.java index a8912e3fb91..4f5e96804a2 100644 --- a/config/config/src/main/java/io/helidon/config/spi/OverrideSource.java +++ b/config/config/src/main/java/io/helidon/config/spi/OverrideSource.java @@ -28,7 +28,6 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; @@ -156,7 +155,7 @@ public static OverrideData create(Reader reader) { * @return an empty object */ public static OverrideData empty() { - return new OverrideData(CollectionsHelper.listOf()); + return new OverrideData(List.of()); } /** diff --git a/config/config/src/test/java/io/helidon/config/AbstractConfigImplTestBase.java b/config/config/src/test/java/io/helidon/config/AbstractConfigImplTestBase.java index 19ce6b1d400..a5ac169f101 100644 --- a/config/config/src/test/java/io/helidon/config/AbstractConfigImplTestBase.java +++ b/config/config/src/test/java/io/helidon/config/AbstractConfigImplTestBase.java @@ -20,8 +20,6 @@ import java.util.List; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.api.Test; import static org.hamcrest.MatcherAssert.assertThat; @@ -157,7 +155,7 @@ void testConfigValueConvert() { // public static List objectNames(int level) { - return CollectionsHelper.listOf("text-" + level + "@VALUE", + return List.of("text-" + level + "@VALUE", "object-" + level + "@OBJECT", "list-" + level + "@LIST", "bool-" + level + "@VALUE", diff --git a/config/config/src/test/java/io/helidon/config/BuilderImplMappersTest.java b/config/config/src/test/java/io/helidon/config/BuilderImplMappersTest.java index 4da28bb97c0..dcdb888758e 100644 --- a/config/config/src/test/java/io/helidon/config/BuilderImplMappersTest.java +++ b/config/config/src/test/java/io/helidon/config/BuilderImplMappersTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,13 +22,11 @@ import java.util.function.Function; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.common.GenericType; import io.helidon.config.ConfigMapperManager.MapperProviders; import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.mapOf; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.is; @@ -42,11 +40,11 @@ public class BuilderImplMappersTest { @Test public void testUserDefinedHasPrecedenceInteger() { MapperProviders providers = MapperProviders.create(); - providers.add(() -> CollectionsHelper.mapOf(Integer.class, config -> 42)); + providers.add(() -> Map.of(Integer.class, config -> 42)); ConfigMapperManager manager = BuilderImpl.buildMappers(false, providers); Config config = Config.builder() - .sources(ConfigSources.create(mapOf("int-p", "2147483647"))) + .sources(ConfigSources.create(Map.of("int-p", "2147483647"))) .build(); assertThat(manager.map(config.get("int-p"), Integer.class), is(42)); @@ -56,11 +54,11 @@ public void testUserDefinedHasPrecedenceInteger() { @Test public void testUserDefinedHasPrecedenceOptionalInt() { MapperProviders providers = MapperProviders.create(); - providers.add(() -> CollectionsHelper.mapOf(OptionalInt.class, config -> OptionalInt.of(42))); + providers.add(() -> Map.of(OptionalInt.class, config -> OptionalInt.of(42))); ConfigMapperManager manager = BuilderImpl.buildMappers(false, providers); Config config = Config.builder() - .sources(ConfigSources.create(mapOf("int-p", "2147483647"))) + .sources(ConfigSources.create(Map.of("int-p", "2147483647"))) .build(); assertThat(manager.map(config.get("int-p"), Integer.class), is(2147483647)); @@ -70,8 +68,8 @@ public void testUserDefinedHasPrecedenceOptionalInt() { @Test public void testUserDefinedMapperProviderHasPrecedenceInteger() { Config config = Config.builder() - .sources(ConfigSources.create(mapOf("int-p", "2147483647"))) - .addMapper(() -> mapOf(Integer.class, c -> 43)) + .sources(ConfigSources.create(Map.of("int-p", "2147483647"))) + .addMapper(() -> Map.of(Integer.class, c -> 43)) .build(); assertThat(config.get("int-p").asInt().get(), is(43)); @@ -80,8 +78,8 @@ public void testUserDefinedMapperProviderHasPrecedenceInteger() { @Test public void testUserOverrideMapperFromMapperProvider() { Config config = Config.builder() - .sources(ConfigSources.create(mapOf("int-p", "2147483647"))) - .addMapper(() -> mapOf(Integer.class, c -> 43)) + .sources(ConfigSources.create(Map.of("int-p", "2147483647"))) + .addMapper(() -> Map.of(Integer.class, c -> 43)) .addStringMapper(Integer.class, (Function) s -> 44) .build(); @@ -90,14 +88,14 @@ public void testUserOverrideMapperFromMapperProvider() { @Test public void testDefaultMapMapper() { - Config config = Config.create(ConfigSources.create(mapOf("int-p", "2147483647"))); + Config config = Config.create(ConfigSources.create(Map.of("int-p", "2147483647"))); assertThat(config.asMap().get().get("int-p"), is("2147483647")); } @Test public void testUserDefinedHasPrecedenceStringMapMapper() { - Config config = Config.builder(ConfigSources.create(mapOf("int-p", "2147483647"))) + Config config = Config.builder(ConfigSources.create(Map.of("int-p", "2147483647"))) .addMapper(Map.class, new CustomStringMapMapper()) .build(); @@ -107,10 +105,10 @@ public void testUserDefinedHasPrecedenceStringMapMapper() { @Test public void testGenericTypeMapper() { - Config config = Config.builder(ConfigSources.create(mapOf("int-p", "2147483647"))) + Config config = Config.builder(ConfigSources.create(Map.of("int-p", "2147483647"))) .addMapper(new GenericType>() { }, - config1 -> config1.asInt().map(CollectionsHelper::setOf) - .orElse(CollectionsHelper.setOf())) + config1 -> config1.asInt().map(Set::of) + .orElse(Set.of())) .build(); Set integers = config.get("int-p").as(new GenericType>() { }).get(); @@ -120,7 +118,7 @@ public void testGenericTypeMapper() { @Test public void testUserDefinedHasPrecedenceStringBuilderMapMapper() { - Config config = Config.builder(ConfigSources.create(mapOf("int-p", "2147483647"))) + Config config = Config.builder(ConfigSources.create(Map.of("int-p", "2147483647"))) .addMapper(Map.class, new CustomStringBuilderMapMapper()) .build(); @@ -133,7 +131,7 @@ private static class CustomStringMapMapper implements Function { public Map apply(Config config) throws ConfigMappingException, MissingValueException { return ConfigMappers.toMap(config) .entrySet().stream() - .map(entry -> CollectionsHelper.mapEntry("prefix-" + entry.getKey(), + .map(entry -> Map.entry("prefix-" + entry.getKey(), "[" + entry.getValue() + "]")) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } @@ -144,7 +142,7 @@ private static class CustomStringBuilderMapMapper implements Function CollectionsHelper.mapEntry(new StringBuilder("prefix2-" + entry.getKey()), + .map(entry -> Map.entry(new StringBuilder("prefix2-" + entry.getKey()), new StringBuilder("{" + entry.getValue() + "}"))) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } diff --git a/config/config/src/test/java/io/helidon/config/BuilderImplParsersTest.java b/config/config/src/test/java/io/helidon/config/BuilderImplParsersTest.java index 926cf4b7028..8b717575b6a 100644 --- a/config/config/src/test/java/io/helidon/config/BuilderImplParsersTest.java +++ b/config/config/src/test/java/io/helidon/config/BuilderImplParsersTest.java @@ -20,7 +20,6 @@ import java.util.Optional; import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.internal.PropertiesConfigParser; import io.helidon.config.spi.ConfigNode.ObjectNode; import io.helidon.config.spi.ConfigParser; @@ -44,14 +43,14 @@ public class BuilderImplParsersTest { @Test public void testServicesDisabled() { - List parsers = BuilderImpl.buildParsers(false, CollectionsHelper.listOf()); + List parsers = BuilderImpl.buildParsers(false, List.of()); assertThat(parsers, hasSize(0)); } @Test public void testBuiltInParserLoaded() { - List parsers = BuilderImpl.buildParsers(true, CollectionsHelper.listOf()); + List parsers = BuilderImpl.buildParsers(true, List.of()); assertThat(parsers, hasSize(1)); assertThat(parsers.get(0), instanceOf(PropertiesConfigParser.class)); @@ -59,7 +58,7 @@ public void testBuiltInParserLoaded() { @Test public void testUserDefinedHasPrecedence() { - List parsers = BuilderImpl.buildParsers(true, CollectionsHelper.listOf(new MyConfigParser())); + List parsers = BuilderImpl.buildParsers(true, List.of(new MyConfigParser())); assertThat(parsers, hasSize(2)); assertThat(parsers.get(0), instanceOf(MyConfigParser.class)); @@ -68,7 +67,7 @@ public void testUserDefinedHasPrecedence() { @Test public void testContextFindParserEmpty() { - BuilderImpl.ConfigContextImpl context = new BuilderImpl.ConfigContextImpl(CollectionsHelper.listOf()); + BuilderImpl.ConfigContextImpl context = new BuilderImpl.ConfigContextImpl(List.of()); assertThat(context.findParser("_WHATEVER_"), is(Optional.empty())); } @@ -78,7 +77,7 @@ public void testContextFindParserNotAvailable() { ConfigParser.Content content = mock(ConfigParser.Content.class); when(content.mediaType()).thenReturn(TEST_MEDIA_TYPE); - BuilderImpl.ConfigContextImpl context = new BuilderImpl.ConfigContextImpl(CollectionsHelper.listOf( + BuilderImpl.ConfigContextImpl context = new BuilderImpl.ConfigContextImpl(List.of( mockParser("application/hocon", "application/json"), mockParser(), mockParser("application/x-yaml") @@ -94,7 +93,7 @@ public void testContextFindParserFindFirst() { ConfigParser firstParser = mockParser(TEST_MEDIA_TYPE); - BuilderImpl.ConfigContextImpl context = new BuilderImpl.ConfigContextImpl(CollectionsHelper.listOf( + BuilderImpl.ConfigContextImpl context = new BuilderImpl.ConfigContextImpl(List.of( mockParser("application/hocon", "application/json"), firstParser, mockParser(TEST_MEDIA_TYPE), @@ -106,7 +105,7 @@ public void testContextFindParserFindFirst() { private ConfigParser mockParser(String... supportedMediaTypes) { ConfigParser parser = mock(ConfigParser.class); - when(parser.supportedMediaTypes()).thenReturn(CollectionsHelper.setOf(supportedMediaTypes)); + when(parser.supportedMediaTypes()).thenReturn(Set.of(supportedMediaTypes)); return parser; } @@ -119,7 +118,7 @@ private static class MyConfigParser implements ConfigParser { @Override public Set supportedMediaTypes() { - return CollectionsHelper.setOf(); + return Set.of(); } @Override diff --git a/config/config/src/test/java/io/helidon/config/BuilderImplTest.java b/config/config/src/test/java/io/helidon/config/BuilderImplTest.java index 5a8bee5fdf7..e558f3ba51b 100644 --- a/config/config/src/test/java/io/helidon/config/BuilderImplTest.java +++ b/config/config/src/test/java/io/helidon/config/BuilderImplTest.java @@ -16,10 +16,10 @@ package io.helidon.config; +import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.Flow; -import io.helidon.common.CollectionsHelper; import io.helidon.config.test.infra.RestoreSystemPropertiesExt; import org.junit.jupiter.api.Test; @@ -60,7 +60,7 @@ public void testBuildDefault() { verify(spyBuilder).createProvider(notNull(), //ConfigMapperManager eq(BuilderImpl.ConfigSourceConfiguration.empty()), //ConfigSource eq(OverrideSources.empty()), //OverrideSource - eq(CollectionsHelper.listOf()), //filterProviders + eq(List.of()), //filterProviders eq(true), //cachingEnabled eq(BuilderImpl.DEFAULT_CHANGES_EXECUTOR), //changesExecutor eq(Flow.defaultBufferSize()), //changesMaxBuffer @@ -85,7 +85,7 @@ public void testBuildCustomChanges() { verify(spyBuilder).createProvider(notNull(), //ConfigMapperManager eq(BuilderImpl.ConfigSourceConfiguration.empty()), //ConfigSource eq(OverrideSources.empty()), //OverrideSource - eq(CollectionsHelper.listOf()), //filterProviders + eq(List.of()), //filterProviders eq(true), //cachingEnabled eq(myExecutor), //changesExecutor eq(1), //changesMaxBuffer @@ -112,7 +112,7 @@ public void testBuildDisableKeyResolving() { verify(spyBuilder).createProvider(notNull(), //ConfigMapperManager eq(BuilderImpl.ConfigSourceConfiguration.empty()), //ConfigSource eq(OverrideSources.empty()), //OverrideSource - eq(CollectionsHelper.listOf()), //filterProviders + eq(List.of()), //filterProviders eq(true), //cachingEnabled eq(myExecutor), //changesExecutor eq(1), //changesMaxBuffer diff --git a/config/config/src/test/java/io/helidon/config/ChainConfigFilterTest.java b/config/config/src/test/java/io/helidon/config/ChainConfigFilterTest.java index b5f211b5718..7e6c138df9e 100644 --- a/config/config/src/test/java/io/helidon/config/ChainConfigFilterTest.java +++ b/config/config/src/test/java/io/helidon/config/ChainConfigFilterTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,9 @@ package io.helidon.config; import java.util.HashMap; +import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; -import io.helidon.common.CollectionsHelper; import io.helidon.config.ProviderImpl.ChainConfigFilter; import io.helidon.config.internal.ConfigKeyImpl; import io.helidon.config.spi.ConfigFilter; @@ -114,7 +114,7 @@ public void testSingleConfigFilterListWithConfig() { final String defaultValue = "default value"; Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf(key, originalValue))) + .sources(ConfigSources.create(Map.of(key, originalValue))) .addFilter(new AssertingFilter.Provider( key, originalValue, @@ -180,7 +180,7 @@ private void runQuadTests(boolean useCaching) { private final void runQuadTest(boolean useCaching, String expectedValue, AssertingFilter.Provider... filterProviders) { Config.Builder builder = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf( + .sources(ConfigSources.create(Map.of( Quad.key, Quad.originalValue, Quad.referenceKey, Quad.referenceValue))); if (! useCaching) { builder.disableCaching(); @@ -217,7 +217,7 @@ public void testValueCachedWithConfigCachingEnabled() { AtomicInteger counter = new AtomicInteger(); Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf(key, originalValue))) + .sources(ConfigSources.create(Map.of(key, originalValue))) .addFilter(new AssertingFilter.Provider( key, originalValue, @@ -240,7 +240,7 @@ public void testValueCachedWithConfigCachingDisabled() { AtomicInteger counter = new AtomicInteger(); Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf(key, originalValue))) + .sources(ConfigSources.create(Map.of(key, originalValue))) .addFilter(new AssertingFilter.Provider( key, originalValue, diff --git a/config/config/src/test/java/io/helidon/config/CompositeConfigSourceTest.java b/config/config/src/test/java/io/helidon/config/CompositeConfigSourceTest.java index 9558966a0a4..d05313c8b15 100644 --- a/config/config/src/test/java/io/helidon/config/CompositeConfigSourceTest.java +++ b/config/config/src/test/java/io/helidon/config/CompositeConfigSourceTest.java @@ -21,13 +21,13 @@ import java.time.Duration; import java.time.Instant; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.concurrent.Flow; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; -import io.helidon.common.CollectionsHelper; import io.helidon.config.internal.PropertiesConfigParser; import io.helidon.config.spi.ConfigContext; import io.helidon.config.spi.ConfigNode.ObjectNode; @@ -69,7 +69,7 @@ public void testDescription() throws MalformedURLException { ConfigSource configSource = ConfigSources.create() .add(ConfigSources.classpath("application.conf")) .add(ConfigSources.create(ObjectNode.builder().addValue("prop1", "1").build())) - .add(ConfigSources.create(CollectionsHelper.mapOf())) + .add(ConfigSources.create(Map.of())) .add(ConfigSources.create(ObjectNode.builder().addValue("prop1", "2").build())) .build(); diff --git a/config/config/src/test/java/io/helidon/config/ConfigAsciidocGenerator.java b/config/config/src/test/java/io/helidon/config/ConfigAsciidocGenerator.java index bae2f2d6a5d..eeac38d9737 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigAsciidocGenerator.java +++ b/config/config/src/test/java/io/helidon/config/ConfigAsciidocGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,8 +41,6 @@ import java.util.function.Predicate; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; - /** * Generates Asciidoc documentation for some API areas. * The output of this generator is manually copy-pasted into Prime SDK DevGuide. @@ -54,12 +52,12 @@ public class ConfigAsciidocGenerator { private static final String CONFIG_ACCESSORS_FILE = "advanced-config_accessors.adoc"; public static void main(String... args) throws IOException { - processArgs(CollectionsHelper.setOf(args)); + processArgs(Set.of(args)); } public static void processArgs(Set args) throws IOException { if (args.isEmpty()) { - args = CollectionsHelper.setOf("-am", "-bm"); + args = Set.of("-am", "-bm"); } Path dir = Files.createTempDirectory(TEMP_DIR); @@ -180,7 +178,7 @@ private static void processMethods(StringBuffer buffer, { //get a single value SortedMap> methods = new TreeMap<>(); - final List kinds = CollectionsHelper.listOf(new KindDesc("Generic (`T`)", Class.class), + final List kinds = List.of(new KindDesc("Generic (`T`)", Class.class), new KindDesc("`String`", "String" + methodSuffix), new KindDesc("`Int`", "Int" + methodSuffix), new KindDesc("`Long`", "Long" + methodSuffix), @@ -199,7 +197,7 @@ private static void processMethods(StringBuffer buffer, { //get a list of values SortedMap> methods = new TreeMap<>(); - final List kinds = CollectionsHelper.listOf(new KindDesc("Generic (`List`)", Class.class), + final List kinds = List.of(new KindDesc("Generic (`List`)", Class.class), new KindDesc("`List`", "StringList" + methodSuffix), new KindDesc("`List`", "NodeList" + methodSuffix)); @@ -214,7 +212,7 @@ private static void processMethods(StringBuffer buffer, { //map a single value SortedMap> methods = new TreeMap<>(); - final List kinds = CollectionsHelper.listOf(new KindDesc("Simple `Function` (`T`)", Function.class), + final List kinds = List.of(new KindDesc("Simple `Function` (`T`)", Function.class), new KindDesc("Complex `ConfigMapper` (`T`)", Function.class)); allAccessorMethods.stream() @@ -228,7 +226,7 @@ private static void processMethods(StringBuffer buffer, { //map a list of values SortedMap> methods = new TreeMap<>(); - final List kinds = CollectionsHelper.listOf(new KindDesc("Simple `Function` (`List`)", Function.class), + final List kinds = List.of(new KindDesc("Simple `Function` (`List`)", Function.class), new KindDesc("Complex `ConfigMapper` (`List`)", Function.class)); allAccessorMethods.stream() diff --git a/config/config/src/test/java/io/helidon/config/ConfigChangesTest.java b/config/config/src/test/java/io/helidon/config/ConfigChangesTest.java index 2d7c9120a95..323b89a8019 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigChangesTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigChangesTest.java @@ -22,7 +22,6 @@ import java.util.concurrent.TimeUnit; import java.util.function.Function; -import io.helidon.common.CollectionsHelper; import io.helidon.config.spi.ConfigNode; import io.helidon.config.spi.ConfigNode.ObjectNode; import io.helidon.config.spi.TestingConfigSource; @@ -287,7 +286,7 @@ public void testChangesJustSingleSubscriptionOnConfigSource() throws Interrupted assertThat(configSource.isCancelPollingStrategyInvoked(), is(false)); List subscribers = new LinkedList<>(); - CollectionsHelper.listOf("", "key1", "sub.key1", "", "key1").forEach(key -> { + List.of("", "key1", "sub.key1", "", "key1").forEach(key -> { TestingConfigChangeSubscriber subscriber = new TestingConfigChangeSubscriber(); config.get(key).changes().subscribe(subscriber); subscribers.add(subscriber); diff --git a/config/config/src/test/java/io/helidon/config/ConfigContextTest.java b/config/config/src/test/java/io/helidon/config/ConfigContextTest.java index 0527610731c..c244221a9f6 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigContextTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigContextTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ package io.helidon.config; import java.util.AbstractMap.SimpleEntry; +import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.stream.Stream; -import io.helidon.common.CollectionsHelper; import io.helidon.config.spi.ConfigNode.ObjectNode; import io.helidon.config.spi.TestingConfigSource; @@ -93,10 +93,10 @@ public static Stream> initParams() { private static ObjectNode createSource(String valuePrefix) { ObjectNode.Builder builder = ObjectNode.builder(); int i = 0; - for (String detachKey : CollectionsHelper.listOf("", "prefix")) { + for (String detachKey : List.of("", "prefix")) { i++; int j = 0; - for (String key : CollectionsHelper.listOf("", "sub")) { + for (String key : List.of("", "sub")) { j++; String realKey = concatKeys(concatKeys(detachKey, key), PROP1); builder.addValue(realKey, valuePrefix + "Val_" + i + "_" + j); diff --git a/config/config/src/test/java/io/helidon/config/ConfigDiffTest.java b/config/config/src/test/java/io/helidon/config/ConfigDiffTest.java index 5d6d3c9c507..69ba01bc54b 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigDiffTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigDiffTest.java @@ -19,8 +19,6 @@ import java.util.Map; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.api.Test; import static org.hamcrest.MatcherAssert.assertThat; @@ -33,32 +31,32 @@ */ public class ConfigDiffTest { - private static final Map OBJECT_WITH_LEAVES = CollectionsHelper.mapOf( + private static final Map OBJECT_WITH_LEAVES = Map.of( "o.p.q", "something", "a.a", "value", "a.b", "value" ); - private static final Map OBJECT_WITH_LEAVES_CHANGED_LEAF = CollectionsHelper.mapOf( + private static final Map OBJECT_WITH_LEAVES_CHANGED_LEAF = Map.of( "o.p.q", "something", "a.a", "value", "a.b", "new value" ); - private static final Map OBJECT_WITH_LEAVES_CHANGED_LEAF_TO_OBJECT = CollectionsHelper.mapOf( + private static final Map OBJECT_WITH_LEAVES_CHANGED_LEAF_TO_OBJECT = Map.of( "o.p.q", "something", "a.a", "value", "a.b.a", "value" ); - private static final Map OBJECT_WITH_LEAVES_ADDED_LEAF = CollectionsHelper.mapOf( + private static final Map OBJECT_WITH_LEAVES_ADDED_LEAF = Map.of( "o.p.q", "something", "a.a", "value", "a.b", "value", "a.c", "value" ); - private static final Map OBJECT_WITH_LEAVES_ADDED_OBJECT = CollectionsHelper.mapOf( + private static final Map OBJECT_WITH_LEAVES_ADDED_OBJECT = Map.of( "o.p.q", "something", "a.a", "value", "a.b", "value", diff --git a/config/config/src/test/java/io/helidon/config/ConfigEmptyTest.java b/config/config/src/test/java/io/helidon/config/ConfigEmptyTest.java index 95f45c14a6c..119372f86c7 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigEmptyTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigEmptyTest.java @@ -19,8 +19,6 @@ import java.util.List; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.api.Test; import static org.hamcrest.MatcherAssert.assertThat; @@ -81,7 +79,7 @@ public void testAsStringList() { @Test public void testAsStringListDefault() { - List list = CollectionsHelper.listOf("record"); + List list = List.of("record"); assertThat(Config.empty().asList(String.class).orElse(list), is(empty())); } @@ -93,7 +91,7 @@ public void testAsIntList() { @Test public void testAsIntListDefault() { - List list = CollectionsHelper.listOf(5); + List list = List.of(5); assertThat(Config.empty().asList(Integer.class).orElse(list), is(empty())); } @@ -171,7 +169,7 @@ public void testAsStringListSupplier() { @Test public void testAsStringListDefaultSupplier() { - List list = CollectionsHelper.listOf("record"); + List list = List.of("record"); assertThat(Config.empty() .asList(String.class) @@ -191,7 +189,7 @@ public void testAsIntListSupplier() { @Test public void testAsIntListDefaultSupplier() { - List list = CollectionsHelper.listOf(5); + List list = List.of(5); assertThat(Config.empty() .asList(Integer.class) diff --git a/config/config/src/test/java/io/helidon/config/ConfigListImplTest.java b/config/config/src/test/java/io/helidon/config/ConfigListImplTest.java index 20622576e24..32ee6bed6ff 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigListImplTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigListImplTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,8 +20,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -100,7 +98,7 @@ public void testTraverseWithPredicate(TestContext context) { assertThat(allSubKeys, hasSize(subNodesNoObjects())); } - @MethodSource("initParams") + @MethodSource("initParams") @ParameterizedTest public void testAsOptionalListFromStringSupplier(TestContext context) { init(context); @@ -253,14 +251,14 @@ public void testToString(TestContext context) { @Override protected ObjectConfigBean[] expectedObjectConfigBeans() { - return CollectionsHelper.listOf(new ObjectConfigBean("fromConfig", "key:0@VALUE"), - new ObjectConfigBean("fromConfig", "key:1@OBJECT"), - new ObjectConfigBean("fromConfig", "key:2@LIST"), - new ObjectConfigBean("fromConfig", "key:3@VALUE"), - new ObjectConfigBean("fromConfig", "key:4@VALUE"), - new ObjectConfigBean("fromConfig", "key:5@VALUE"), - new ObjectConfigBean("fromConfig", "key:6@VALUE"), - new ObjectConfigBean("fromConfig", "key:7@LIST")) + return List.of(new ObjectConfigBean("fromConfig", "key:0@VALUE"), + new ObjectConfigBean("fromConfig", "key:1@OBJECT"), + new ObjectConfigBean("fromConfig", "key:2@LIST"), + new ObjectConfigBean("fromConfig", "key:3@VALUE"), + new ObjectConfigBean("fromConfig", "key:4@VALUE"), + new ObjectConfigBean("fromConfig", "key:5@VALUE"), + new ObjectConfigBean("fromConfig", "key:6@VALUE"), + new ObjectConfigBean("fromConfig", "key:7@LIST")) .toArray(new ObjectConfigBean[0]); } diff --git a/config/config/src/test/java/io/helidon/config/ConfigMapperManagerTest.java b/config/config/src/test/java/io/helidon/config/ConfigMapperManagerTest.java index fa5ef7120f1..610cb8104bd 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigMapperManagerTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigMapperManagerTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,7 +27,6 @@ import java.util.function.Function; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.common.GenericType; import io.helidon.config.ConfigMapperManager.MapperProviders; import io.helidon.config.spi.ConfigMapper; @@ -102,8 +101,8 @@ void testSingleValueConfigImpl() { assertThat(map, hasEntry("key1", "42")); } assertThat(config.as(Integer.class).get(), is(42)); - assertThat(config.asNodeList().get(), is(CollectionsHelper.listOf(config))); - assertThat(config.asList(String.class).get(), is(CollectionsHelper.listOf("42"))); + assertThat(config.asNodeList().get(), is(List.of(config))); + assertThat(config.asList(String.class).get(), is(List.of("42"))); Config.Context context = config.context(); @@ -122,7 +121,7 @@ void testGenericTypeMapperMap() { ConfigValue> map = config.as(new GenericType>() { }); - assertThat(map.get(), is(CollectionsHelper.mapOf("test", 1))); + assertThat(map.get(), is(Map.of("test", 1))); } @Test @@ -135,7 +134,7 @@ void testGenericTypeMapperList() { ConfigValue>> map = config.as(new GenericType>>() { }); - assertThat(map.get(), is(CollectionsHelper.mapOf("test", CollectionsHelper.listOf(1)))); + assertThat(map.get(), is(Map.of("test", List.of(1)))); } // this will not work, as beans are moved away from core @@ -147,7 +146,7 @@ public CustomClass() { private static class ParametrizedConfigMapper implements ConfigMapperProvider { @Override public Map, Function> mappers() { - return CollectionsHelper.mapOf(); + return Map.of(); } @Override diff --git a/config/config/src/test/java/io/helidon/config/ConfigMappersFailingTest.java b/config/config/src/test/java/io/helidon/config/ConfigMappersFailingTest.java index 6a22159772c..3deb9a75dc2 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigMappersFailingTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigMappersFailingTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ import java.util.Properties; import java.util.stream.Stream; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -56,7 +54,7 @@ public void testMappingFails(Class type) { String key = "config.key.with.wrong.format"; Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf(key, ") bad, bad value "))) + .sources(ConfigSources.create(Map.of(key, ") bad, bad value "))) .build(); ConfigMappingException ex = assertThrows(ConfigMappingException.class, () -> { diff --git a/config/config/src/test/java/io/helidon/config/ConfigMappersTest.java b/config/config/src/test/java/io/helidon/config/ConfigMappersTest.java index c0478ab68fb..95f87b1fdd7 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigMappersTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigMappersTest.java @@ -45,6 +45,7 @@ import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; +import java.util.Map; import java.util.OptionalDouble; import java.util.OptionalInt; import java.util.OptionalLong; @@ -54,8 +55,6 @@ import java.util.UUID; import java.util.regex.Pattern; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.api.Test; import static org.hamcrest.MatcherAssert.assertThat; @@ -106,7 +105,7 @@ public void testEssentialMappers() { ConfigMapperManager.MapperProviders.create()); Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf( + .sources(ConfigSources.create(Map.of( "text-text", "string value", "int-p", "2147483647", "long-p", "9223372036854775807", @@ -125,7 +124,7 @@ private void assertMapper(String stringValue, Class type, T expectedValue ConfigMapperManager.MapperProviders.create()); Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf("key", stringValue))) + .sources(ConfigSources.create(Map.of("key", stringValue))) .build(); assertThat(manager.map(config.get("key"), type), is(expectedValue)); @@ -213,7 +212,7 @@ public void testBuiltinMappersPattern() throws MalformedURLException { ConfigMapperManager.MapperProviders.create()); Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf("key", "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$"))) + .sources(ConfigSources.create(Map.of("key", "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$"))) .build(); assertThat(manager.map(config.get("key"), Pattern.class).toString(), @@ -250,7 +249,7 @@ public void testBuiltinMappersSubNodeProperties() throws MalformedURLException { private Config createConfig() { return Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf( + .sources(ConfigSources.create(Map.of( "key1", "value1", "key2.key21", "value21", "key2.key22", "value22", diff --git a/config/config/src/test/java/io/helidon/config/ConfigObjectImplTest.java b/config/config/src/test/java/io/helidon/config/ConfigObjectImplTest.java index bb981dc297d..5df5da568a7 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigObjectImplTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigObjectImplTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import static io.helidon.common.CollectionsHelper.listOf; import static io.helidon.config.Config.Type.OBJECT; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.both; @@ -231,7 +230,7 @@ protected String[] itemNames() { @Override protected ObjectConfigBean[] expectedObjectConfigBeans() { - return listOf( + return List.of( new ObjectConfigBean("fromConfig", "key:double-" + level() + "@VALUE"), new ObjectConfigBean("fromConfig", "key:bool-" + level() + "@VALUE"), new ObjectConfigBean("fromConfig", "key:object-" + level() + "@OBJECT"), diff --git a/config/config/src/test/java/io/helidon/config/ConfigSourcesTest.java b/config/config/src/test/java/io/helidon/config/ConfigSourcesTest.java index 501bf228f63..6b120fea4df 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigSourcesTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigSourcesTest.java @@ -30,7 +30,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import static io.helidon.common.CollectionsHelper.mapOf; import static io.helidon.config.ConfigSources.DEFAULT_MAP_NAME; import static io.helidon.config.ConfigSources.DEFAULT_PROPERTIES_NAME; import static io.helidon.config.ConfigSources.prefixed; @@ -72,7 +71,7 @@ public void testEmptyIsAlwaysTheSameInstance() { @Test public void testFromConfig() { - Map source = mapOf("object.leaf", "value"); + Map source = Map.of("object.leaf", "value"); ConfigSource originConfigSource = ConfigSources.create(source).build(); Config originConfig = Config.builder(originConfigSource) @@ -91,7 +90,7 @@ public void testFromConfig() { @Test public void testPrefix() { - assertThat(Config.create(prefixed("security", ConfigSources.create(mapOf("credentials.username", "libor")))) + assertThat(Config.create(prefixed("security", ConfigSources.create(Map.of("credentials.username", "libor")))) .get("security.credentials.username") .asString(), is(ConfigValues.simpleValue("libor"))); @@ -100,7 +99,7 @@ public void testPrefix() { @Test public void testPrefixDescription() { - ConfigSource source = ConfigSources.create(mapOf("credentials.username", "libor")).build(); + ConfigSource source = ConfigSources.create(Map.of("credentials.username", "libor")).build(); assertThat(prefixed("security", source).description(), is("prefixed[security]:" + source.description())); } @@ -253,7 +252,7 @@ public void testPrecedence() { // The assertions below that differ are marked with a "DIFFERENCE" N comment. System.setProperty("com.ACME.size", "sys-prop-value"); - Map appValues = mapOf("app.key", "app-value", + Map appValues = Map.of("app.key", "app-value", "com.ACME.size", "app-value", "server.executor-service.max-pool-size", "app-value"); diff --git a/config/config/src/test/java/io/helidon/config/ConfigValuesTest.java b/config/config/src/test/java/io/helidon/config/ConfigValuesTest.java index cdf76ccccdf..26e864e7339 100644 --- a/config/config/src/test/java/io/helidon/config/ConfigValuesTest.java +++ b/config/config/src/test/java/io/helidon/config/ConfigValuesTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,8 +21,6 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -41,7 +39,7 @@ class ConfigValuesTest { @BeforeAll static void initClass() { empty = Config.empty(); - Map theMap = CollectionsHelper.mapOf( + Map theMap = Map.of( "first", "124" ); full = Config.create(ConfigSources.create(theMap)); diff --git a/config/config/src/test/java/io/helidon/config/FallbackMergingStrategyTest.java b/config/config/src/test/java/io/helidon/config/FallbackMergingStrategyTest.java index 606af1a8352..4c52aa067c6 100644 --- a/config/config/src/test/java/io/helidon/config/FallbackMergingStrategyTest.java +++ b/config/config/src/test/java/io/helidon/config/FallbackMergingStrategyTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,10 @@ package io.helidon.config; +import java.util.List; import java.util.Optional; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.config.spi.ConfigContext; import io.helidon.config.spi.ConfigNode.ListNode; import io.helidon.config.spi.ConfigNode.ObjectNode; @@ -43,7 +43,7 @@ public class FallbackMergingStrategyTest { private ObjectNode mergeLoads(ConfigSource... configSources) { FallbackMergingStrategy strategy = new FallbackMergingStrategy(); ConfigContext context = mock(ConfigContext.class); - return strategy.merge(CollectionsHelper.listOf(configSources).stream() + return strategy.merge(List.of(configSources).stream() .peek(source -> source.init(context)) .map(ConfigSource::load) .filter(Optional::isPresent) @@ -97,7 +97,7 @@ public void testMergeValueToList() { .addValue("2").build()).build())); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "VALUE", "LIST"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "VALUE", "LIST"))); } @Test @@ -109,7 +109,7 @@ public void testMergeValueToObject() { ConfigSources.create(ObjectNode.builder().addValue("top1.prop1.sub", "2").build())); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "VALUE", "OBJECT"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "VALUE", "OBJECT"))); } @Test @@ -121,7 +121,7 @@ public void testMergeObjectToValue() { ConfigSources.create(ObjectNode.builder().addValue("top1.prop1", "2").build())); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "OBJECT", "VALUE"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "OBJECT", "VALUE"))); } @Test @@ -133,7 +133,7 @@ public void testMergeObjectWithNonNumberKeyToList() { .addValue("2").build()).build())); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "OBJECT", "[sub1]", "LIST"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "OBJECT", "[sub1]", "LIST"))); } @Test @@ -159,7 +159,7 @@ public void testMergeObjectWithNumberKeyOutOfBoundsToList() { .build())); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "OBJECT", "[1]", "LIST"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "OBJECT", "[1]", "LIST"))); } @Test @@ -187,7 +187,7 @@ public void testMergeListToValue() { ConfigSources.create(ObjectNode.builder().addValue("top1.prop1", "2").build())); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "LIST", "VALUE"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "LIST", "VALUE"))); } @Test @@ -220,7 +220,7 @@ public void testMergeListToObjectWithNonNumberKey() { ConfigSources.create(ObjectNode.builder().addValue("top1.prop1.sub1", "2").build())); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "LIST", "OBJECT"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "LIST", "OBJECT"))); } @Test @@ -234,7 +234,7 @@ public void testMergeListToObjectWithNumberKey() { ConfigSources.create(ObjectNode.builder().addValue("top1.prop1.0", "2").build())); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "LIST", "OBJECT"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "LIST", "OBJECT"))); } @Test diff --git a/config/config/src/test/java/io/helidon/config/FilterLoadingTest.java b/config/config/src/test/java/io/helidon/config/FilterLoadingTest.java index 11916fcddec..0850031e977 100644 --- a/config/config/src/test/java/io/helidon/config/FilterLoadingTest.java +++ b/config/config/src/test/java/io/helidon/config/FilterLoadingTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,8 @@ package io.helidon.config; -import io.helidon.common.CollectionsHelper; +import java.util.Map; + import io.helidon.config.internal.AutoLoadedConfigFilter; import io.helidon.config.internal.AutoLoadedConfigHighPriority; import io.helidon.config.internal.AutoLoadedConfigPriority; @@ -44,7 +45,7 @@ public FilterLoadingTest() { public void testAutoLoadedFilter() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( UNAFFECTED_KEY, UNAFFECTED_VALUE, AutoLoadedConfigFilter.KEY_SUBJECT_TO_AUTO_FILTERING, ORIGINAL_VALUE_SUBJECT_TO_AUTO_FILTERING, @@ -64,7 +65,7 @@ public void testAutoLoadedFilter() { public void testSuppressedAutoLoadedFilter() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( UNAFFECTED_KEY, "value1", AutoLoadedConfigFilter.KEY_SUBJECT_TO_AUTO_FILTERING, ORIGINAL_VALUE_SUBJECT_TO_AUTO_FILTERING, @@ -85,7 +86,7 @@ public void testSuppressedAutoLoadedFilter() { public void testPrioritizedAutoLoadedConfigFilters() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( UNAFFECTED_KEY, "value1", AutoLoadedConfigPriority.KEY_SUBJECT_TO_AUTO_FILTERING, ORIGINAL_VALUE_SUBJECT_TO_AUTO_FILTERING, @@ -105,7 +106,7 @@ public void testPrioritizedAutoLoadedConfigFilters() { public void testSuppressedPrioritizedAutoLoadedConfigFilters() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( UNAFFECTED_KEY, "value1", AutoLoadedConfigPriority.KEY_SUBJECT_TO_AUTO_FILTERING, ORIGINAL_VALUE_SUBJECT_TO_AUTO_FILTERING, diff --git a/config/config/src/test/java/io/helidon/config/HybridNodeTest.java b/config/config/src/test/java/io/helidon/config/HybridNodeTest.java index 3f596af6bec..f09e8e54693 100644 --- a/config/config/src/test/java/io/helidon/config/HybridNodeTest.java +++ b/config/config/src/test/java/io/helidon/config/HybridNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,9 @@ package io.helidon.config; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; -import io.helidon.common.CollectionsHelper; import io.helidon.config.internal.MapConfigSource; import io.helidon.config.spi.ConfigContext; import io.helidon.config.spi.ConfigNode; @@ -95,6 +95,6 @@ public void testListNodeValue() { public void testListValue() { assertThat("app1.node1.value should be reachable as list", config.get("app1.node1.value").asList(Integer.class).get(), - is(CollectionsHelper.listOf(14, 15, 16))); + is(List.of(14, 15, 16))); } } diff --git a/config/config/src/test/java/io/helidon/config/InMemoryOverrideSourceTest.java b/config/config/src/test/java/io/helidon/config/InMemoryOverrideSourceTest.java index d25c870e099..5c43ce28260 100644 --- a/config/config/src/test/java/io/helidon/config/InMemoryOverrideSourceTest.java +++ b/config/config/src/test/java/io/helidon/config/InMemoryOverrideSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,10 @@ package io.helidon.config; import java.util.AbstractMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.config.internal.OverrideConfigFilter; import io.helidon.config.spi.OverrideSource; @@ -39,13 +40,13 @@ public class InMemoryOverrideSourceTest { public void testWildcards() { Config config = Config.builder() .sources(ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "aaa.bbb.name", "app-name", "aaa.bbb.url", "URL0", "aaa.anything", "1", "bbb", "ahoy" ))) - .overrides(OverrideSources.create(CollectionsHelper.mapOf("*.*.url", "URL1"))) + .overrides(OverrideSources.create(Map.of("*.*.url", "URL1"))) .disableEnvironmentVariablesSource() .disableSystemPropertiesSource() .build(); @@ -62,13 +63,13 @@ public void testWildcards() { public void testWildcards2() { Config config = Config.builder() .sources(ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "aaa.bbb.name", "app-name", "aaa.bbb.url", "URL0", "aaa.anything", "1", "bbb", "ahoy" ))) - .overrides(OverrideSources.create(CollectionsHelper.mapOf("*.url", "URL1"))) + .overrides(OverrideSources.create(Map.of("*.url", "URL1"))) .disableEnvironmentVariablesSource() .disableSystemPropertiesSource() .build(); @@ -85,14 +86,14 @@ public void testWildcards2() { public void testAsConfigFilter() { Config config = Config.builder() .sources(ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "aaa.bbb.name", "app-name", "aaa.bbb.url", "URL0", "aaa.anything", "1", "bbb", "ahoy" ))) .addFilter(new OverrideConfigFilter(() -> OverrideSource.OverrideData.createFromWildcards( - CollectionsHelper.mapOf("*.*.url", "URL1") + Map.of("*.*.url", "URL1") .entrySet() .stream() .map(e -> new AbstractMap.SimpleEntry<>(e.getKey(), e.getValue())) @@ -112,7 +113,7 @@ public void testAsConfigFilter() { @Test void testBuilderDefault() { ConfigException ex = assertThrows(ConfigException.class, () -> { - new InMemoryOverrideSource.Builder(CollectionsHelper.listOf()).build(); + new InMemoryOverrideSource.Builder(List.of()).build(); }); assertThat(ex.getMessage(), startsWith("Override values cannot be empty.")); } diff --git a/config/config/src/test/java/io/helidon/config/MpConfigTest.java b/config/config/src/test/java/io/helidon/config/MpConfigTest.java index 073415f8b01..72bea619c8f 100644 --- a/config/config/src/test/java/io/helidon/config/MpConfigTest.java +++ b/config/config/src/test/java/io/helidon/config/MpConfigTest.java @@ -17,9 +17,9 @@ import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.config.internal.MapConfigSource; import org.eclipse.microprofile.config.Config; @@ -43,13 +43,13 @@ public class MpConfigTest { static void initClass() { Object helidonConfig = io.helidon.config.Config.builder() .addSource(ConfigSources.classpath("io/helidon/config/application.properties")) - .addSource(ConfigSources.create(CollectionsHelper.mapOf("mp-1", "mp-value-1", - "mp-2", "mp-value-2", - "app.storageEnabled", "false", - "mp-array", "a,b,c", - "mp-list.0", "1", - "mp-list.1", "2", - "mp-list.2", "3"))) + .addSource(ConfigSources.create(Map.of("mp-1", "mp-value-1", + "mp-2", "mp-value-2", + "app.storageEnabled", "false", + "mp-array", "a,b,c", + "mp-list.0", "1", + "mp-list.1", "2", + "mp-list.2", "3"))) .disableEnvironmentVariablesSource() .disableSystemPropertiesSource() .build(); diff --git a/config/config/src/test/java/io/helidon/config/TreeStructureTests.java b/config/config/src/test/java/io/helidon/config/TreeStructureTests.java index 1c3a92fcbe2..e07051fa033 100644 --- a/config/config/src/test/java/io/helidon/config/TreeStructureTests.java +++ b/config/config/src/test/java/io/helidon/config/TreeStructureTests.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,7 +15,8 @@ */ package io.helidon.config; -import io.helidon.common.CollectionsHelper; +import java.util.List; +import java.util.Map; import org.junit.jupiter.api.Test; @@ -29,13 +30,13 @@ public class TreeStructureTests { @Test void testEmptyLeafAndTreeNodes() { Config config = Config.builder(ConfigSources.create( - CollectionsHelper.mapOf("a", "rootValue", - "a.b", "leafTreeNode", - "a.b.c", "leafNode", - "b.c", "leafNode", - "c.a.0", "first", - "c.a.1", "second", - "c.a.2", "third") + Map.of("a", "rootValue", + "a.b", "leafTreeNode", + "a.b.c", "leafNode", + "b.c", "leafNode", + "c.a.0", "first", + "c.a.1", "second", + "c.a.2", "third") )).build(); assertThat(config.get("a").asString(), is(ConfigValues.simpleValue("rootValue"))); @@ -47,13 +48,13 @@ void testEmptyLeafAndTreeNodes() { assertThat(config.get("c").asString(), is(ConfigValues.empty())); assertThat(config.get("c.a").asString(), is(ConfigValues.empty())); - assertThat(config.get("c.a").asList(String.class).get(), is(CollectionsHelper.listOf("first", "second", "third"))); + assertThat(config.get("c.a").asList(String.class).get(), is(List.of("first", "second", "third"))); } @Test void testListAndDirectValue() { Config config = Config.builder(ConfigSources.create( - CollectionsHelper.mapOf("c.a", "treeAndLeafNode", + Map.of("c.a", "treeAndLeafNode", "c.a.0", "first", "c.a.1", "second", "c.a.2", "third") @@ -61,6 +62,6 @@ void testListAndDirectValue() { assertThat(config.get("c").asString(), is(ConfigValues.empty())); assertThat(config.get("c.a").asString(), is(ConfigValues.simpleValue("treeAndLeafNode"))); - assertThat(config.get("c.a").asList(String.class).get(), is(CollectionsHelper.listOf("first", "second", "third"))); + assertThat(config.get("c.a").asList(String.class).get(), is(List.of("first", "second", "third"))); } } diff --git a/config/config/src/test/java/io/helidon/config/UseFirstAvailableConfigSourceTest.java b/config/config/src/test/java/io/helidon/config/UseFirstAvailableConfigSourceTest.java index 33ee7d1cf13..dfa5987af36 100644 --- a/config/config/src/test/java/io/helidon/config/UseFirstAvailableConfigSourceTest.java +++ b/config/config/src/test/java/io/helidon/config/UseFirstAvailableConfigSourceTest.java @@ -16,9 +16,9 @@ package io.helidon.config; +import java.util.List; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.config.spi.ConfigContext; import org.junit.jupiter.api.Test; @@ -45,7 +45,7 @@ public void testDescriptionAvailable() { ); assertThat(configSource.description(), - stringContainsInOrder(CollectionsHelper.listOf( + stringContainsInOrder(List.of( "ClasspathConfig[application.yaml]?->ClasspathConfig[", "io/helidon/config/application.properties]?->ClasspathConfig[", "io/helidon/config/application.conf]->ClasspathConfig[", @@ -57,7 +57,7 @@ public void testDescriptionAvailable() { configSource.init(context); configSource.load(); assertThat(configSource.description(), - stringContainsInOrder(CollectionsHelper.listOf( + stringContainsInOrder(List.of( "(ClasspathConfig[application.yaml]?)->*ClasspathConfig[", "io/helidon/config/application.properties]?*->/ClasspathConfig[", "io/helidon/config/application.conf]/->/ClasspathConfig[", diff --git a/config/config/src/test/java/io/helidon/config/internal/FilesystemWatchPollingStrategyTest.java b/config/config/src/test/java/io/helidon/config/internal/FilesystemWatchPollingStrategyTest.java index 9020157e339..7321d85f3fe 100644 --- a/config/config/src/test/java/io/helidon/config/internal/FilesystemWatchPollingStrategyTest.java +++ b/config/config/src/test/java/io/helidon/config/internal/FilesystemWatchPollingStrategyTest.java @@ -22,12 +22,12 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.List; import java.util.UUID; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Flow; import java.util.concurrent.TimeUnit; -import io.helidon.common.CollectionsHelper; import io.helidon.common.reactive.SubmissionPublisher; import io.helidon.config.spi.PollingStrategy; import io.helidon.config.test.infra.TemporaryFolderExt; @@ -241,13 +241,13 @@ public void onComplete() { assertThat(subscribeLatch.await(10, TimeUnit.MILLISECONDS), is(true)); - Path targetDir = createFile(WATCHED_FILE, CollectionsHelper.listOf("a: a")); + Path targetDir = createFile(WATCHED_FILE, List.of("a: a")); Path symlinkToDir = Files.createSymbolicLink(Paths.get(dir.getRoot().toString(), "symlink-to-target-dir"), targetDir); Path symlink = Files.createSymbolicLink(Paths.get(dir.getRoot().toString(), WATCHED_FILE), Paths.get(symlinkToDir.toString(), WATCHED_FILE)); mockPollingStrategy.startWatchService(); - Path newTarget = createFile(WATCHED_FILE, CollectionsHelper.listOf("a: b")); + Path newTarget = createFile(WATCHED_FILE, List.of("a: b")); Files.walk(targetDir).map(Path::toFile).forEach(File::delete); Files.delete(targetDir); Files.delete(symlinkToDir); @@ -258,7 +258,7 @@ public void onComplete() { assertThat(firstEventLatch.await(30, TimeUnit.SECONDS), is(true)); targetDir = newTarget; - newTarget = createFile(WATCHED_FILE, CollectionsHelper.listOf("a: c")); + newTarget = createFile(WATCHED_FILE, List.of("a: c")); Files.walk(targetDir).map(Path::toFile).forEach(File::delete); Files.delete(targetDir); Files.delete(symlinkToDir); @@ -269,7 +269,7 @@ public void onComplete() { assertThat(secondEventLatch.await(40, TimeUnit.SECONDS), is(true)); targetDir = newTarget; - newTarget = createFile(WATCHED_FILE, CollectionsHelper.listOf("a: d")); + newTarget = createFile(WATCHED_FILE, List.of("a: d")); Files.walk(targetDir).map(Path::toFile).forEach(File::delete); Files.delete(targetDir); Files.delete(symlinkToDir); diff --git a/config/config/src/test/java/io/helidon/config/internal/ListNodeBuilderImplTest.java b/config/config/src/test/java/io/helidon/config/internal/ListNodeBuilderImplTest.java index 445d4061904..96021aede8c 100644 --- a/config/config/src/test/java/io/helidon/config/internal/ListNodeBuilderImplTest.java +++ b/config/config/src/test/java/io/helidon/config/internal/ListNodeBuilderImplTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,8 @@ package io.helidon.config.internal; -import io.helidon.common.CollectionsHelper; +import java.util.List; + import io.helidon.config.ConfigException; import io.helidon.config.spi.ConfigNode.ListNode; import io.helidon.config.spi.ConfigNode.ObjectNode; @@ -102,7 +103,7 @@ public void testMergeListToValue() { .build(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "'0'", "OBJECT", "VALUE"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "'0'", "OBJECT", "VALUE"))); } } diff --git a/config/config/src/test/java/io/helidon/config/internal/MapConfigSourceTest.java b/config/config/src/test/java/io/helidon/config/internal/MapConfigSourceTest.java index 88654c9eb4b..40f5242cb56 100644 --- a/config/config/src/test/java/io/helidon/config/internal/MapConfigSourceTest.java +++ b/config/config/src/test/java/io/helidon/config/internal/MapConfigSourceTest.java @@ -21,7 +21,6 @@ import java.util.Optional; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; import io.helidon.config.MissingValueException; @@ -41,14 +40,14 @@ public class MapConfigSourceTest { @Test public void testDescription() throws MalformedURLException { - ConfigSource configSource = ConfigSources.create(CollectionsHelper.mapOf()).build(); + ConfigSource configSource = ConfigSources.create(Map.of()).build(); assertThat(configSource.description(), is("MapConfig[map]")); } @Test public void testString() { - Map map = CollectionsHelper.mapOf("app.name", "app-name"); + Map map = Map.of("app.name", "app-name"); Config config = Config.builder() .sources(ConfigSources.create(map)) @@ -59,7 +58,7 @@ public void testString() { @Test public void testInt() { - Map map = CollectionsHelper.mapOf("app.port", "8080"); + Map map = Map.of("app.port", "8080"); Config config = Config.builder() .sources(ConfigSources.create(map)) @@ -71,7 +70,7 @@ public void testInt() { @Test public void testMissingValue() { - Map map = CollectionsHelper.mapOf(); + Map map = Map.of(); assertThrows(MissingValueException.class, () -> { Config config = Config.builder() @@ -84,7 +83,7 @@ public void testMissingValue() { @Test public void testTraverse() { - Map map = CollectionsHelper.mapOf( + Map map = Map.of( "app.name", "app-name", "app.port", "8080", "security", "on"); @@ -102,7 +101,7 @@ public void testTraverse() { @Test public void testChildren() { - Map map = CollectionsHelper.mapOf( + Map map = Map.of( "app.name", "app-name", "app.port", "8080"); @@ -127,7 +126,7 @@ public void testChildren() { @Test public void testMapToCustomClass() { - Map map = CollectionsHelper.mapOf("app.name", "app-name"); + Map map = Map.of("app.name", "app-name"); Config config = Config.builder() .sources(ConfigSources.create(map)) diff --git a/config/config/src/test/java/io/helidon/config/internal/ObjectNodeBuilderImplTest.java b/config/config/src/test/java/io/helidon/config/internal/ObjectNodeBuilderImplTest.java index 93e162939d0..fa634b6bc72 100644 --- a/config/config/src/test/java/io/helidon/config/internal/ObjectNodeBuilderImplTest.java +++ b/config/config/src/test/java/io/helidon/config/internal/ObjectNodeBuilderImplTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,8 @@ package io.helidon.config.internal; -import io.helidon.common.CollectionsHelper; +import java.util.List; + import io.helidon.config.ConfigException; import io.helidon.config.spi.ConfigNode.ListNode; import io.helidon.config.spi.ConfigNode.ObjectNode; @@ -67,7 +68,7 @@ public void testMergeValueToList() { .build(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "VALUE", "LIST"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "VALUE", "LIST"))); } @Test @@ -79,7 +80,7 @@ public void testMergeValueToObject() { .addValue("top1.prop1", "1") .build(); }); - assertThat(ex.getMessage(), stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "VALUE", "OBJECT"))); + assertThat(ex.getMessage(), stringContainsInOrder(List.of("top1", "prop1", "merge", "VALUE", "OBJECT"))); } @Test @@ -92,7 +93,7 @@ public void testMergeObjectToValue() { .build(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "merge", "prop1", "OBJECT", "VALUE"))); + stringContainsInOrder(List.of("top1", "merge", "prop1", "OBJECT", "VALUE"))); } @Test @@ -104,8 +105,7 @@ public void testMergeObjectWithNonNumberKeyToList() { .build(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper - .listOf("top1", "prop1", "merge", "OBJECT", "'sub1'", "LIST", "not a number"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "OBJECT", "'sub1'", "LIST", "not a number"))); } @Test @@ -131,7 +131,7 @@ public void testMergeObjectWithNumberKeyOutOfBoundsToList() { .build(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", + stringContainsInOrder(List.of("top1", "prop1", "merge", "OBJECT", @@ -149,7 +149,7 @@ public void testMergeObjectWithNegativeNumberKeyOutOfBoundsToList() { .build(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", + stringContainsInOrder(List.of("top1", "prop1", "merge", "OBJECT", @@ -183,7 +183,7 @@ public void testMergeListToValue() { .build(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "LIST", "VALUE"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "LIST", "VALUE"))); } @Test @@ -210,7 +210,7 @@ public void testMergeListToObjectWithNonNumberKey() { .build(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "LIST", "OBJECT"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "LIST", "OBJECT"))); } @Test @@ -222,7 +222,7 @@ public void testMergeListToObjectWithNumberKey() { .build(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf("top1", "prop1", "merge", "LIST", "OBJECT"))); + stringContainsInOrder(List.of("top1", "prop1", "merge", "LIST", "OBJECT"))); } @Test diff --git a/config/config/src/test/java/io/helidon/config/internal/OverrideConfigFilterTest.java b/config/config/src/test/java/io/helidon/config/internal/OverrideConfigFilterTest.java index 1135ec2fd3a..bb8066542d9 100644 --- a/config/config/src/test/java/io/helidon/config/internal/OverrideConfigFilterTest.java +++ b/config/config/src/test/java/io/helidon/config/internal/OverrideConfigFilterTest.java @@ -18,9 +18,9 @@ import java.util.AbstractMap; import java.util.LinkedHashMap; +import java.util.List; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.OverrideSource; @@ -49,7 +49,7 @@ public void testCreateFilterWithNullParam() { @Test public void testCreateFilterWithEmptyParam() { - OverrideConfigFilter filter = new OverrideConfigFilter(CollectionsHelper::listOf); + OverrideConfigFilter filter = new OverrideConfigFilter(List::of); assertThat(filter, notNullValue()); assertThat(filter.apply(Config.Key.create("name"), "ondrej"), is("ondrej")); diff --git a/config/config/src/test/java/io/helidon/config/internal/OverrideSourcesTest.java b/config/config/src/test/java/io/helidon/config/internal/OverrideSourcesTest.java index 0e63dd5da5c..3e0574dd55b 100644 --- a/config/config/src/test/java/io/helidon/config/internal/OverrideSourcesTest.java +++ b/config/config/src/test/java/io/helidon/config/internal/OverrideSourcesTest.java @@ -18,8 +18,8 @@ import java.net.MalformedURLException; import java.net.URL; +import java.util.Map; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.OverrideSources; import io.helidon.config.spi.OverrideSource; @@ -45,7 +45,7 @@ public void testEmptyIsAlwaysTheSameInstance() { @Test public void testFromWildcards() { - OverrideSource overrideSource = OverrideSources.create(CollectionsHelper.mapOf(WILDCARDS, "localhost")); + OverrideSource overrideSource = OverrideSources.create(Map.of(WILDCARDS, "localhost")); assertThat(overrideSource.load() .get() .data() diff --git a/config/config/src/test/java/io/helidon/config/internal/UrlOverrideSourceServerMockTest.java b/config/config/src/test/java/io/helidon/config/internal/UrlOverrideSourceServerMockTest.java index e0866c4b44a..64195a7c7e1 100644 --- a/config/config/src/test/java/io/helidon/config/internal/UrlOverrideSourceServerMockTest.java +++ b/config/config/src/test/java/io/helidon/config/internal/UrlOverrideSourceServerMockTest.java @@ -21,10 +21,10 @@ import java.net.URL; import java.time.Duration; import java.util.AbstractMap; +import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; import io.helidon.config.PollingStrategies; @@ -102,7 +102,7 @@ public void testWildcards() throws MalformedURLException, InterruptedException { Config config = Config.builder() .sources(ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "aaa.bbb.url", "URL0" ))) .overrides(url(getUrl("/override", server.getPort()))) @@ -134,7 +134,7 @@ public void testMultipleMatchingWildcards() throws MalformedURLException, Interr Config config = Config.builder() .sources(ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "aaa.bbb.url", "URL0" ))) .overrides(url(getUrl("/override", server.getPort()))) @@ -166,7 +166,7 @@ public void testMultipleMatchingWildcardsAnotherOrdering() throws MalformedURLEx Config config = Config.builder() .sources(ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "aaa.bbb.url", "URL0" ))) .overrides(url(getUrl("/override", server.getPort()))) @@ -292,7 +292,7 @@ public void testConfigChangingWithOverrideSource() throws MalformedURLException, .pollingStrategy(PollingStrategies.regular(Duration.ofMillis(10)))) .overrides(url(getUrl("/override", server.getPort())) .pollingStrategy(PollingStrategies.regular(Duration.ofMillis(10)))) - // .addFilter(new OverrideConfigFilter(CollectionsHelper.mapOf(Pattern.compile("\\w+\\.\\w+\\.url"), "URL1"))) + // .addFilter(new OverrideConfigFilter(Map.of(Pattern.compile("\\w+\\.\\w+\\.url"), "URL1"))) .disableEnvironmentVariablesSource() .disableSystemPropertiesSource() .build(); @@ -335,7 +335,7 @@ public void testConfigChangingWithFilters() throws MalformedURLException, Interr .pollingStrategy(PollingStrategies.regular(Duration.ofMillis(10)))) .overrides(url(getUrl("/override", server.getPort()))) .addFilter(new OverrideConfigFilter(() -> OverrideSource.OverrideData.createFromWildcards( - CollectionsHelper.mapOf("*.*.url", "URL1") + Map.of("*.*.url", "URL1") .entrySet() .stream() .map(e -> new AbstractMap.SimpleEntry<>(e.getKey(), e.getValue())) diff --git a/config/config/src/test/java/io/helidon/config/internal/ValueResolvingFilterTest.java b/config/config/src/test/java/io/helidon/config/internal/ValueResolvingFilterTest.java index da1458936d4..c8d98a4f257 100644 --- a/config/config/src/test/java/io/helidon/config/internal/ValueResolvingFilterTest.java +++ b/config/config/src/test/java/io/helidon/config/internal/ValueResolvingFilterTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,12 +16,12 @@ package io.helidon.config.internal; +import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; import io.helidon.config.ConfigFilters; @@ -47,7 +47,7 @@ public class ValueResolvingFilterTest { public void testValueResolving() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "message", "${greeting} ${name}!", "greeting", "Hallo", "name", "Joachim" @@ -65,7 +65,7 @@ public void testValueResolving() { public void testValueResolvingDottedReference() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "message", "${greeting.german} ${name}!", "greeting.german", "Hallo", "name", "Joachim" @@ -83,7 +83,7 @@ public void testValueResolvingDottedReference() { public void testValueResolvingTransitive() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "message", "${template}", "template", "${greeting} ${name}!", "name", "Joachim", @@ -102,7 +102,7 @@ public void testValueResolvingTransitive() { public void testValueResolvingBackslashed() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "message", "${template}", "template", "${greeting} \\${name}!", "name", "Joachim", @@ -121,7 +121,7 @@ public void testValueResolvingBackslashed() { public void testValueResolvingBackslashIgnored() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "message", "${greeting} \\ ${name}!", "name", "Joachim", "greeting", "Hallo" @@ -139,7 +139,7 @@ public void testValueResolvingBackslashIgnored() { public void testValueResolvingBackslashIgnored2() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "message", "${template}", "template", "${greeting} \\ ${name}!", "name", "Joachim", @@ -169,7 +169,7 @@ public void testValueResolvingInfiniteLoop() throws InterruptedException, Execut LoopTestResult result = new LoopTestResult(); Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "message", "There ${template}", "template", "and back again ${message}" ))) @@ -204,7 +204,7 @@ public void testValueResolvingInfiniteLoop() throws InterruptedException, Execut public void testValueResolvingMissingReferenceIgnored() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "wrong", "${missing}" ))) .addFilter(ConfigFilters.valueResolving()) @@ -220,7 +220,7 @@ public void testValueResolvingMissingReferenceIgnored() { public void testValueResolvingMissingReferenceNoFilter() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "wrong", "${missing}" ))) .disableEnvironmentVariablesSource() @@ -235,7 +235,7 @@ public void testValueResolvingMissingReferenceNoFilter() { public void testValueResolvingMissingReferenceFails() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "wrong", "${missing}" ))) .addFilter(ConfigFilters.valueResolving() @@ -257,7 +257,7 @@ public void testValueResolvingMissingReferenceFails() { public void testValueResolvingMissingReferenceOKViaNoArgsCtor() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "wrong", "${missing}" ))) .addFilter(new ValueResolvingFilter()) @@ -273,7 +273,7 @@ public void testValueResolvingMissingReferenceOKViaNoArgsCtor() { public void testValueResolvingMissingReferenceFailsViaNoArgsCtor() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "wrong", "${missing}" ))) .addFilter(ConfigFilters.valueResolving().failOnMissingReference(true).build()) @@ -293,7 +293,7 @@ public void testValueResolvingMissingReferenceFailsViaNoArgsCtor() { public void testValueResolvingMissingReferenceFailsViaServiceLoader() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "wrong", "${missing}", ConfigFilters.ValueResolvingBuilder.FAIL_ON_MISSING_REFERENCE_KEY_NAME, "true" ))) @@ -312,7 +312,7 @@ public void testValueResolvingMissingReferenceFailsViaServiceLoader() { public void testValueResolvingMissingReferenceOKViaServiceLoader() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "wrong", "${missing}" ))) .disableEnvironmentVariablesSource() @@ -326,7 +326,7 @@ public void testValueResolvingMissingReferenceOKViaServiceLoader() { public void testValueResolvingSatisfiedReferenceViaServiceLoader() { Config config = Config.builder( ConfigSources.create( - CollectionsHelper.mapOf( + Map.of( "correct", "${refc}", "refc", "answer" ))) diff --git a/config/config/src/test/java/io/helidon/config/spi/AbstractConfigSourceTest.java b/config/config/src/test/java/io/helidon/config/spi/AbstractConfigSourceTest.java index 9b1acc0e4f6..7b25e1b9aab 100644 --- a/config/config/src/test/java/io/helidon/config/spi/AbstractConfigSourceTest.java +++ b/config/config/src/test/java/io/helidon/config/spi/AbstractConfigSourceTest.java @@ -16,12 +16,12 @@ package io.helidon.config.spi; +import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.concurrent.Executor; import java.util.concurrent.Flow; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigParsers; import io.helidon.config.ConfigSources; @@ -161,7 +161,7 @@ public void testMediaTypeAndParserMapping() { .thenReturn(Optional.of(new ConfigParser() { //NOT used parser @Override public Set supportedMediaTypes() { - return CollectionsHelper.setOf(MEDIA_TYPE_TEXT_JAVA_PROPERTIES); + return Set.of(MEDIA_TYPE_TEXT_JAVA_PROPERTIES); } @Override @@ -188,7 +188,7 @@ public ObjectNode parse(Content content) throws ConfigParserException { @Test public void testInitAll() { TestingConfigSource.TestingBuilder builder = TestingConfigSource.builder().config(Config.create(ConfigSources.create( - CollectionsHelper.mapOf("media-type-mapping.yaml", "application/x-yaml", + Map.of("media-type-mapping.yaml", "application/x-yaml", "media-type-mapping.password", "application/base64")))); //media-type-mapping diff --git a/config/config/src/test/java/io/helidon/config/spi/AbstractParsableConfigSourceTest.java b/config/config/src/test/java/io/helidon/config/spi/AbstractParsableConfigSourceTest.java index c3f662c0fb1..fb0a168737e 100644 --- a/config/config/src/test/java/io/helidon/config/spi/AbstractParsableConfigSourceTest.java +++ b/config/config/src/test/java/io/helidon/config/spi/AbstractParsableConfigSourceTest.java @@ -19,13 +19,15 @@ import java.io.IOException; import java.io.StringReader; import java.time.Instant; +import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.concurrent.Executor; import java.util.concurrent.Flow; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; import io.helidon.config.ConfigParsers; @@ -144,7 +146,7 @@ public void testMandatoryParserSetContentNotExistsParserRegistered() { source.init(context); source.load(); }); - assertThat(ex.getMessage(), stringContainsInOrder(CollectionsHelper.listOf( + assertThat(ex.getMessage(), stringContainsInOrder(List.of( "Cannot load data from mandatory source", "TestingParsableConfig[parsable-test]"))); assertThat(ex.getCause(), @@ -180,7 +182,7 @@ public void testMandatoryParserNotSetContentExistsParserNotRegistered() { source.init(context); source.load(); }); - assertThat(ex.getMessage(), stringContainsInOrder(CollectionsHelper.listOf( + assertThat(ex.getMessage(), stringContainsInOrder(List.of( "Cannot load data from mandatory source", "TestingParsableConfig[parsable-test]"))); assertThat(ex.getCause(), @@ -528,7 +530,7 @@ public void testBuilderCustomChanges() { @Test public void testInitAll() { TestingParsableConfigSource.TestingBuilder builder = TestingParsableConfigSource.builder() - .config(Config.create(ConfigSources.create(CollectionsHelper.mapOf("media-type", "application/x-yaml")))); + .config(Config.create(ConfigSources.create(Map.of("media-type", "application/x-yaml")))); //media-type assertThat(builder.mediaType(), is("application/x-yaml")); @@ -553,7 +555,7 @@ private ConfigParser.Content mockContent() { private ConfigParser mockParser(String value) { ConfigParser parser = mock(ConfigParser.class); - when(parser.supportedMediaTypes()).thenReturn(CollectionsHelper.setOf(TEST_MEDIA_TYPE)); + when(parser.supportedMediaTypes()).thenReturn(Set.of(TEST_MEDIA_TYPE)); when(parser.parse(any())).thenReturn(ObjectNode.builder().addValue(TEST_KEY, ValueNode.create(value)).build()); return parser; diff --git a/config/config/src/test/java/io/helidon/config/spi/AbstractSourceTest.java b/config/config/src/test/java/io/helidon/config/spi/AbstractSourceTest.java index b42586ac07a..d46378cdfb3 100644 --- a/config/config/src/test/java/io/helidon/config/spi/AbstractSourceTest.java +++ b/config/config/src/test/java/io/helidon/config/spi/AbstractSourceTest.java @@ -17,13 +17,13 @@ package io.helidon.config.spi; import java.time.Instant; +import java.util.Map; import java.util.Optional; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Flow; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; import io.helidon.config.ConfigSources; @@ -132,7 +132,7 @@ public boolean cancel(boolean mayInterruptIfRunning) { public void testInitAll() { TestingSource.TestingBuilder builder = TestingSource.builder().config( Config.builder(ConfigSources.create( - CollectionsHelper.mapOf("optional", "true"))) + Map.of("optional", "true"))) .addMapper(TestingRetryPolicy.class, config -> new TestingRetryPolicy()) .addMapper(TestingPollingStrategy.class, config -> new TestingPollingStrategy()) .build() diff --git a/config/encryption/src/test/java/io/helidon/config/encryption/RsaLegacySecureConfigTest.java b/config/encryption/src/test/java/io/helidon/config/encryption/RsaLegacySecureConfigTest.java index 9bce572a11a..5bb072a2ec4 100644 --- a/config/encryption/src/test/java/io/helidon/config/encryption/RsaLegacySecureConfigTest.java +++ b/config/encryption/src/test/java/io/helidon/config/encryption/RsaLegacySecureConfigTest.java @@ -17,6 +17,7 @@ package io.helidon.config.encryption; import java.util.List; +import java.util.Map; import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -25,7 +26,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.mapOf; import static io.helidon.config.encryption.AbstractSecureConfigTest.TEST_STRING; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -47,7 +47,7 @@ public static void initClass() { configRequiresEncryption = Config.builder() .sources(ConfigSources.create( //override require encryption - ConfigSources.create(mapOf(ConfigProperties.REQUIRE_ENCRYPTION_CONFIG_KEY, "true")), + ConfigSources.create(Map.of(ConfigProperties.REQUIRE_ENCRYPTION_CONFIG_KEY, "true")), ConfigSources.classpath("application.yaml"))) .build().get("rsa-legacy"); diff --git a/config/encryption/src/test/java/io/helidon/config/encryption/RsaSecureConfigTest.java b/config/encryption/src/test/java/io/helidon/config/encryption/RsaSecureConfigTest.java index 99be89220a4..0ff9d491e92 100644 --- a/config/encryption/src/test/java/io/helidon/config/encryption/RsaSecureConfigTest.java +++ b/config/encryption/src/test/java/io/helidon/config/encryption/RsaSecureConfigTest.java @@ -17,6 +17,7 @@ package io.helidon.config.encryption; import java.util.List; +import java.util.Map; import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -25,7 +26,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.mapOf; import static io.helidon.config.encryption.AbstractSecureConfigTest.TEST_STRING; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -47,7 +47,7 @@ public static void initClass() { configRequiresEncryption = Config.builder() .sources(ConfigSources.create( //override require encryption - ConfigSources.create(mapOf(ConfigProperties.REQUIRE_ENCRYPTION_CONFIG_KEY, "true")), + ConfigSources.create(Map.of(ConfigProperties.REQUIRE_ENCRYPTION_CONFIG_KEY, "true")), ConfigSources.classpath("application.yaml"))) .build().get("rsa-current"); diff --git a/config/encryption/src/test/java/io/helidon/config/encryption/SecureConfigFromConfigTest.java b/config/encryption/src/test/java/io/helidon/config/encryption/SecureConfigFromConfigTest.java index 07018df7556..6bba8f5274c 100644 --- a/config/encryption/src/test/java/io/helidon/config/encryption/SecureConfigFromConfigTest.java +++ b/config/encryption/src/test/java/io/helidon/config/encryption/SecureConfigFromConfigTest.java @@ -16,13 +16,14 @@ package io.helidon.config.encryption; +import java.util.Map; + import io.helidon.config.Config; import io.helidon.config.ConfigSources; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.mapOf; import static org.hamcrest.MatcherAssert.assertThat; /** @@ -39,7 +40,7 @@ public static void initClass() { configRequiresEncryption = Config.builder() .sources(ConfigSources.create( //override require encryption - ConfigSources.create(mapOf(ConfigProperties.REQUIRE_ENCRYPTION_CONFIG_KEY, "true")), + ConfigSources.create(Map.of(ConfigProperties.REQUIRE_ENCRYPTION_CONFIG_KEY, "true")), ConfigSources.classpath("application.yaml"))) .build().get("aes-current"); diff --git a/config/encryption/src/test/java/io/helidon/config/encryption/SecureLegacyConfigFromConfigTest.java b/config/encryption/src/test/java/io/helidon/config/encryption/SecureLegacyConfigFromConfigTest.java index 723859ea468..6d5f7136a83 100644 --- a/config/encryption/src/test/java/io/helidon/config/encryption/SecureLegacyConfigFromConfigTest.java +++ b/config/encryption/src/test/java/io/helidon/config/encryption/SecureLegacyConfigFromConfigTest.java @@ -16,13 +16,14 @@ package io.helidon.config.encryption; +import java.util.Map; + import io.helidon.config.Config; import io.helidon.config.ConfigSources; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.mapOf; import static org.hamcrest.MatcherAssert.assertThat; /** @@ -39,7 +40,7 @@ public static void initClass() { configRequiresEncryption = Config.builder() .sources(ConfigSources.create( //override require encryption - ConfigSources.create(mapOf(ConfigProperties.REQUIRE_ENCRYPTION_CONFIG_KEY, "true")), + ConfigSources.create(Map.of(ConfigProperties.REQUIRE_ENCRYPTION_CONFIG_KEY, "true")), ConfigSources.classpath("application.yaml"))) .build() .get("aes-legacy"); diff --git a/config/etcd/src/main/java/io/helidon/config/etcd/EtcdConfigSourceProvider.java b/config/etcd/src/main/java/io/helidon/config/etcd/EtcdConfigSourceProvider.java index 89cf1b91420..d7ac92008ca 100644 --- a/config/etcd/src/main/java/io/helidon/config/etcd/EtcdConfigSourceProvider.java +++ b/config/etcd/src/main/java/io/helidon/config/etcd/EtcdConfigSourceProvider.java @@ -17,7 +17,6 @@ import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.ConfigSource; import io.helidon.config.spi.ConfigSourceProvider; @@ -40,6 +39,6 @@ public ConfigSource create(String type, Config metaConfig) { @Override public Set supported() { - return CollectionsHelper.setOf(TYPE); + return Set.of(TYPE); } } diff --git a/config/etcd/src/main/java/io/helidon/config/etcd/EtcdPollingStrategyProvider.java b/config/etcd/src/main/java/io/helidon/config/etcd/EtcdPollingStrategyProvider.java index b9060bd1009..34c71b17089 100644 --- a/config/etcd/src/main/java/io/helidon/config/etcd/EtcdPollingStrategyProvider.java +++ b/config/etcd/src/main/java/io/helidon/config/etcd/EtcdPollingStrategyProvider.java @@ -18,7 +18,6 @@ import java.util.Set; import java.util.function.Function; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.PollingStrategy; import io.helidon.config.spi.PollingStrategyProvider; @@ -51,6 +50,6 @@ public Function create(String type, Config metaConfig) @Override public Set supported() { - return CollectionsHelper.setOf(TYPE); + return Set.of(TYPE); } } diff --git a/config/etcd/src/test/java/io/helidon/config/etcd/EtcdConfigSourceBuilderTest.java b/config/etcd/src/test/java/io/helidon/config/etcd/EtcdConfigSourceBuilderTest.java index e87a3190c4c..cdf5b11e24b 100644 --- a/config/etcd/src/test/java/io/helidon/config/etcd/EtcdConfigSourceBuilderTest.java +++ b/config/etcd/src/test/java/io/helidon/config/etcd/EtcdConfigSourceBuilderTest.java @@ -17,11 +17,11 @@ package io.helidon.config.etcd; import java.net.URI; +import java.util.Map; import java.util.Set; import java.util.concurrent.Flow; import java.util.function.Function; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigParsers; import io.helidon.config.ConfigSources; @@ -137,7 +137,7 @@ public void testFromConfigNothing() { @Test public void testFromConfigAll() { EtcdConfigSourceBuilder builder = EtcdConfigSource.builder() - .config(Config.create(ConfigSources.create(CollectionsHelper.mapOf( + .config(Config.create(ConfigSources.create(Map.of( "uri", "http://localhost:2379", "key", "/registry", "api", "v3")))); @@ -150,7 +150,7 @@ public void testFromConfigAll() { @Test public void testFromConfigWithCustomPollingStrategy() { EtcdConfigSourceBuilder builder = EtcdConfigSource.builder() - .config(Config.create(ConfigSources.create(CollectionsHelper.mapOf( + .config(Config.create(ConfigSources.create(Map.of( "uri", "http://localhost:2379", "key", "/registry", "api", "v3", @@ -172,7 +172,7 @@ public void testFromConfigWithCustomPollingStrategy() { @Test public void testFromConfigEtcdWatchPollingStrategy() { EtcdConfigSourceBuilder builder = EtcdConfigSource.builder() - .config(Config.create(ConfigSources.create(CollectionsHelper.mapOf( + .config(Config.create(ConfigSources.create(Map.of( "uri", "http://localhost:2379", "key", "/registry", "api", "v3", @@ -257,7 +257,7 @@ public Function create(String type, Config metaConfig) @Override public Set supported() { - return CollectionsHelper.setOf(TYPE); + return Set.of(TYPE); } } diff --git a/config/etcd/src/test/java/io/helidon/config/etcd/client/EtcdClientIT.java b/config/etcd/src/test/java/io/helidon/config/etcd/client/EtcdClientIT.java index 063ef67fe27..4fb219ce2c9 100644 --- a/config/etcd/src/test/java/io/helidon/config/etcd/client/EtcdClientIT.java +++ b/config/etcd/src/test/java/io/helidon/config/etcd/client/EtcdClientIT.java @@ -18,6 +18,7 @@ import java.lang.reflect.InvocationTargetException; import java.net.URI; +import java.util.List; import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; @@ -25,7 +26,6 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Stream; -import io.helidon.common.CollectionsHelper; import io.helidon.config.etcd.internal.client.EtcdClient; import io.helidon.config.etcd.internal.client.EtcdClientException; import io.helidon.config.etcd.internal.client.v2.EtcdV2Client; @@ -48,7 +48,7 @@ public class EtcdClientIT { private static final URI uri = URI.create("http://localhost:2379"); private static Stream> clients() { - return CollectionsHelper.listOf(EtcdV2Client.class, EtcdV3Client.class).stream(); + return List.of(EtcdV2Client.class, EtcdV3Client.class).stream(); } @ParameterizedTest diff --git a/config/git/src/main/java/io/helidon/config/git/GitConfigSourceProvider.java b/config/git/src/main/java/io/helidon/config/git/GitConfigSourceProvider.java index 6ef9743c923..813e758f494 100644 --- a/config/git/src/main/java/io/helidon/config/git/GitConfigSourceProvider.java +++ b/config/git/src/main/java/io/helidon/config/git/GitConfigSourceProvider.java @@ -17,7 +17,6 @@ import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.ConfigSource; import io.helidon.config.spi.ConfigSourceProvider; @@ -40,6 +39,6 @@ public ConfigSource create(String type, Config metaConfig) { @Override public Set supported() { - return CollectionsHelper.setOf(TYPE); + return Set.of(TYPE); } } diff --git a/config/git/src/test/java/io/helidon/config/git/GitConfigSourceBuilderTest.java b/config/git/src/test/java/io/helidon/config/git/GitConfigSourceBuilderTest.java index c6bca2e075a..deb18c914d8 100644 --- a/config/git/src/test/java/io/helidon/config/git/GitConfigSourceBuilderTest.java +++ b/config/git/src/test/java/io/helidon/config/git/GitConfigSourceBuilderTest.java @@ -22,6 +22,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.time.Duration; +import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.concurrent.CountDownLatch; @@ -29,7 +30,6 @@ import java.util.concurrent.TimeUnit; import java.util.function.Function; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; import io.helidon.config.ConfigParsers; @@ -292,7 +292,7 @@ public void testFromConfigNothing() { @Test public void testFromConfigMandatory() { - Config metaConfig = Config.builder(ConfigSources.create(CollectionsHelper.mapOf("path", "application.properties"))) + Config metaConfig = Config.builder(ConfigSources.create(Map.of("path", "application.properties"))) .disableSystemPropertiesSource() .disableEnvironmentVariablesSource() .build(); @@ -308,7 +308,7 @@ public void testFromConfigMandatory() { public void testFromConfigAll() throws IOException { Path directory = folder.newFolder().toPath(); - Config metaConfig = Config.builder(ConfigSources.create(CollectionsHelper.mapOf("path", "application.properties", + Config metaConfig = Config.builder(ConfigSources.create(Map.of("path", "application.properties", "uri", fileUri(), "branch", "test", "directory", directory.toString()))) @@ -327,7 +327,7 @@ public void testFromConfigAll() throws IOException { public void testFromConfigWithCustomPollingStrategy() throws IOException { Path directory = folder.newFolder().toPath(); - Config metaConfig = Config.builder(ConfigSources.create(CollectionsHelper.mapOf( + Config metaConfig = Config.builder(ConfigSources.create(Map.of( "path", "application.properties", "uri", fileUri(), "branch", "test", @@ -431,7 +431,7 @@ public Function create(String type, Config metaConfig) @Override public Set supported() { - return CollectionsHelper.setOf(TYPE); + return Set.of(TYPE); } } diff --git a/config/hocon/src/main/java/io/helidon/config/hocon/internal/HoconConfigParser.java b/config/hocon/src/main/java/io/helidon/config/hocon/internal/HoconConfigParser.java index 6d90ee8690b..e40232b64ef 100644 --- a/config/hocon/src/main/java/io/helidon/config/hocon/internal/HoconConfigParser.java +++ b/config/hocon/src/main/java/io/helidon/config/hocon/internal/HoconConfigParser.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.config.ConfigException; import io.helidon.config.ConfigHelper; import io.helidon.config.spi.ConfigNode.ListNode; @@ -70,7 +69,7 @@ public class HoconConfigParser implements ConfigParser { public static final int PRIORITY = ConfigParser.PRIORITY + 100; private static final Set SUPPORTED_MEDIA_TYPES = - CollectionsHelper.setOf(MEDIA_TYPE_APPLICATION_HOCON, MEDIA_TYPE_APPLICATION_JSON); + Set.of(MEDIA_TYPE_APPLICATION_HOCON, MEDIA_TYPE_APPLICATION_JSON); private final boolean resolvingEnabled; private final ConfigResolveOptions resolveOptions; diff --git a/config/hocon/src/test/java/io/helidon/config/hocon/HoconConfigParserTest.java b/config/hocon/src/test/java/io/helidon/config/hocon/HoconConfigParserTest.java index 8d69948eaab..815b84e335a 100644 --- a/config/hocon/src/test/java/io/helidon/config/hocon/HoconConfigParserTest.java +++ b/config/hocon/src/test/java/io/helidon/config/hocon/HoconConfigParserTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import java.util.function.Function; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigMappingException; import io.helidon.config.ConfigSources; @@ -86,7 +85,7 @@ public void testResolveDisabled() { }); assertThat(cpe.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf( + stringContainsInOrder(List.of( "Cannot read from source", "substitution not resolved", "${aaa}"))); @@ -112,7 +111,7 @@ public void testResolveEnabledEnvVarDisabled() { }); assertThat(cpe.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf( + stringContainsInOrder(List.of( "Cannot read from source", "not resolve substitution ", "${HOCON_TEST_PROPERTY}"))); @@ -300,7 +299,7 @@ public static class AppType { private static final String GREETING = "Hello"; private static final String NAME = "Demo"; private static final int PAGE_SIZE = 20; - private static final List BASIC_RANGE = CollectionsHelper.listOf(-20, 20); + private static final List BASIC_RANGE = List.of(-20, 20); static final String DEF = "" + "app {\n" diff --git a/config/object-mapping/src/main/java/io/helidon/config/objectmapping/ObjectConfigMapperProvider.java b/config/object-mapping/src/main/java/io/helidon/config/objectmapping/ObjectConfigMapperProvider.java index ee327c988c3..ceb6b637a77 100644 --- a/config/object-mapping/src/main/java/io/helidon/config/objectmapping/ObjectConfigMapperProvider.java +++ b/config/object-mapping/src/main/java/io/helidon/config/objectmapping/ObjectConfigMapperProvider.java @@ -22,7 +22,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.objectmapping.ObjectConfigMappers.BuilderConfigMapper; import io.helidon.config.objectmapping.ObjectConfigMappers.ConfigMethodHandleConfigMapper; @@ -53,7 +52,7 @@ public class ObjectConfigMapperProvider implements ConfigMapperProvider { @Override public Map, Function> mappers() { - return CollectionsHelper.mapOf(); + return Map.of(); } @Override diff --git a/config/object-mapping/src/main/java/io/helidon/config/objectmapping/Value.java b/config/object-mapping/src/main/java/io/helidon/config/objectmapping/Value.java index bb6a06aaf2c..99692a7e29e 100644 --- a/config/object-mapping/src/main/java/io/helidon/config/objectmapping/Value.java +++ b/config/object-mapping/src/main/java/io/helidon/config/objectmapping/Value.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -75,7 +75,7 @@ * implements Supplier{@literal >} { * {@literal @}Override * public List{@literal } get() { - * return CollectionsHelper.listOf(0, 10); + * return List.of(0, 10); * } * } * } diff --git a/config/object-mapping/src/test/java/io/helidon/config/objectmapping/FactoryMethodConfigMapperTest.java b/config/object-mapping/src/test/java/io/helidon/config/objectmapping/FactoryMethodConfigMapperTest.java index f08ac2e967d..df6adbe1cd7 100644 --- a/config/object-mapping/src/test/java/io/helidon/config/objectmapping/FactoryMethodConfigMapperTest.java +++ b/config/object-mapping/src/test/java/io/helidon/config/objectmapping/FactoryMethodConfigMapperTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,10 +20,10 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigMappers; import io.helidon.config.ConfigMappingException; @@ -56,9 +56,8 @@ public void testAmbiguousConstructors() { }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper - .listOf(AmbiguousConstructorsBean.class.getName(), - "No mapper configured"))); + stringContainsInOrder(List.of(AmbiguousConstructorsBean.class.getName(), + "No mapper configured"))); } @Test @@ -130,7 +129,7 @@ public void testNoConfigValueConstructor() { @Test public void testMissingParamsConstructor() { - Config config = Config.create(ConfigSources.create(CollectionsHelper.mapOf( + Config config = Config.create(ConfigSources.create(Map.of( "app.number", "1" ))); @@ -140,13 +139,13 @@ public void testMissingParamsConstructor() { .get(); }); - assertThat(ex.getMessage(), stringContainsInOrder(CollectionsHelper.listOf( + assertThat(ex.getMessage(), stringContainsInOrder(List.of( "'app'", "ConstructorBean", "Missing value for parameter 'uri'."))); } @Test public void testDefaultsConstructor() { - Config config = Config.create(ConfigSources.create(CollectionsHelper.mapOf( + Config config = Config.create(ConfigSources.create(Map.of( "app.number", "1" ))); @@ -175,9 +174,8 @@ public void testAmbiguousFromMethods() { }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper - .listOf(AmbiguousFromMethodsBean.class.getName(), - "No mapper configured"))); + stringContainsInOrder(List.of(AmbiguousFromMethodsBean.class.getName(), + "No mapper configured"))); } @Test @@ -249,7 +247,7 @@ public void testNoConfigValueFromMethod() { @Test public void testMissingParamsFromMethod() { - Config config = Config.create(ConfigSources.create(CollectionsHelper.mapOf( + Config config = Config.create(ConfigSources.create(Map.of( "app.number", "1" ))); @@ -259,13 +257,13 @@ public void testMissingParamsFromMethod() { .get(); }); assertThat(ex.getMessage(), - stringContainsInOrder(CollectionsHelper.listOf( - "'app'", "FromMethodBean", "Missing value for parameter 'uri'."))); + stringContainsInOrder(List.of( + "'app'", "FromMethodBean", "Missing value for parameter 'uri'."))); } @Test public void testDefaultsFromMethod() { - Config config = Config.create(ConfigSources.create(CollectionsHelper.mapOf( + Config config = Config.create(ConfigSources.create(Map.of( "app.number", "1" ))); @@ -525,21 +523,21 @@ public CustomType get() { public static class DefaultCustomTypesSupplier implements Supplier> { @Override public List get() { - return CollectionsHelper.listOf(CustomType.from("/tmp/default"), CustomType.from("/tmp/another/default")); + return List.of(CustomType.from("/tmp/default"), CustomType.from("/tmp/another/default")); } } public static class DefaultUrisSupplier implements Supplier> { @Override public List get() { - return CollectionsHelper.listOf(URI.create("default:uri"), URI.create("default:another:uri")); + return List.of(URI.create("default:uri"), URI.create("default:another:uri")); } } public static class DefaultNumbersSupplier implements Supplier> { @Override public List get() { - return CollectionsHelper.listOf(23, 42); + return List.of(23, 42); } } diff --git a/config/object-mapping/src/test/java/io/helidon/config/objectmapping/GenericConfigMapperTest.java b/config/object-mapping/src/test/java/io/helidon/config/objectmapping/GenericConfigMapperTest.java index 24f5fd4ee25..f71e2b280d1 100644 --- a/config/object-mapping/src/test/java/io/helidon/config/objectmapping/GenericConfigMapperTest.java +++ b/config/object-mapping/src/test/java/io/helidon/config/objectmapping/GenericConfigMapperTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import java.util.UUID; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.Config.Type; import io.helidon.config.ConfigMappingException; @@ -188,7 +187,7 @@ public void testWithDefaultSupplier() { @Test public void testWithDefaultWrongFormat() { - Config config = Config.builder(ConfigSources.create(CollectionsHelper.mapOf("numberWithDefaultSupplier", "42"))) + Config config = Config.builder(ConfigSources.create(Map.of("numberWithDefaultSupplier", "42"))) .disableEnvironmentVariablesSource() .disableSystemPropertiesSource() .build(); @@ -200,7 +199,7 @@ public void testWithDefaultWrongFormat() { @Test public void testWithDefaultSupplierWrongReturnType() { - Config config = Config.builder(ConfigSources.create(CollectionsHelper.mapOf("numberWithDefault", "23"))) + Config config = Config.builder(ConfigSources.create(Map.of("numberWithDefault", "23"))) .disableEnvironmentVariablesSource() .disableSystemPropertiesSource() .build(); @@ -212,7 +211,7 @@ public void testWithDefaultSupplierWrongReturnType() { @Test public void testWrongDefaultsNotUsed() { - Config config = Config.builder(ConfigSources.create(CollectionsHelper.mapOf("numberWithDefault", "23", + Config config = Config.builder(ConfigSources.create(Map.of("numberWithDefault", "23", "numberWithDefaultSupplier", "42"))) .disableEnvironmentVariablesSource() .disableSystemPropertiesSource() @@ -342,11 +341,11 @@ public static class AppConfig { private LoggingConfig logging = new LoggingConfig(Config.empty()); @Value(withDefaultSupplier = DefaultSecurityConfigSupplier.class) //ignored, used on setter public SecurityConfig security; - public Map names = CollectionsHelper.mapOf(); + public Map names = Map.of(); public AppConfig() { greetingSetterCalled = false; - names = CollectionsHelper.mapOf(); + names = Map.of(); } public Long getUid() { @@ -442,7 +441,7 @@ public static class SecurityConfig { public List providers; public SecurityConfig() { - providers = CollectionsHelper.listOf(); + providers = List.of(); } public List getProviders() { @@ -477,7 +476,7 @@ public Class getClazz() { public static class DefaultBasicRangeSupplier implements Supplier> { @Override public List get() { - return CollectionsHelper.listOf(-5, 5); + return List.of(-5, 5); } } diff --git a/config/object-mapping/src/test/java/io/helidon/config/objectmapping/ObjectConfigMapperProviderTest.java b/config/object-mapping/src/test/java/io/helidon/config/objectmapping/ObjectConfigMapperProviderTest.java index 39c7bafc5bb..aad44da7bfb 100644 --- a/config/object-mapping/src/test/java/io/helidon/config/objectmapping/ObjectConfigMapperProviderTest.java +++ b/config/object-mapping/src/test/java/io/helidon/config/objectmapping/ObjectConfigMapperProviderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ import java.util.function.Function; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; import io.helidon.config.ConfigValue; @@ -52,7 +51,7 @@ class ObjectConfigMapperProviderTest { static void initClass() { provider = new ObjectConfigMapperProvider(); empty = Config.empty(); - Map configMap = CollectionsHelper.mapOf( + Map configMap = Map.of( Configurables.WithCreateConfig.CONFIG_KEY, TEST_MESSAGE ); full = Config.builder(ConfigSources.create(configMap)) diff --git a/config/object-mapping/src/test/java/io/helidon/config/objectmapping/ReflectionUtilTest.java b/config/object-mapping/src/test/java/io/helidon/config/objectmapping/ReflectionUtilTest.java index 5c66d996fc0..2aac91cd7dd 100644 --- a/config/object-mapping/src/test/java/io/helidon/config/objectmapping/ReflectionUtilTest.java +++ b/config/object-mapping/src/test/java/io/helidon/config/objectmapping/ReflectionUtilTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.listOf; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.containsInAnyOrder; @@ -91,7 +90,7 @@ public void testMethodIsTransientError() throws NoSuchMethodException { ConfigException ex = assertThrows(ConfigException.class, () -> { isMethodTransient("setValueClash", String.class); }); - assertThat(ex.getMessage(), stringContainsInOrder(listOf("@Value", "@Transient", "setValueClash"))); + assertThat(ex.getMessage(), stringContainsInOrder(List.of("@Value", "@Transient", "setValueClash"))); } private boolean isMethodTransient(String methodName, Class... parameterTypes) throws NoSuchMethodException { @@ -129,7 +128,7 @@ public void testFieldIsTransientError() throws NoSuchFieldException { }); assertThat(ex.getMessage(), - stringContainsInOrder(listOf("@Value", "@Transient", "field", "valueClash"))); + stringContainsInOrder(List.of("@Value", "@Transient", "field", "valueClash"))); } private boolean isFieldTransient(String fieldName) throws NoSuchFieldException { @@ -215,7 +214,7 @@ public void testCreateAndCallSetterListParam() throws Throwable { equalTo(List.class)); propertyAccessors.get("list").handle() - .invoke(bean, listOf(23L, 42L)); + .invoke(bean, List.of(23L, 42L)); assertThat(bean.getList(), contains(23L, 42L)); } @@ -231,7 +230,7 @@ public void testCreateAndSetFieldListParam() throws Throwable { equalTo(List.class)); propertyAccessors.get("listField").handle() - .invoke(bean, listOf(23L, 42L)); + .invoke(bean, List.of(23L, 42L)); assertThat(bean.listField, contains(23L, 42L)); } @@ -241,7 +240,7 @@ public void testCreateErrorMethodTransientFieldClash() { ReflectionUtil.getPropertyAccessors(MethodTransientFieldClashBean.class); }); assertThat(ex.getMessage(), - stringContainsInOrder(listOf("@Value", "method", "@Transient", "prop1"))); + stringContainsInOrder(List.of("@Value", "method", "@Transient", "prop1"))); } @Test @@ -250,7 +249,7 @@ public void testCreateErrorClashFieldTransientMethodClash() { ReflectionUtil.getPropertyAccessors(FieldTransientMethodClashBean.class); }); assertThat(ex.getMessage(), - stringContainsInOrder(listOf("@Value", "@Transient", "method", "prop1", "property"))); + stringContainsInOrder(List.of("@Value", "@Transient", "method", "prop1", "property"))); } public static class TestBean { diff --git a/config/tests/module-mappers-1-base/src/main/java/io/helidon/config/tests/module/mappers1/Mappers1ConfigMapperProvider.java b/config/tests/module-mappers-1-base/src/main/java/io/helidon/config/tests/module/mappers1/Mappers1ConfigMapperProvider.java index ae6c0f5c475..7648d85fadf 100644 --- a/config/tests/module-mappers-1-base/src/main/java/io/helidon/config/tests/module/mappers1/Mappers1ConfigMapperProvider.java +++ b/config/tests/module-mappers-1-base/src/main/java/io/helidon/config/tests/module/mappers1/Mappers1ConfigMapperProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.ConfigMapperProvider; @@ -35,7 +34,7 @@ public class Mappers1ConfigMapperProvider implements ConfigMapperProvider { @Override public Map, Function> mappers() { - return CollectionsHelper.mapOf(Logger.class, new LoggerConfigMapper(), + return Map.of(Logger.class, new LoggerConfigMapper(), Locale.class, new LocaleConfigMapper()); } } diff --git a/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority100ConfigMapperProvider.java b/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority100ConfigMapperProvider.java index 8e4fb598a44..ac42ea8ff89 100644 --- a/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority100ConfigMapperProvider.java +++ b/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority100ConfigMapperProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.ConfigMapperProvider; @@ -34,7 +33,7 @@ public class Mappers2Priority100ConfigMapperProvider implements ConfigMapperProv @Override public Map, Function> mappers() { - return CollectionsHelper.mapOf(Logger.class, new LoggerConfigMapper()); + return Map.of(Logger.class, new LoggerConfigMapper()); } } diff --git a/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority150ConfigMapperProvider.java b/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority150ConfigMapperProvider.java index 81a24a3c5f6..29af218684e 100644 --- a/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority150ConfigMapperProvider.java +++ b/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority150ConfigMapperProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.ConfigMapperProvider; @@ -35,7 +34,7 @@ public class Mappers2Priority150ConfigMapperProvider implements ConfigMapperProv @Override public Map, Function> mappers() { - return CollectionsHelper.mapOf(OptionalInt.class, new OptionalIntConfigMapper(), + return Map.of(OptionalInt.class, new OptionalIntConfigMapper(), Integer.class, new IntegerConfigMapper(), BigInteger.class, new BigIntegerConfigMapper()); } diff --git a/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority50ConfigMapperProvider.java b/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority50ConfigMapperProvider.java index ebd9738524f..3a5ddb5d370 100644 --- a/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority50ConfigMapperProvider.java +++ b/config/tests/module-mappers-2-override/src/main/java/io/helidon/config/tests/module/mappers2/Mappers2Priority50ConfigMapperProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.ConfigMapperProvider; @@ -34,7 +33,7 @@ public class Mappers2Priority50ConfigMapperProvider implements ConfigMapperProvi @Override public Map, Function> mappers() { - return CollectionsHelper.mapOf(Locale.class, new LocaleConfigMapper()); + return Map.of(Locale.class, new LocaleConfigMapper()); } } diff --git a/config/tests/module-meta-source-1/src/main/java/io/helidon/config/tests/module/meta1/MyConfigSource1Provider.java b/config/tests/module-meta-source-1/src/main/java/io/helidon/config/tests/module/meta1/MyConfigSource1Provider.java index f9e2d7d3af9..2692946b910 100644 --- a/config/tests/module-meta-source-1/src/main/java/io/helidon/config/tests/module/meta1/MyConfigSource1Provider.java +++ b/config/tests/module-meta-source-1/src/main/java/io/helidon/config/tests/module/meta1/MyConfigSource1Provider.java @@ -17,7 +17,6 @@ import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.ConfigSource; import io.helidon.config.spi.ConfigSourceProvider; @@ -40,6 +39,6 @@ public ConfigSource create(String type, Config metaConfig) { @Override public Set supported() { - return CollectionsHelper.setOf(TYPE); + return Set.of(TYPE); } } diff --git a/config/tests/module-meta-source-2/src/main/java/io/helidon/config/tests/module/meta2/MyConfigSource2Provider.java b/config/tests/module-meta-source-2/src/main/java/io/helidon/config/tests/module/meta2/MyConfigSource2Provider.java index 136dc95d601..2a02e0f6f04 100644 --- a/config/tests/module-meta-source-2/src/main/java/io/helidon/config/tests/module/meta2/MyConfigSource2Provider.java +++ b/config/tests/module-meta-source-2/src/main/java/io/helidon/config/tests/module/meta2/MyConfigSource2Provider.java @@ -17,7 +17,6 @@ import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.spi.ConfigSource; import io.helidon.config.spi.ConfigSourceProvider; @@ -40,6 +39,6 @@ public ConfigSource create(String type, Config metaConfig) { @Override public Set supported() { - return CollectionsHelper.setOf(PROVIDER_TYPE); + return Set.of(PROVIDER_TYPE); } } diff --git a/config/tests/module-parsers-1-override/src/main/java/io/helidon/config/tests/module/parsers1/AbstractParsers1ConfigParser.java b/config/tests/module-parsers-1-override/src/main/java/io/helidon/config/tests/module/parsers1/AbstractParsers1ConfigParser.java index 9a09acf6276..9e4d77c4ec7 100644 --- a/config/tests/module-parsers-1-override/src/main/java/io/helidon/config/tests/module/parsers1/AbstractParsers1ConfigParser.java +++ b/config/tests/module-parsers-1-override/src/main/java/io/helidon/config/tests/module/parsers1/AbstractParsers1ConfigParser.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,6 @@ import java.util.Properties; import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.ConfigHelper; import io.helidon.config.spi.ConfigNode; import io.helidon.config.spi.ConfigNode.ValueNode; @@ -36,7 +35,7 @@ public abstract class AbstractParsers1ConfigParser implements ConfigParser { @Override public Set supportedMediaTypes() { - return CollectionsHelper.setOf(MEDIA_TYPE_TEXT_JAVA_PROPERTIES); + return Set.of(MEDIA_TYPE_TEXT_JAVA_PROPERTIES); } @Override diff --git a/config/tests/test-mappers-1-common/src/test/java/io/helidon/config/tests/mappers1/AbstractMapperServicesTest.java b/config/tests/test-mappers-1-common/src/test/java/io/helidon/config/tests/mappers1/AbstractMapperServicesTest.java index 7fdc5983aa9..d505a94463a 100644 --- a/config/tests/test-mappers-1-common/src/test/java/io/helidon/config/tests/mappers1/AbstractMapperServicesTest.java +++ b/config/tests/test-mappers-1-common/src/test/java/io/helidon/config/tests/mappers1/AbstractMapperServicesTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,9 @@ package io.helidon.config.tests.mappers1; import java.util.Locale; +import java.util.Map; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -33,7 +33,7 @@ public abstract class AbstractMapperServicesTest { protected Config.Builder configBuilder() { return Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf( + .sources(ConfigSources.create(Map.of( LOGGER_KEY, this.getClass().getName(), LOCALE_KEY + ".language", "cs", LOCALE_KEY + ".country", "CZ", diff --git a/config/tests/test-mappers-2-complex/src/test/java/io/helidon/config/tests/mappers2/AbstractDifferentIntMapperServicesTest.java b/config/tests/test-mappers-2-complex/src/test/java/io/helidon/config/tests/mappers2/AbstractDifferentIntMapperServicesTest.java index bbfb47fc511..cbda16da7f4 100644 --- a/config/tests/test-mappers-2-complex/src/test/java/io/helidon/config/tests/mappers2/AbstractDifferentIntMapperServicesTest.java +++ b/config/tests/test-mappers-2-complex/src/test/java/io/helidon/config/tests/mappers2/AbstractDifferentIntMapperServicesTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,9 @@ package io.helidon.config.tests.mappers2; import java.math.BigInteger; +import java.util.Map; import java.util.OptionalInt; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -40,7 +40,7 @@ public abstract class AbstractDifferentIntMapperServicesTest { protected Config.Builder configBuilder() { return Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf(KEY, CONFIGURED_VALUE))); + .sources(ConfigSources.create(Map.of(KEY, CONFIGURED_VALUE))); } abstract protected int expected(); diff --git a/config/tests/test-mappers-2-complex/src/test/java/io/helidon/config/tests/mappers2/AbstractMapperServicesTest.java b/config/tests/test-mappers-2-complex/src/test/java/io/helidon/config/tests/mappers2/AbstractMapperServicesTest.java index 8348c483692..0865b0a703d 100644 --- a/config/tests/test-mappers-2-complex/src/test/java/io/helidon/config/tests/mappers2/AbstractMapperServicesTest.java +++ b/config/tests/test-mappers-2-complex/src/test/java/io/helidon/config/tests/mappers2/AbstractMapperServicesTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,9 @@ package io.helidon.config.tests.mappers2; import java.util.Locale; +import java.util.Map; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -33,7 +33,7 @@ public abstract class AbstractMapperServicesTest { protected Config.Builder configBuilder() { return Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf( + .sources(ConfigSources.create(Map.of( LOGGER_KEY, this.getClass().getName(), LOCALE_KEY + ".language", "cs", LOCALE_KEY + ".country", "CZ", diff --git a/config/tests/test-parsers-1-complex/src/test/java/io/helidon/config/tests/parsers1/ParserServicesDisabledTest.java b/config/tests/test-parsers-1-complex/src/test/java/io/helidon/config/tests/parsers1/ParserServicesDisabledTest.java index 32776f54734..8e7e0e804e2 100644 --- a/config/tests/test-parsers-1-complex/src/test/java/io/helidon/config/tests/parsers1/ParserServicesDisabledTest.java +++ b/config/tests/test-parsers-1-complex/src/test/java/io/helidon/config/tests/parsers1/ParserServicesDisabledTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,8 @@ package io.helidon.config.tests.parsers1; -import io.helidon.common.CollectionsHelper; +import java.util.List; + import io.helidon.config.Config; import io.helidon.config.ConfigException; @@ -44,7 +45,7 @@ public void testNoSuitableParser() { configBuilder().build(); }); - assertThat(ce.getMessage(), stringContainsInOrder(CollectionsHelper.listOf( + assertThat(ce.getMessage(), stringContainsInOrder(List.of( "Cannot load data from mandatory source", "InMemoryConfig[String]", "Cannot find suitable parser for 'text/x-java-properties' media type."))); diff --git a/config/yaml/src/main/java/io/helidon/config/yaml/internal/YamlConfigParser.java b/config/yaml/src/main/java/io/helidon/config/yaml/internal/YamlConfigParser.java index dacd9b6eb7e..fa2d1842ab5 100644 --- a/config/yaml/src/main/java/io/helidon/config/yaml/internal/YamlConfigParser.java +++ b/config/yaml/src/main/java/io/helidon/config/yaml/internal/YamlConfigParser.java @@ -22,7 +22,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.config.ConfigException; import io.helidon.config.ConfigHelper; import io.helidon.config.spi.ConfigNode.ListNode; @@ -58,7 +57,7 @@ public class YamlConfigParser implements ConfigParser { */ public static final int PRIORITY = ConfigParser.PRIORITY + 100; - private static final Set SUPPORTED_MEDIA_TYPES = CollectionsHelper.setOf(MEDIA_TYPE_APPLICATION_YAML); + private static final Set SUPPORTED_MEDIA_TYPES = Set.of(MEDIA_TYPE_APPLICATION_YAML); /** * Default constructor needed by Java Service loader. diff --git a/docs/src/main/docs/guides/09_metrics_mp_guide.adoc b/docs/src/main/docs/guides/09_metrics_mp_guide.adoc index 868e5070a14..b21032c2619 100644 --- a/docs/src/main/docs/guides/09_metrics_mp_guide.adoc +++ b/docs/src/main/docs/guides/09_metrics_mp_guide.adoc @@ -283,7 +283,7 @@ The default behavior is to decrement when exiting the method. Here is an exampl ---- @Override public Set> getClasses() { - return CollectionsHelper.setOf(GreetResource.class, GreetingCards.class); // <1> + return Set.of(GreetResource.class, GreetingCards.class); // <1> } ---- <1> Add the `GreetingCards` class to the set of classes managed by Helidon for this application. diff --git a/docs/src/main/docs/guides/91_mp-tutorial.adoc b/docs/src/main/docs/guides/91_mp-tutorial.adoc index 59a27e34519..9b3fe7fb417 100644 --- a/docs/src/main/docs/guides/91_mp-tutorial.adoc +++ b/docs/src/main/docs/guides/91_mp-tutorial.adoc @@ -170,8 +170,6 @@ Create a new Java class inside that directory called `GreetApplication.java` ---- package io.helidon.examples; -import io.helidon.common.CollectionsHelper; - import javax.enterprise.context.ApplicationScoped; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @@ -183,7 +181,7 @@ public class GreetApplication extends Application { <3> @Override public Set> getClasses() { <4> - return CollectionsHelper.setOf(GreetResource.class); + return Set.of(GreetResource.class); } } diff --git a/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/BuilderExample.java b/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/BuilderExample.java index 72feca84686..73d147113be 100644 --- a/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/BuilderExample.java +++ b/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/BuilderExample.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ import java.util.List; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; import io.helidon.config.objectmapping.Value; @@ -178,7 +177,7 @@ public AppConfig build() { public static class DefaultBasicRangeSupplier implements Supplier> { @Override public List get() { - return CollectionsHelper.listOf(-10, 10); + return List.of(-10, 10); } } } diff --git a/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/DeserializationExample.java b/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/DeserializationExample.java index 4392cf2a515..76b1c8bfa65 100644 --- a/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/DeserializationExample.java +++ b/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/DeserializationExample.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ import java.util.List; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; import io.helidon.config.objectmapping.Value; @@ -140,7 +139,7 @@ public String toString() { public static class DefaultBasicRangeSupplier implements Supplier> { @Override public List get() { - return CollectionsHelper.listOf(-10, 10); + return List.of(-10, 10); } } } diff --git a/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/FactoryMethodExample.java b/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/FactoryMethodExample.java index 76587688032..0995b70274f 100644 --- a/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/FactoryMethodExample.java +++ b/examples/config/mapping/src/main/java/io/helidon/config/examples/mapping/FactoryMethodExample.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ import java.util.List; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; import io.helidon.config.objectmapping.Value; @@ -123,7 +122,7 @@ public static AppConfig create(@Value(key = "greeting", withDefault = "Hi") public static class DefaultBasicRangeSupplier implements Supplier> { @Override public List get() { - return CollectionsHelper.listOf(-10, 10); + return List.of(-10, 10); } } } diff --git a/examples/grpc/common/src/main/java/io/helidon/grpc/examples/common/StringClient.java b/examples/grpc/common/src/main/java/io/helidon/grpc/examples/common/StringClient.java index bcb3211cd57..e0cb4f78555 100644 --- a/examples/grpc/common/src/main/java/io/helidon/grpc/examples/common/StringClient.java +++ b/examples/grpc/common/src/main/java/io/helidon/grpc/examples/common/StringClient.java @@ -23,7 +23,6 @@ import java.util.concurrent.CompletionStage; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.grpc.client.ClientServiceDescriptor; import io.helidon.grpc.client.GrpcServiceClient; import io.helidon.grpc.examples.common.Strings.StringMessage; @@ -124,7 +123,7 @@ public static void clientStreaming(GrpcServiceClient client) throws Exception { FutureObserver responses = new FutureObserver(); StreamObserver requests = client.clientStreaming("Join", responses); - List joinValues = CollectionsHelper.listOf("A", "B", "C", "D"); + List joinValues = List.of("A", "B", "C", "D"); // stream the values to the server joinValues.forEach(word -> requests.onNext(StringMessage.newBuilder().setText(word).build())); @@ -143,7 +142,7 @@ public static void clientStreaming(GrpcServiceClient client) throws Exception { * @throws java.lang.Exception if the call fails */ public static void clientStreamingOfIterable(GrpcServiceClient client) throws Exception { - List joinValues = CollectionsHelper.listOf("A", "B", "C", "D") + List joinValues = List.of("A", "B", "C", "D") .stream() .map(val -> StringMessage.newBuilder().setText(val).build()) .collect(Collectors.toList()); @@ -207,7 +206,7 @@ public static void serverStreaming(GrpcServiceClient client) throws Exception { * @throws java.lang.Exception if the call fails */ public static void bidirectional(GrpcServiceClient client) throws Exception { - List valuesToStream = CollectionsHelper.listOf("A", "B", "C", "D"); + List valuesToStream = List.of("A", "B", "C", "D"); FutureStreamingObserver responses = new FutureStreamingObserver(); StreamObserver requests = client.bidiStreaming("Echo", responses); diff --git a/examples/grpc/microprofile/basic-client/src/main/java/io/helidon/microprofile/grpc/example/client/Client.java b/examples/grpc/microprofile/basic-client/src/main/java/io/helidon/microprofile/grpc/example/client/Client.java index 26951440114..5993d1e8c14 100644 --- a/examples/grpc/microprofile/basic-client/src/main/java/io/helidon/microprofile/grpc/example/client/Client.java +++ b/examples/grpc/microprofile/basic-client/src/main/java/io/helidon/microprofile/grpc/example/client/Client.java @@ -25,7 +25,6 @@ import javax.enterprise.inject.se.SeContainerInitializer; import javax.inject.Inject; -import io.helidon.common.CollectionsHelper; import io.helidon.microprofile.grpc.client.GrpcChannel; import io.helidon.microprofile.grpc.client.GrpcServiceProxy; @@ -98,7 +97,7 @@ public void clientStreaming() throws Exception { FutureObserver responses = new FutureObserver(); StreamObserver requests = stringService.join(responses); - List joinValues = CollectionsHelper.listOf("A", "B", "C", "D"); + List joinValues = List.of("A", "B", "C", "D"); // stream the values to the server joinValues.forEach(requests::onNext); @@ -115,7 +114,7 @@ public void clientStreaming() throws Exception { * @throws Exception if the call fails */ public void bidirectional() throws Exception { - List valuesToStream = CollectionsHelper.listOf("A", "B", "C", "D"); + List valuesToStream = List.of("A", "B", "C", "D"); FutureStreamingObserver responses = new FutureStreamingObserver(); StreamObserver requests = stringService.echo(responses); diff --git a/examples/grpc/security-abac/src/main/java/io/helidon/grpc/examples/security/abac/AtnProvider.java b/examples/grpc/security-abac/src/main/java/io/helidon/grpc/examples/security/abac/AtnProvider.java index 0c809bc5ddd..eada2adeaa4 100644 --- a/examples/grpc/security-abac/src/main/java/io/helidon/grpc/examples/security/abac/AtnProvider.java +++ b/examples/grpc/security-abac/src/main/java/io/helidon/grpc/examples/security/abac/AtnProvider.java @@ -31,9 +31,9 @@ import java.util.List; import java.util.Objects; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; import io.helidon.security.EndpointConfig; @@ -125,7 +125,7 @@ private Subject buildSubject(Auth authentication) { @Override public Collection> supportedAnnotations() { - return CollectionsHelper.setOf(Authentication.class); + return Set.of(Authentication.class); } /** diff --git a/examples/microprofile/hello-world-explicit/src/main/java/io/helidon/microprofile/example/helloworld/explicit/HelloWorldApplication.java b/examples/microprofile/hello-world-explicit/src/main/java/io/helidon/microprofile/example/helloworld/explicit/HelloWorldApplication.java index 4ecc3f3ea23..e34899486b6 100644 --- a/examples/microprofile/hello-world-explicit/src/main/java/io/helidon/microprofile/example/helloworld/explicit/HelloWorldApplication.java +++ b/examples/microprofile/hello-world-explicit/src/main/java/io/helidon/microprofile/example/helloworld/explicit/HelloWorldApplication.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * */ @@ -33,7 +31,7 @@ public class HelloWorldApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf( + return Set.of( HelloWorldResource.class ); } diff --git a/examples/microprofile/hello-world-implicit/src/main/java/io/helidon/microprofile/example/helloworld/implicit/HelloWorldApplication.java b/examples/microprofile/hello-world-implicit/src/main/java/io/helidon/microprofile/example/helloworld/implicit/HelloWorldApplication.java index 90619bf6065..899b2b63049 100644 --- a/examples/microprofile/hello-world-implicit/src/main/java/io/helidon/microprofile/example/helloworld/implicit/HelloWorldApplication.java +++ b/examples/microprofile/hello-world-implicit/src/main/java/io/helidon/microprofile/example/helloworld/implicit/HelloWorldApplication.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Application for example with two resource classes. */ @@ -33,7 +31,7 @@ public class HelloWorldApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf( + return Set.of( HelloWorldResource.class, AnotherResource.class ); diff --git a/examples/microprofile/idcs/src/main/java/io/helidon/microprofile/example/idcs/IdcsApplication.java b/examples/microprofile/idcs/src/main/java/io/helidon/microprofile/example/idcs/IdcsApplication.java index 4ee4301a72d..f0c6bed4c39 100644 --- a/examples/microprofile/idcs/src/main/java/io/helidon/microprofile/example/idcs/IdcsApplication.java +++ b/examples/microprofile/idcs/src/main/java/io/helidon/microprofile/example/idcs/IdcsApplication.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Example JAX-RS application with resources protected by IDCS. */ @@ -32,6 +30,6 @@ public class IdcsApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(IdcsResource.class); + return Set.of(IdcsResource.class); } } diff --git a/examples/microprofile/mp1_1-security/src/main/java/io/helidon/microprofile/example/security/OtherApp.java b/examples/microprofile/mp1_1-security/src/main/java/io/helidon/microprofile/example/security/OtherApp.java index 03ba2921b9d..eb362a84b19 100644 --- a/examples/microprofile/mp1_1-security/src/main/java/io/helidon/microprofile/example/security/OtherApp.java +++ b/examples/microprofile/mp1_1-security/src/main/java/io/helidon/microprofile/example/security/OtherApp.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * An example of two applications in a single MP Server. * This is the "other" application - serving the same resource on a different context. @@ -33,7 +31,7 @@ public class OtherApp extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf( + return Set.of( HelloWorldResource.class ); } diff --git a/examples/microprofile/mp1_1-security/src/main/java/io/helidon/microprofile/example/security/StaticContentApp.java b/examples/microprofile/mp1_1-security/src/main/java/io/helidon/microprofile/example/security/StaticContentApp.java index 5a7ea804cc5..2115529817d 100644 --- a/examples/microprofile/mp1_1-security/src/main/java/io/helidon/microprofile/example/security/StaticContentApp.java +++ b/examples/microprofile/mp1_1-security/src/main/java/io/helidon/microprofile/example/security/StaticContentApp.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Example JAX-RS application with static content. */ @@ -32,7 +30,7 @@ public class StaticContentApp extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf( + return Set.of( HelloWorldResource.class ); } diff --git a/examples/microprofile/mp1_1-static-content/src/main/java/io/helidon/microprofile/example/staticc/StaticContentApp.java b/examples/microprofile/mp1_1-static-content/src/main/java/io/helidon/microprofile/example/staticc/StaticContentApp.java index 1a455317799..16c3dab5058 100644 --- a/examples/microprofile/mp1_1-static-content/src/main/java/io/helidon/microprofile/example/staticc/StaticContentApp.java +++ b/examples/microprofile/mp1_1-static-content/src/main/java/io/helidon/microprofile/example/staticc/StaticContentApp.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Example JAX-RS application with static content. */ @@ -32,7 +30,7 @@ public class StaticContentApp extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf( + return Set.of( HelloWorldResource.class ); } diff --git a/examples/microprofile/openapi-basic/src/main/java/io/helidon/microprofile/examples/openapi/basic/GreetApplication.java b/examples/microprofile/openapi-basic/src/main/java/io/helidon/microprofile/examples/openapi/basic/GreetApplication.java index b78d8f2dda2..bb3a8037a15 100644 --- a/examples/microprofile/openapi-basic/src/main/java/io/helidon/microprofile/examples/openapi/basic/GreetApplication.java +++ b/examples/microprofile/openapi-basic/src/main/java/io/helidon/microprofile/examples/openapi/basic/GreetApplication.java @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Simple Application that produces a greeting message. */ @@ -33,6 +31,6 @@ public class GreetApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(GreetResource.class); + return Set.of(GreetResource.class); } } diff --git a/examples/quickstarts/helidon-quickstart-mp/src/main/java/io/helidon/examples/quickstart/mp/GreetApplication.java b/examples/quickstarts/helidon-quickstart-mp/src/main/java/io/helidon/examples/quickstart/mp/GreetApplication.java index fd140738c5d..b359b364988 100644 --- a/examples/quickstarts/helidon-quickstart-mp/src/main/java/io/helidon/examples/quickstart/mp/GreetApplication.java +++ b/examples/quickstarts/helidon-quickstart-mp/src/main/java/io/helidon/examples/quickstart/mp/GreetApplication.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Simple Application that produces a greeting message. */ @@ -33,6 +31,6 @@ public class GreetApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(GreetResource.class); + return Set.of(GreetResource.class); } } diff --git a/examples/quickstarts/helidon-standalone-quickstart-mp/src/main/java/io/helidon/examples/quickstart/mp/GreetApplication.java b/examples/quickstarts/helidon-standalone-quickstart-mp/src/main/java/io/helidon/examples/quickstart/mp/GreetApplication.java index f76202ed201..756cffba8e3 100644 --- a/examples/quickstarts/helidon-standalone-quickstart-mp/src/main/java/io/helidon/examples/quickstart/mp/GreetApplication.java +++ b/examples/quickstarts/helidon-standalone-quickstart-mp/src/main/java/io/helidon/examples/quickstart/mp/GreetApplication.java @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Simple Application that produces a greeting message. */ @@ -33,6 +31,6 @@ public class GreetApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(GreetResource.class); + return Set.of(GreetResource.class); } } diff --git a/examples/security/attribute-based-access-control/src/main/java/io/helidon/security/examples/abac/AbacApplication.java b/examples/security/attribute-based-access-control/src/main/java/io/helidon/security/examples/abac/AbacApplication.java index d6e87b6dbde..eb7f891dd94 100644 --- a/examples/security/attribute-based-access-control/src/main/java/io/helidon/security/examples/abac/AbacApplication.java +++ b/examples/security/attribute-based-access-control/src/main/java/io/helidon/security/examples/abac/AbacApplication.java @@ -21,8 +21,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Application class of this MP application. */ @@ -31,6 +29,6 @@ public class AbacApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(AbacResource.class, AbacExplicitResource.class); + return Set.of(AbacResource.class, AbacExplicitResource.class); } } diff --git a/examples/security/attribute-based-access-control/src/main/java/io/helidon/security/examples/abac/AtnProvider.java b/examples/security/attribute-based-access-control/src/main/java/io/helidon/security/examples/abac/AtnProvider.java index ec97cfbe632..de37750737c 100644 --- a/examples/security/attribute-based-access-control/src/main/java/io/helidon/security/examples/abac/AtnProvider.java +++ b/examples/security/attribute-based-access-control/src/main/java/io/helidon/security/examples/abac/AtnProvider.java @@ -29,8 +29,8 @@ import java.util.LinkedList; import java.util.List; import java.util.ListIterator; +import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.security.AuthenticationResponse; import io.helidon.security.EndpointConfig; import io.helidon.security.Grant; @@ -95,7 +95,7 @@ private Subject buildSubject(Authentication authentication) { @Override public Collection> supportedAnnotations() { - return CollectionsHelper.setOf(Authentication.class); + return Set.of(Authentication.class); } /** diff --git a/examples/security/jersey/src/main/java/io/helidon/security/examples/jersey/JerseyBuilderMain.java b/examples/security/jersey/src/main/java/io/helidon/security/examples/jersey/JerseyBuilderMain.java index 5687f359d4b..4c11be1393c 100644 --- a/examples/security/jersey/src/main/java/io/helidon/security/examples/jersey/JerseyBuilderMain.java +++ b/examples/security/jersey/src/main/java/io/helidon/security/examples/jersey/JerseyBuilderMain.java @@ -25,7 +25,6 @@ import javax.ws.rs.core.Response; import javax.ws.rs.ext.ExceptionMapper; -import io.helidon.common.CollectionsHelper; import io.helidon.security.Security; import io.helidon.security.integration.jersey.SecurityFeature; import io.helidon.security.providers.abac.AbacProvider; @@ -43,9 +42,9 @@ public final class JerseyBuilderMain { private static volatile WebServer server; static { - addUser("jack", "password", CollectionsHelper.listOf("user", "admin")); - addUser("jill", "password", CollectionsHelper.listOf("user")); - addUser("john", "password", CollectionsHelper.listOf()); + addUser("jack", "password", List.of("user", "admin")); + addUser("jill", "password", List.of("user")); + addUser("john", "password", List.of()); } private JerseyBuilderMain() { diff --git a/examples/security/jersey/src/test/java/io/helidon/security/examples/jersey/JerseyMainTest.java b/examples/security/jersey/src/test/java/io/helidon/security/examples/jersey/JerseyMainTest.java index d55f446decb..e3e0788bef4 100644 --- a/examples/security/jersey/src/test/java/io/helidon/security/examples/jersey/JerseyMainTest.java +++ b/examples/security/jersey/src/test/java/io/helidon/security/examples/jersey/JerseyMainTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.webserver.WebServer; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; @@ -91,13 +90,13 @@ public void testProtectedOk() { testProtected(baseUri() + "/protected", "jack", "password", - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf()); + Set.of("user", "admin"), + Set.of()); testProtected(baseUri() + "/protected", "jill", "password", - CollectionsHelper.setOf("user"), - CollectionsHelper.setOf("admin")); + Set.of("user"), + Set.of("admin")); } @Test @@ -118,8 +117,8 @@ public void testOutboundOk() { testProtected(baseUri() + "/outbound", "jill", "password", - CollectionsHelper.setOf("user"), - CollectionsHelper.setOf("admin")); + Set.of("user"), + Set.of("admin")); } protected abstract int getPort(); diff --git a/examples/security/nohttp-programmatic/src/main/java/io/helidon/security/examples/security/MyProvider.java b/examples/security/nohttp-programmatic/src/main/java/io/helidon/security/examples/security/MyProvider.java index de4b4cb9832..77a5f4a4608 100644 --- a/examples/security/nohttp-programmatic/src/main/java/io/helidon/security/examples/security/MyProvider.java +++ b/examples/security/nohttp-programmatic/src/main/java/io/helidon/security/examples/security/MyProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,6 @@ import java.util.Base64; import java.util.List; -import io.helidon.common.CollectionsHelper; import io.helidon.security.AuthenticationResponse; import io.helidon.security.AuthorizationResponse; import io.helidon.security.EndpointConfig; @@ -43,7 +42,7 @@ class MyProvider extends SynchronousProvider implements AuthenticationProvider, @Override protected AuthenticationResponse syncAuthenticate(ProviderRequest providerRequest) { //get username and password - List headers = providerRequest.env().headers().getOrDefault("authorization", CollectionsHelper.listOf()); + List headers = providerRequest.env().headers().getOrDefault("authorization", List.of()); if (headers.isEmpty()) { return AuthenticationResponse.failed("No authorization header"); } diff --git a/examples/security/oidc/src/main/java/io/helidon/security/examples/oidc/OidcTestApplication.java b/examples/security/oidc/src/main/java/io/helidon/security/examples/oidc/OidcTestApplication.java index 172efe55b14..5c1f24876fb 100644 --- a/examples/security/oidc/src/main/java/io/helidon/security/examples/oidc/OidcTestApplication.java +++ b/examples/security/oidc/src/main/java/io/helidon/security/examples/oidc/OidcTestApplication.java @@ -22,8 +22,6 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * A simple JAX-rs application that just returns the single {@link io.helidon.security.examples.oidc.OidcResource resource}. */ @@ -33,6 +31,6 @@ public class OidcTestApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(OidcResource.class); + return Set.of(OidcResource.class); } } diff --git a/examples/security/spi-examples/src/main/java/io/helidon/security/examples/spi/AtnProviderSync.java b/examples/security/spi-examples/src/main/java/io/helidon/security/examples/spi/AtnProviderSync.java index 0456da0fbcd..95de45c56b1 100644 --- a/examples/security/spi-examples/src/main/java/io/helidon/security/examples/spi/AtnProviderSync.java +++ b/examples/security/spi-examples/src/main/java/io/helidon/security/examples/spi/AtnProviderSync.java @@ -26,8 +26,8 @@ import java.util.Collection; import java.util.List; import java.util.Optional; +import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; import io.helidon.security.EndpointConfig; @@ -96,7 +96,7 @@ private AtnObject getCustomObject(EndpointConfig epConfig) { @Override public Collection> supportedAnnotations() { - return CollectionsHelper.setOf(AtnAnnot.class); + return Set.of(AtnAnnot.class); } /** diff --git a/examples/security/spi-examples/src/main/java/io/helidon/security/examples/spi/OutboundProviderSync.java b/examples/security/spi-examples/src/main/java/io/helidon/security/examples/spi/OutboundProviderSync.java index 32ac625c4d4..c4bc3dfa633 100644 --- a/examples/security/spi-examples/src/main/java/io/helidon/security/examples/spi/OutboundProviderSync.java +++ b/examples/security/spi-examples/src/main/java/io/helidon/security/examples/spi/OutboundProviderSync.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,9 @@ package io.helidon.security.examples.spi; -import io.helidon.common.CollectionsHelper; +import java.util.List; +import java.util.Map; + import io.helidon.security.EndpointConfig; import io.helidon.security.OutboundSecurityResponse; import io.helidon.security.Principal; @@ -41,7 +43,7 @@ protected OutboundSecurityResponse syncOutbound(ProviderRequest providerRequest, .map(Subject::principal) .map(Principal::getName) .map(name -> OutboundSecurityResponse - .withHeaders(CollectionsHelper.mapOf("X-AUTH-USER", CollectionsHelper.listOf(name)))) + .withHeaders(Map.of("X-AUTH-USER", List.of(name)))) .orElse(OutboundSecurityResponse.abstain()); } } diff --git a/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/AtnProviderSyncTest.java b/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/AtnProviderSyncTest.java index 5901e4f7a59..d4f7d18d00e 100644 --- a/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/AtnProviderSyncTest.java +++ b/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/AtnProviderSyncTest.java @@ -17,10 +17,11 @@ package io.helidon.security.examples.spi; import java.lang.annotation.Annotation; +import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; import io.helidon.security.AuthenticationResponse; @@ -94,7 +95,7 @@ public Class annotationType() { SecurityEnvironment se = SecurityEnvironment.create(); EndpointConfig ep = EndpointConfig.builder() .annotations(EndpointConfig.AnnotationScope.CLASS, - CollectionsHelper.mapOf(AtnProviderSync.AtnAnnot.class, CollectionsHelper.listOf(annot))) + Map.of(AtnProviderSync.AtnAnnot.class, List.of(annot))) .build(); ProviderRequest request = mock(ProviderRequest.class); @@ -131,7 +132,7 @@ public void testCustomObjectSuccess() { @Test public void testConfigSuccess() { Config config = Config.create( - ConfigSources.create(CollectionsHelper.mapOf("value", VALUE, + ConfigSources.create(Map.of("value", VALUE, "size", String.valueOf(SIZE))) ); @@ -156,7 +157,7 @@ public void testConfigSuccess() { @Test public void testFailure() { Config config = Config.create( - ConfigSources.create(CollectionsHelper.mapOf("atn-object.size", String.valueOf(SIZE))) + ConfigSources.create(Map.of("atn-object.size", String.valueOf(SIZE))) ); SecurityContext context = mock(SecurityContext.class); diff --git a/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/OutboundProviderSyncTest.java b/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/OutboundProviderSyncTest.java index 6798ed325b0..c7972d320b0 100644 --- a/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/OutboundProviderSyncTest.java +++ b/examples/security/spi-examples/src/test/java/io/helidon/security/examples/spi/OutboundProviderSyncTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,9 +16,9 @@ package io.helidon.security.examples.spi; +import java.util.List; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.security.EndpointConfig; import io.helidon.security.OutboundSecurityResponse; import io.helidon.security.Principal; @@ -76,6 +76,6 @@ public void testSuccess() { OutboundSecurityResponse response = ops.syncOutbound(request, SecurityEnvironment.create(), EndpointConfig.create()); assertThat(response.status(), is(SecurityResponse.SecurityStatus.SUCCESS)); - assertThat(response.requestHeaders().get("X-AUTH-USER"), is(CollectionsHelper.listOf(username))); + assertThat(response.requestHeaders().get("X-AUTH-USER"), is(List.of(username))); } } diff --git a/examples/security/webserver-digest-auth/src/main/java/io/helidon/security/examples/webserver/digest/DigestExampleBuilderMain.java b/examples/security/webserver-digest-auth/src/main/java/io/helidon/security/examples/webserver/digest/DigestExampleBuilderMain.java index 035571da327..ffe00fa6960 100644 --- a/examples/security/webserver-digest-auth/src/main/java/io/helidon/security/examples/webserver/digest/DigestExampleBuilderMain.java +++ b/examples/security/webserver-digest-auth/src/main/java/io/helidon/security/examples/webserver/digest/DigestExampleBuilderMain.java @@ -23,7 +23,6 @@ import java.util.Set; import java.util.logging.LogManager; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.MediaType; import io.helidon.security.Security; import io.helidon.security.SecurityContext; @@ -43,9 +42,9 @@ public final class DigestExampleBuilderMain { private static Map users = new HashMap<>(); static { - users.put("jack", new MyUser("jack", "password".toCharArray(), CollectionsHelper.setOf("user", "admin"))); - users.put("jill", new MyUser("jill", "password".toCharArray(), CollectionsHelper.setOf("user"))); - users.put("john", new MyUser("john", "password".toCharArray(), CollectionsHelper.setOf())); + users.put("jack", new MyUser("jack", "password".toCharArray(), Set.of("user", "admin"))); + users.put("jill", new MyUser("jill", "password".toCharArray(), Set.of("user"))); + users.put("john", new MyUser("john", "password".toCharArray(), Set.of())); } private DigestExampleBuilderMain() { diff --git a/examples/security/webserver-digest-auth/src/test/java/io/helidon/security/examples/webserver/digest/DigestExampleTest.java b/examples/security/webserver-digest-auth/src/test/java/io/helidon/security/examples/webserver/digest/DigestExampleTest.java index e679a46a87f..c4510f95f7f 100644 --- a/examples/security/webserver-digest-auth/src/test/java/io/helidon/security/examples/webserver/digest/DigestExampleTest.java +++ b/examples/security/webserver-digest-auth/src/test/java/io/helidon/security/examples/webserver/digest/DigestExampleTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.webserver.WebServer; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; @@ -94,9 +93,9 @@ public void testNoRoles() { testNotAuthorized(client, url); //Must be accessible with authentication - to everybody - testProtected(url, "jack", "password", CollectionsHelper.setOf("admin", "user"), CollectionsHelper.setOf()); - testProtected(url, "jill", "password", CollectionsHelper.setOf("user"), CollectionsHelper.setOf("admin")); - testProtected(url, "john", "password", CollectionsHelper.setOf(), CollectionsHelper.setOf("admin", "user")); + testProtected(url, "jack", "password", Set.of("admin", "user"), Set.of()); + testProtected(url, "jill", "password", Set.of("user"), Set.of("admin")); + testProtected(url, "john", "password", Set.of(), Set.of("admin", "user")); } @Test @@ -106,8 +105,8 @@ public void testUserRole() { testNotAuthorized(client, url); //Jack and Jill allowed (user role) - testProtected(url, "jack", "password", CollectionsHelper.setOf("admin", "user"), CollectionsHelper.setOf()); - testProtected(url, "jill", "password", CollectionsHelper.setOf("user"), CollectionsHelper.setOf("admin")); + testProtected(url, "jack", "password", Set.of("admin", "user"), Set.of()); + testProtected(url, "jill", "password", Set.of("user"), Set.of("admin")); testProtectedDenied(url, "john", "password"); } @@ -118,7 +117,7 @@ public void testAdminRole() { testNotAuthorized(client, url); //Only jack is allowed - admin role... - testProtected(url, "jack", "password", CollectionsHelper.setOf("admin", "user"), CollectionsHelper.setOf()); + testProtected(url, "jack", "password", Set.of("admin", "user"), Set.of()); testProtectedDenied(url, "jill", "password"); testProtectedDenied(url, "john", "password"); } diff --git a/examples/security/webserver-signatures/src/main/java/io/helidon/security/examples/signatures/SignatureExampleBuilderMain.java b/examples/security/webserver-signatures/src/main/java/io/helidon/security/examples/signatures/SignatureExampleBuilderMain.java index c5511e1d017..21c4d6d6c0c 100644 --- a/examples/security/webserver-signatures/src/main/java/io/helidon/security/examples/signatures/SignatureExampleBuilderMain.java +++ b/examples/security/webserver-signatures/src/main/java/io/helidon/security/examples/signatures/SignatureExampleBuilderMain.java @@ -23,7 +23,6 @@ import java.util.Map; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.Resource; import io.helidon.common.http.MediaType; import io.helidon.common.pki.KeyConfig; @@ -53,9 +52,9 @@ public class SignatureExampleBuilderMain { private static WebServer service2Server; static { - addUser("jack", "password", CollectionsHelper.listOf("user", "admin")); - addUser("jill", "password", CollectionsHelper.listOf("user")); - addUser("john", "password", CollectionsHelper.listOf()); + addUser("jack", "password", List.of("user", "admin")); + addUser("jill", "password", List.of("user")); + addUser("john", "password", List.of()); } private SignatureExampleBuilderMain() { diff --git a/examples/security/webserver-signatures/src/test/java/io/helidon/security/examples/signatures/SignatureExampleTest.java b/examples/security/webserver-signatures/src/test/java/io/helidon/security/examples/signatures/SignatureExampleTest.java index 6dcfe05642e..4ecf54d8d6c 100644 --- a/examples/security/webserver-signatures/src/test/java/io/helidon/security/examples/signatures/SignatureExampleTest.java +++ b/examples/security/webserver-signatures/src/test/java/io/helidon/security/examples/signatures/SignatureExampleTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.webserver.WebServer; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; @@ -82,8 +81,8 @@ public void testService1Hmac() { testProtected("http://localhost:" + getService1Port() + "/service1", "jack", "password", - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf(), + Set.of("user", "admin"), + Set.of(), "Service1 - HMAC signature"); } @@ -92,8 +91,8 @@ public void testService1Rsa() { testProtected("http://localhost:" + getService1Port() + "/service1-rsa", "jack", "password", - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf(), + Set.of("user", "admin"), + Set.of(), "Service1 - RSA signature"); } diff --git a/examples/todo-app/backend/src/main/java/io/helidon/demo/todos/backend/DbService.java b/examples/todo-app/backend/src/main/java/io/helidon/demo/todos/backend/DbService.java index 8d0bcfd66c3..6f29d5e852d 100644 --- a/examples/todo-app/backend/src/main/java/io/helidon/demo/todos/backend/DbService.java +++ b/examples/todo-app/backend/src/main/java/io/helidon/demo/todos/backend/DbService.java @@ -19,13 +19,13 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.function.Supplier; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.SecurityException; @@ -157,8 +157,8 @@ private static T execute(final SpanContext tracingSpan, return supplier.get(); } catch (Exception e) { Tags.ERROR.set(span, true); - span.log(CollectionsHelper.mapOf("event", "error", - "error.object", e)); + span.log(Map.of("event", "error", + "error.object", e)); throw e; } finally { span.finish(); diff --git a/examples/todo-app/backend/src/main/java/io/helidon/demo/todos/backend/Main.java b/examples/todo-app/backend/src/main/java/io/helidon/demo/todos/backend/Main.java index d39087110f2..eb2a80baefc 100644 --- a/examples/todo-app/backend/src/main/java/io/helidon/demo/todos/backend/Main.java +++ b/examples/todo-app/backend/src/main/java/io/helidon/demo/todos/backend/Main.java @@ -17,12 +17,12 @@ package io.helidon.demo.todos.backend; import java.io.IOException; +import java.util.List; import java.util.logging.LogManager; import io.helidon.config.Config; import io.helidon.microprofile.server.Server; -import static io.helidon.common.CollectionsHelper.listOf; import static io.helidon.config.ConfigSources.classpath; import static io.helidon.config.ConfigSources.environmentVariables; import static io.helidon.config.ConfigSources.file; @@ -67,7 +67,7 @@ public static void main(final String[] args) throws IOException { */ static Config buildConfig() { return Config.builder() - .sources(listOf( + .sources(List.of( environmentVariables(), // expected on development machine // to override props for dev diff --git a/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/BackendServiceClient.java b/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/BackendServiceClient.java index 05c216a8e2b..211fedaff2c 100644 --- a/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/BackendServiceClient.java +++ b/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/BackendServiceClient.java @@ -16,6 +16,7 @@ package io.helidon.demo.todos.frontend; +import java.util.Map; import java.util.Optional; import java.util.concurrent.CompletionStage; import java.util.logging.Level; @@ -29,7 +30,6 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.config.Config; import io.helidon.security.SecurityContext; @@ -104,8 +104,8 @@ public CompletionStage getAll(final SpanContext spanContext) { result.thenAccept(ignored -> span.finish()) .exceptionally(t -> { Tags.ERROR.set(span, true); - span.log(CollectionsHelper.mapOf("event", "error", - "error.object", t)); + span.log(Map.of("event", "error", + "error.object", t)); LOGGER.log(Level.WARNING, "Failed to invoke getAll() on " + serviceEndpoint + "/api/backend", t); diff --git a/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/Main.java b/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/Main.java index eceec809d19..2af5e7ed3ba 100644 --- a/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/Main.java +++ b/examples/todo-app/frontend/src/main/java/io/helidon/demo/todos/frontend/Main.java @@ -17,6 +17,7 @@ package io.helidon.demo.todos.frontend; import java.io.IOException; +import java.util.List; import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.Logger; @@ -39,7 +40,6 @@ import io.opentracing.Tracer; import org.glassfish.jersey.logging.LoggingFeature; -import static io.helidon.common.CollectionsHelper.listOf; import static io.helidon.config.ConfigSources.classpath; import static io.helidon.config.ConfigSources.environmentVariables; import static io.helidon.config.ConfigSources.file; @@ -173,7 +173,7 @@ private static void started(final WebServer webServer, */ private static Config buildConfig() { return Config.builder() - .sources(listOf( + .sources(List.of( environmentVariables(), // expected on development machine // to override props for dev diff --git a/grpc/metrics/src/test/java/io/helidon/grpc/metrics/GrpcMetricsInterceptorIT.java b/grpc/metrics/src/test/java/io/helidon/grpc/metrics/GrpcMetricsInterceptorIT.java index 1ca380dabb4..c7339186692 100644 --- a/grpc/metrics/src/test/java/io/helidon/grpc/metrics/GrpcMetricsInterceptorIT.java +++ b/grpc/metrics/src/test/java/io/helidon/grpc/metrics/GrpcMetricsInterceptorIT.java @@ -18,7 +18,6 @@ import java.util.Map; -import io.helidon.common.CollectionsHelper; import io.helidon.common.metrics.InternalBridge.MetricID; import io.helidon.grpc.server.GrpcService; import io.helidon.grpc.server.MethodDescriptor; @@ -181,7 +180,7 @@ public void shouldApplyTags() throws Exception { .build(); MethodDescriptor methodDescriptor = descriptor.method("barTags"); - Map tags = CollectionsHelper.mapOf("one", "t1", "two", "t2"); + Map tags = Map.of("one", "t1", "two", "t2"); GrpcMetrics metrics = GrpcMetrics.counted().tags(tags); ServerCall call = call(metrics, methodDescriptor); diff --git a/grpc/server/src/main/java/io/helidon/grpc/server/SSLContextBuilder.java b/grpc/server/src/main/java/io/helidon/grpc/server/SSLContextBuilder.java index d7795133289..2f3034d5df5 100644 --- a/grpc/server/src/main/java/io/helidon/grpc/server/SSLContextBuilder.java +++ b/grpc/server/src/main/java/io/helidon/grpc/server/SSLContextBuilder.java @@ -33,7 +33,6 @@ import javax.net.ssl.TrustManagerFactory; import io.helidon.common.Builder; -import io.helidon.common.CollectionsHelper; import io.helidon.common.pki.KeyConfig; import io.helidon.config.Config; @@ -186,7 +185,7 @@ private static TrustManagerFactory buildTmf(KeyConfig trustConfig) List certs; if (trustConfig == null) { - certs = CollectionsHelper.listOf(); + certs = List.of(); } else { certs = trustConfig.certs(); } diff --git a/grpc/server/src/test/java/io/helidon/grpc/server/BindableServiceImplTest.java b/grpc/server/src/test/java/io/helidon/grpc/server/BindableServiceImplTest.java index acc6a220955..6d422cbe7a0 100644 --- a/grpc/server/src/test/java/io/helidon/grpc/server/BindableServiceImplTest.java +++ b/grpc/server/src/test/java/io/helidon/grpc/server/BindableServiceImplTest.java @@ -16,7 +16,8 @@ package io.helidon.grpc.server; -import io.helidon.common.CollectionsHelper; +import java.util.List; + import io.helidon.grpc.core.InterceptorPriorities; import io.helidon.grpc.core.PriorityBag; @@ -55,7 +56,7 @@ public void shouldNotAddDuplicateInterceptors() { ServerInterceptor interceptorSix = spy(new InterceptorStub()); PriorityBag global = PriorityBag.withDefaultPriority(InterceptorPriorities.USER); - global.addAll(CollectionsHelper.listOf(interceptorOne, interceptorTwo, interceptorThree)); + global.addAll(List.of(interceptorOne, interceptorTwo, interceptorThree)); ServiceDescriptor descriptor = ServiceDescriptor.builder(new Service()) .intercept(interceptorTwo) diff --git a/health/health/src/test/java/io/helidon/health/HealthSupportTest.java b/health/health/src/test/java/io/helidon/health/HealthSupportTest.java index 9d8ff637f13..8cd95ec3d0f 100644 --- a/health/health/src/test/java/io/helidon/health/HealthSupportTest.java +++ b/health/health/src/test/java/io/helidon/health/HealthSupportTest.java @@ -25,7 +25,6 @@ import javax.json.JsonArray; import javax.json.JsonObject; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import org.eclipse.microprofile.health.HealthCheck; @@ -151,7 +150,7 @@ void noHealthChecksResultsInSuccess() { @Test void checksAreSortedByName() { - List checks = CollectionsHelper.listOf(new GoodHealthCheck("g"), + List checks = List.of(new GoodHealthCheck("g"), new GoodHealthCheck("a"), new GoodHealthCheck("v")); HealthSupport support = HealthSupport.builder() diff --git a/integrations/graal/native-image-extension/src/main/java/io/helidon/integrations/graal/nativeimage/extension/HelidonReflectionFeature.java b/integrations/graal/native-image-extension/src/main/java/io/helidon/integrations/graal/nativeimage/extension/HelidonReflectionFeature.java index ab7916b5efe..2085eec258b 100644 --- a/integrations/graal/native-image-extension/src/main/java/io/helidon/integrations/graal/nativeimage/extension/HelidonReflectionFeature.java +++ b/integrations/graal/native-image-extension/src/main/java/io/helidon/integrations/graal/nativeimage/extension/HelidonReflectionFeature.java @@ -27,6 +27,7 @@ import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.Set; import javax.json.Json; @@ -39,8 +40,6 @@ import org.graalvm.nativeimage.hosted.Feature; import org.graalvm.nativeimage.hosted.RuntimeReflection; -import static io.helidon.common.CollectionsHelper.mapOf; - /** * Feature to add reflection configuration to the image for Helidon, CDI and Jersey. */ @@ -298,7 +297,7 @@ private HelidonReflectionConfiguration loadConfiguration(BeforeAnalysisAccess ac try { Enumeration resources = cl.getResources("META-INF/native-image/helidon/reflection-config.json"); HelidonReflectionConfiguration config = new HelidonReflectionConfiguration(); - JsonReaderFactory readerFactory = Json.createReaderFactory(mapOf()); + JsonReaderFactory readerFactory = Json.createReaderFactory(Map.of()); while (resources.hasMoreElements()) { URL url = resources.nextElement(); JsonObject configurationJson = readerFactory.createReader(url.openStream()).readObject(); diff --git a/metrics/metrics/src/main/java/io/helidon/metrics/MetricsSupport.java b/metrics/metrics/src/main/java/io/helidon/metrics/MetricsSupport.java index 3d9397975b5..df462539c79 100644 --- a/metrics/metrics/src/main/java/io/helidon/metrics/MetricsSupport.java +++ b/metrics/metrics/src/main/java/io/helidon/metrics/MetricsSupport.java @@ -18,6 +18,7 @@ import java.util.Collections; import java.util.Comparator; +import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.function.Function; @@ -31,7 +32,6 @@ import javax.json.JsonObject; import javax.json.JsonObjectBuilder; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; import io.helidon.config.Config; @@ -316,7 +316,7 @@ public void configureEndpoint(Routing.Rules rules) { // register the metric registry and factory to be available to all rules.any(new MetricsContextHandler(app, rf)); - rules.anyOf(CollectionsHelper.listOf(Http.Method.GET, Http.Method.OPTIONS), + rules.anyOf(List.of(Http.Method.GET, Http.Method.OPTIONS), JsonSupport.create()); // routing to root of metrics diff --git a/metrics/metrics/src/test/java/io/helidon/metrics/MetricsSupportTest.java b/metrics/metrics/src/test/java/io/helidon/metrics/MetricsSupportTest.java index ae10f690c74..ad3693776e6 100644 --- a/metrics/metrics/src/test/java/io/helidon/metrics/MetricsSupportTest.java +++ b/metrics/metrics/src/test/java/io/helidon/metrics/MetricsSupportTest.java @@ -16,9 +16,10 @@ package io.helidon.metrics; +import java.util.Map; + import javax.json.JsonObject; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -91,7 +92,7 @@ void testJsonMetaMultiple() { @Test void testBaseMetricsDisabled() { Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf( + .sources(ConfigSources.create(Map.of( "base.enabled", "false"))) .build(); RegistryFactory myRF = RegistryFactory.create(config); diff --git a/metrics/metrics/src/test/java/io/helidon/metrics/RegistryFactoryTest.java b/metrics/metrics/src/test/java/io/helidon/metrics/RegistryFactoryTest.java index d43591e7172..6e23c408a47 100644 --- a/metrics/metrics/src/test/java/io/helidon/metrics/RegistryFactoryTest.java +++ b/metrics/metrics/src/test/java/io/helidon/metrics/RegistryFactoryTest.java @@ -16,7 +16,8 @@ package io.helidon.metrics; -import io.helidon.common.CollectionsHelper; +import java.util.Map; + import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -54,7 +55,7 @@ public class RegistryFactoryTest { static void createInstance() { unconfigured = RegistryFactory.create(); Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf( + .sources(ConfigSources.create(Map.of( "base." + METRIC_USED_HEAP + ".enabled", "false"))) .build(); diff --git a/metrics2/metrics2/src/main/java/io/helidon/metrics/MetricsSupport.java b/metrics2/metrics2/src/main/java/io/helidon/metrics/MetricsSupport.java index 71d19e8daa4..571bcb0249a 100644 --- a/metrics2/metrics2/src/main/java/io/helidon/metrics/MetricsSupport.java +++ b/metrics2/metrics2/src/main/java/io/helidon/metrics/MetricsSupport.java @@ -41,7 +41,6 @@ import javax.json.JsonObjectBuilder; import javax.json.JsonValue; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; import io.helidon.config.Config; @@ -363,7 +362,7 @@ public void configureEndpoint(Routing.Rules rules) { // register the metric registry and factory to be available to all rules.any(new MetricsContextHandler(app, rf)); - rules.anyOf(CollectionsHelper.listOf(Http.Method.GET, Http.Method.OPTIONS), + rules.anyOf(List.of(Http.Method.GET, Http.Method.OPTIONS), JsonSupport.create()); // routing to root of metrics diff --git a/metrics2/metrics2/src/test/java/io/helidon/metrics/MetricImplTest.java b/metrics2/metrics2/src/test/java/io/helidon/metrics/MetricImplTest.java index c020641114c..6b9404a78bd 100644 --- a/metrics2/metrics2/src/test/java/io/helidon/metrics/MetricImplTest.java +++ b/metrics2/metrics2/src/test/java/io/helidon/metrics/MetricImplTest.java @@ -24,8 +24,6 @@ import javax.json.JsonObject; import javax.json.JsonObjectBuilder; -import io.helidon.common.CollectionsHelper; - import org.eclipse.microprofile.metrics.Metadata; import org.eclipse.microprofile.metrics.MetricID; import org.eclipse.microprofile.metrics.MetricType; @@ -60,7 +58,7 @@ class MetricImplTest { + "]" + "}}"; - private static final List METRIC_IDS = CollectionsHelper.listOf( + private static final List METRIC_IDS = List.of( new MetricID("name1", new Tag("a", "b"), new Tag("c", "d")), new MetricID("name2", new Tag("e", "f"), new Tag("g", "h"))); diff --git a/metrics2/metrics2/src/test/java/io/helidon/metrics/MetricsSupportTest.java b/metrics2/metrics2/src/test/java/io/helidon/metrics/MetricsSupportTest.java index e3376e346ee..6d7c6da8bb8 100644 --- a/metrics2/metrics2/src/test/java/io/helidon/metrics/MetricsSupportTest.java +++ b/metrics2/metrics2/src/test/java/io/helidon/metrics/MetricsSupportTest.java @@ -17,6 +17,7 @@ package io.helidon.metrics; import java.util.Collections; +import java.util.Map; import javax.json.Json; import javax.json.JsonArray; @@ -24,7 +25,6 @@ import javax.json.JsonObject; import javax.json.JsonObjectBuilder; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -141,7 +141,7 @@ void testMergingJsonObjectBuilder() { @Test void testBaseMetricsDisabled() { Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf( + .sources(ConfigSources.create(Map.of( "base.enabled", "false"))) .build(); RegistryFactory myRF = RegistryFactory.create(config); diff --git a/metrics2/metrics2/src/test/java/io/helidon/metrics/RegistryFactoryTest.java b/metrics2/metrics2/src/test/java/io/helidon/metrics/RegistryFactoryTest.java index 7fd5c7ac724..012c217bc7d 100644 --- a/metrics2/metrics2/src/test/java/io/helidon/metrics/RegistryFactoryTest.java +++ b/metrics2/metrics2/src/test/java/io/helidon/metrics/RegistryFactoryTest.java @@ -16,7 +16,8 @@ package io.helidon.metrics; -import io.helidon.common.CollectionsHelper; +import java.util.Map; + import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -55,7 +56,7 @@ public class RegistryFactoryTest { static void createInstance() { unconfigured = RegistryFactory.create(); Config config = Config.builder() - .sources(ConfigSources.create(CollectionsHelper.mapOf( + .sources(ConfigSources.create(Map.of( "base." + METRIC_USED_HEAP.getName() + ".enabled", "false"))) .build(); diff --git a/microprofile/config/src/main/java/io/helidon/microprofile/config/ConfigCdiExtension.java b/microprofile/config/src/main/java/io/helidon/microprofile/config/ConfigCdiExtension.java index 6095afe0346..20d93dc168d 100644 --- a/microprofile/config/src/main/java/io/helidon/microprofile/config/ConfigCdiExtension.java +++ b/microprofile/config/src/main/java/io/helidon/microprofile/config/ConfigCdiExtension.java @@ -62,7 +62,6 @@ import javax.inject.Provider; import javax.inject.Qualifier; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigException; import io.helidon.config.MissingValueException; @@ -522,7 +521,7 @@ private static Object getParameterizedConfigValue(Config helidonConfig, throw e; } else { if (defaultValue.isEmpty()) { - return CollectionsHelper.listOf(); + return List.of(); } List result = new LinkedList<>(); @@ -585,7 +584,7 @@ public Class getBeanClass() { @Override public Set getInjectionPoints() { - return CollectionsHelper.setOf(); + return Set.of(); } @Override @@ -600,12 +599,12 @@ public void destroy(Object instance, CreationalContext creationalContext @Override public Set getTypes() { - return CollectionsHelper.setOf(type); + return Set.of(type); } @Override public Set getQualifiers() { - return CollectionsHelper.setOf(qualifier, QUALIFIER); + return Set.of(qualifier, QUALIFIER); } @Override @@ -620,7 +619,7 @@ public String getName() { @Override public Set> getStereotypes() { - return CollectionsHelper.setOf(); + return Set.of(); } @Override diff --git a/microprofile/grpc/client/src/main/java/io/helidon/microprofile/grpc/client/GrpcClientCdiExtension.java b/microprofile/grpc/client/src/main/java/io/helidon/microprofile/grpc/client/GrpcClientCdiExtension.java index c6b0748ba42..e7df4ef3819 100644 --- a/microprofile/grpc/client/src/main/java/io/helidon/microprofile/grpc/client/GrpcClientCdiExtension.java +++ b/microprofile/grpc/client/src/main/java/io/helidon/microprofile/grpc/client/GrpcClientCdiExtension.java @@ -31,7 +31,6 @@ import javax.enterprise.inject.spi.ProcessInjectionPoint; import javax.enterprise.inject.spi.ProducerFactory; -import io.helidon.common.CollectionsHelper; import io.helidon.microprofile.grpc.core.InProcessGrpcChannel; /** @@ -109,7 +108,7 @@ private void addProducerBean(AfterBeanDiscovery event, BeanAttributes producerAttributes = beanManager.createBeanAttributes(producerMethod); ProducerFactory factory = beanManager.getProducerFactory(producerMethod, null); - Set types = CollectionsHelper.setOf(Object.class, type); + Set types = Set.of(Object.class, type); BeanAttributes beanAttributes = DelegatingBeanAttributes.create(producerAttributes, types); event.addBean(beanManager.createBean(beanAttributes, GrpcProxyProducer.class, factory)); } diff --git a/microprofile/grpc/core/src/main/java/io/helidon/microprofile/grpc/core/AnnotatedMethod.java b/microprofile/grpc/core/src/main/java/io/helidon/microprofile/grpc/core/AnnotatedMethod.java index ab2c1fe80d1..b3b1965592a 100644 --- a/microprofile/grpc/core/src/main/java/io/helidon/microprofile/grpc/core/AnnotatedMethod.java +++ b/microprofile/grpc/core/src/main/java/io/helidon/microprofile/grpc/core/AnnotatedMethod.java @@ -29,8 +29,6 @@ import java.util.Set; import java.util.stream.Stream; -import io.helidon.common.CollectionsHelper; - /** * A model of an annotated gRPC method. */ @@ -40,13 +38,13 @@ public class AnnotatedMethod implements AnnotatedElement { * The set of meta-annotations that are used to identify an annotated gRPC method. */ private static final Set> METHOD_META_ANNOTATIONS - = CollectionsHelper.setOf(RpcMethod.class); + = Set.of(RpcMethod.class); /** * The set of annotations that are used to identify an annotated gRPC method. */ private static final Set> METHOD_ANNOTATIONS - = CollectionsHelper.setOf(RpcMethod.class, + = Set.of(RpcMethod.class, Bidirectional.class, ClientStreaming.class, ServerStreaming.class, @@ -55,7 +53,7 @@ public class AnnotatedMethod implements AnnotatedElement { /** * The set of method parameter annotations that are used to identify an annotated gRPC method. */ - private static final Set> PARAMETER_ANNOTATIONS = CollectionsHelper.setOf(); + private static final Set> PARAMETER_ANNOTATIONS = Set.of(); /** * The declared method this {@link AnnotatedMethod} represents. diff --git a/microprofile/grpc/core/src/test/java/io/helidon/microprofile/grpc/core/ServerStreamingMethodHandlerSupplierTest.java b/microprofile/grpc/core/src/test/java/io/helidon/microprofile/grpc/core/ServerStreamingMethodHandlerSupplierTest.java index a109c019db1..61272479999 100644 --- a/microprofile/grpc/core/src/test/java/io/helidon/microprofile/grpc/core/ServerStreamingMethodHandlerSupplierTest.java +++ b/microprofile/grpc/core/src/test/java/io/helidon/microprofile/grpc/core/ServerStreamingMethodHandlerSupplierTest.java @@ -20,7 +20,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import io.helidon.common.CollectionsHelper; import io.helidon.grpc.core.MethodHandler; import com.google.protobuf.Empty; @@ -163,7 +162,7 @@ public void shouldSupplyHandlerForMethodWithNoRequestForClientCall() { public void shouldSupplyHandlerForMethodWithStreamResponse() { ServerStreamingMethodHandlerSupplier supplier = new ServerStreamingMethodHandlerSupplier(); AnnotatedMethod method = getMethod("streamResponse", String.class); - Stream stream = CollectionsHelper.listOf(19L, 20L).stream(); + Stream stream = List.of(19L, 20L).stream(); Service service = mock(Service.class); when(service.streamResponse(anyString())).thenReturn(stream); @@ -193,7 +192,7 @@ public void shouldSupplyHandlerForMethodWithStreamResponse() { public void shouldSupplyHandlerForMethodWithStreamResponseForClientCall() { ServerStreamingMethodHandlerSupplier supplier = new ServerStreamingMethodHandlerSupplier(); AnnotatedMethod method = getMethod("streamResponse", String.class); - Stream stream = CollectionsHelper.listOf(19L, 20L).stream(); + Stream stream = List.of(19L, 20L).stream(); Service service = mock(Service.class); when(service.streamResponse(anyString())).thenReturn(stream); @@ -230,7 +229,7 @@ public void shouldSupplyHandlerForMethodWithStreamResponseForClientCall() { public void shouldSupplyHandlerForMethodWithStreamResponseWithNoRequest() { ServerStreamingMethodHandlerSupplier supplier = new ServerStreamingMethodHandlerSupplier(); AnnotatedMethod method = getMethod("streamResponseNoRequest"); - Stream stream = CollectionsHelper.listOf(19L, 20L).stream(); + Stream stream = List.of(19L, 20L).stream(); Service service = mock(Service.class); when(service.streamResponseNoRequest()).thenReturn(stream); @@ -267,7 +266,7 @@ public void shouldSupplyHandlerForMethodWithStreamResponseWithNoRequest() { public void shouldSupplyHandlerForMethodWithStreamResponseWithNoRequestForClientCall() { ServerStreamingMethodHandlerSupplier supplier = new ServerStreamingMethodHandlerSupplier(); AnnotatedMethod method = getMethod("streamResponseNoRequest"); - Stream stream = CollectionsHelper.listOf(19L, 20L).stream(); + Stream stream = List.of(19L, 20L).stream(); Service service = mock(Service.class); when(service.streamResponseNoRequest()).thenReturn(stream); diff --git a/microprofile/jwt-auth/jwt-auth-cdi/src/main/java/io/helidon/microprofile/jwt/auth/cdi/ClaimProducer.java b/microprofile/jwt-auth/jwt-auth-cdi/src/main/java/io/helidon/microprofile/jwt/auth/cdi/ClaimProducer.java index 089b4563aa8..330d9fc08f2 100644 --- a/microprofile/jwt-auth/jwt-auth-cdi/src/main/java/io/helidon/microprofile/jwt/auth/cdi/ClaimProducer.java +++ b/microprofile/jwt-auth/jwt-auth-cdi/src/main/java/io/helidon/microprofile/jwt/auth/cdi/ClaimProducer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,6 @@ import javax.enterprise.inject.spi.InjectionPoint; import javax.inject.Provider; -import io.helidon.common.CollectionsHelper; import io.helidon.microprofile.jwt.auth.JsonWebTokenImpl; import org.eclipse.microprofile.jwt.Claim; @@ -133,7 +132,7 @@ public Class getBeanClass() { @Override public Set getInjectionPoints() { - return CollectionsHelper.setOf(); + return Set.of(); } @Override @@ -148,12 +147,12 @@ public void destroy(Object instance, CreationalContext creationalContext @Override public Set getTypes() { - return CollectionsHelper.setOf(type); + return Set.of(type); } @Override public Set getQualifiers() { - return CollectionsHelper.setOf(qualifier, QUALIFIER); + return Set.of(qualifier, QUALIFIER); } @Override @@ -168,7 +167,7 @@ public String getName() { @Override public Set> getStereotypes() { - return CollectionsHelper.setOf(); + return Set.of(); } @Override diff --git a/microprofile/jwt-auth/jwt-auth-cdi/src/main/java/module-info.java b/microprofile/jwt-auth/jwt-auth-cdi/src/main/java/module-info.java index 5f2b04ec5e6..b6d6a996845 100644 --- a/microprofile/jwt-auth/jwt-auth-cdi/src/main/java/module-info.java +++ b/microprofile/jwt-auth/jwt-auth-cdi/src/main/java/module-info.java @@ -25,6 +25,7 @@ requires java.ws.rs; requires transitive io.helidon.microprofile.jwt.auth; + requires microprofile.jwt.auth.api; exports io.helidon.microprofile.jwt.auth.cdi; diff --git a/microprofile/jwt-auth/jwt-auth-cdi/src/test/java/io/helidon/microprofile/jwt/auth/cdi/JwtAuthTest.java b/microprofile/jwt-auth/jwt-auth-cdi/src/test/java/io/helidon/microprofile/jwt/auth/cdi/JwtAuthTest.java index 248bc77183c..f5df6cf5ec9 100644 --- a/microprofile/jwt-auth/jwt-auth-cdi/src/test/java/io/helidon/microprofile/jwt/auth/cdi/JwtAuthTest.java +++ b/microprofile/jwt-auth/jwt-auth-cdi/src/test/java/io/helidon/microprofile/jwt/auth/cdi/JwtAuthTest.java @@ -33,7 +33,6 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.SecurityContext; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.microprofile.jwt.auth.JwtAuthProvider; import io.helidon.microprofile.server.Server; @@ -159,7 +158,7 @@ void testPublicEndpoint() { public static class MyApp extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(MyResource.class, ResourceWithPublicMethod.class); + return Set.of(MyResource.class, ResourceWithPublicMethod.class); } } diff --git a/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java b/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java index 27b3feda6de..494409aa94d 100644 --- a/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java +++ b/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java @@ -36,6 +36,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -45,7 +46,6 @@ import javax.json.JsonObject; import javax.json.JsonReaderFactory; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.common.InputStreamHelper; import io.helidon.common.configurable.Resource; @@ -163,7 +163,7 @@ public static JwtAuthProvider create(Config config) { @Override public Collection> supportedAnnotations() { - return CollectionsHelper.setOf(LoginConfig.class); + return Set.of(LoginConfig.class); } @Override diff --git a/microprofile/jwt-auth/jwt-auth/src/test/java/io/helidon/microprofile/jwt/auth/JwtAuthProviderTest.java b/microprofile/jwt-auth/jwt-auth/src/test/java/io/helidon/microprofile/jwt/auth/JwtAuthProviderTest.java index 8cfbb4bab15..704254a4061 100644 --- a/microprofile/jwt-auth/jwt-auth/src/test/java/io/helidon/microprofile/jwt/auth/JwtAuthProviderTest.java +++ b/microprofile/jwt-auth/jwt-auth/src/test/java/io/helidon/microprofile/jwt/auth/JwtAuthProviderTest.java @@ -24,8 +24,8 @@ import java.util.List; import java.util.Locale; import java.util.Optional; +import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.Resource; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; @@ -52,7 +52,6 @@ import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import static io.helidon.common.CollectionsHelper.listOf; import static org.hamcrest.CoreMatchers.hasItems; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; @@ -97,7 +96,7 @@ public void testWrongToken() { when(ec.securityLevels()).thenReturn(securityLevels); when(appSecurityLevel.filterAnnotations(LoginConfig.class, EndpointConfig.AnnotationScope.CLASS)) - .thenReturn(listOf(new LoginConfig() { + .thenReturn(List.of(new LoginConfig() { @Override public Class annotationType() { return LoginConfig.class; @@ -143,7 +142,7 @@ public void testEcBothWays() { .addAttribute("given_name", givenName) .addAttribute("full_name", fullName) .addAttribute("locale", locale) - .addAttribute("roles", CollectionsHelper.setOf("role1", "role2")) + .addAttribute("roles", Set.of("role1", "role2")) .build(); Subject subject = Subject.builder() @@ -195,7 +194,7 @@ public void testEcBothWays() { assertThat(jwt.givenName(), is(Optional.of(givenName))); assertThat(jwt.fullName(), is(Optional.of(fullName))); assertThat(jwt.locale(), is(Optional.of(locale))); - assertThat(jwt.audience(), is(Optional.of(listOf("audience.application.id")))); + assertThat(jwt.audience(), is(Optional.of(List.of("audience.application.id")))); assertThat(jwt.issuer(), is(Optional.of("jwt.example.com"))); assertThat(jwt.algorithm(), is(Optional.of(JwkEC.ALG_ES256))); Instant instant = jwt.issueTime().get(); @@ -271,7 +270,7 @@ public void testOctBothWays() { // stored as "name" attribute on principal, full name is stored as "name" in JWT assertThat(jwt.fullName(), is(Optional.empty())); assertThat(jwt.locale(), is(Optional.empty())); - assertThat(jwt.audience(), is(Optional.of(listOf("audience.application.id")))); + assertThat(jwt.audience(), is(Optional.of(List.of("audience.application.id")))); assertThat(jwt.issuer(), is(Optional.of("jwt.example.com"))); assertThat(jwt.algorithm(), is(Optional.of(JwkOctet.ALG_HS256))); Instant instant = jwt.issueTime().get(); @@ -358,7 +357,7 @@ public void testRsaBothWays() { assertThat(jwt.givenName(), is(Optional.of(givenName))); assertThat(jwt.fullName(), is(Optional.of(fullName))); assertThat(jwt.locale(), is(Optional.of(locale))); - assertThat(jwt.audience(), is(Optional.of(listOf("audience.application.id")))); + assertThat(jwt.audience(), is(Optional.of(List.of("audience.application.id")))); assertThat(jwt.issuer(), is(Optional.of("jwt.example.com"))); assertThat(jwt.algorithm(), is(Optional.of(JwkRSA.ALG_RS256))); @@ -409,7 +408,7 @@ private ProviderRequest mockRequest(String signedToken) { when(ep.securityLevels()).thenReturn(securityLevels); when(appSecurityLevel.filterAnnotations(LoginConfig.class, EndpointConfig.AnnotationScope.CLASS)) - .thenReturn(listOf(lc)); + .thenReturn(List.of(lc)); when(atnRequest.endpointConfig()).thenReturn(ep); return atnRequest; diff --git a/microprofile/metrics/src/main/java/io/helidon/microprofile/metrics/MetricsMpService.java b/microprofile/metrics/src/main/java/io/helidon/microprofile/metrics/MetricsMpService.java index 3ce17a33317..86dab77b1ac 100644 --- a/microprofile/metrics/src/main/java/io/helidon/microprofile/metrics/MetricsMpService.java +++ b/microprofile/metrics/src/main/java/io/helidon/microprofile/metrics/MetricsMpService.java @@ -17,9 +17,9 @@ package io.helidon.microprofile.metrics; import java.util.HashSet; +import java.util.List; import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.metrics.MetricsSupport; import io.helidon.metrics.RegistryFactory; @@ -55,7 +55,7 @@ public void configure(MpServiceContext serviceContext) { // now we may have additional sockets we want to add vendor metrics to metricsConfig.get("vendor-metrics-routings") .asList(String.class) - .orElseGet(CollectionsHelper::listOf) + .orElseGet(List::of) .forEach(routeName -> { if (!vendorMetricsAdded.contains(routeName)) { metricsSupport.configureVendorMetrics(routeName, serviceContext.serverNamedRoutingBuilder(routeName)); diff --git a/microprofile/metrics2/src/main/java/io/helidon/microprofile/metrics/MetricsMpService.java b/microprofile/metrics2/src/main/java/io/helidon/microprofile/metrics/MetricsMpService.java index 736a1c0f22e..cb234193a6c 100644 --- a/microprofile/metrics2/src/main/java/io/helidon/microprofile/metrics/MetricsMpService.java +++ b/microprofile/metrics2/src/main/java/io/helidon/microprofile/metrics/MetricsMpService.java @@ -17,9 +17,9 @@ package io.helidon.microprofile.metrics; import java.util.HashSet; +import java.util.List; import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigValue; import io.helidon.metrics.MetricsSupport; @@ -66,7 +66,7 @@ public void configure(MpServiceContext serviceContext) { // now we may have additional sockets we want to add vendor metrics to metricsConfig.get("vendor-metrics-routings") .asList(String.class) - .orElseGet(CollectionsHelper::listOf) + .orElseGet(List::of) .forEach(routeName -> { if (!vendorMetricsAdded.contains(routeName)) { metricsSupport.configureVendorMetrics(routeName, serviceContext.serverNamedRoutingBuilder(routeName)); diff --git a/microprofile/openapi/src/test/java/io/helidon/microprofile/openapi/TestApp.java b/microprofile/openapi/src/test/java/io/helidon/microprofile/openapi/TestApp.java index ea007363f95..341588d4213 100644 --- a/microprofile/openapi/src/test/java/io/helidon/microprofile/openapi/TestApp.java +++ b/microprofile/openapi/src/test/java/io/helidon/microprofile/openapi/TestApp.java @@ -27,8 +27,6 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; - import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.media.Content; import org.eclipse.microprofile.openapi.annotations.parameters.RequestBody; @@ -43,7 +41,7 @@ public class TestApp extends Application { static final String GO_SUMMARY = "Returns a fixed string"; @Override public Set> getClasses() { - return CollectionsHelper.setOf(TestResources.class); + return Set.of(TestResources.class); } @Path("/testapp") diff --git a/microprofile/server/src/main/java/io/helidon/microprofile/server/Server.java b/microprofile/server/src/main/java/io/helidon/microprofile/server/Server.java index 67edc47230f..8f825ac1c31 100644 --- a/microprofile/server/src/main/java/io/helidon/microprofile/server/Server.java +++ b/microprofile/server/src/main/java/io/helidon/microprofile/server/Server.java @@ -37,7 +37,6 @@ import javax.ws.rs.Path; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.ServerThreadPoolSupplier; import io.helidon.common.context.Context; import io.helidon.common.context.Contexts; @@ -329,7 +328,7 @@ private SeContainer createContainer(ClassLoader classLoader) { .get("cdi") .detach() .asMap() - .orElse(CollectionsHelper.mapOf())); + .orElse(Map.of())); initializer.setProperties(props); // add resource classes explicitly configured without CDI annotations diff --git a/microprofile/server/src/test/java/io/helidon/microprofile/server/ServerImplTest.java b/microprofile/server/src/test/java/io/helidon/microprofile/server/ServerImplTest.java index 6aeefc63132..19e3db68ba7 100644 --- a/microprofile/server/src/test/java/io/helidon/microprofile/server/ServerImplTest.java +++ b/microprofile/server/src/test/java/io/helidon/microprofile/server/ServerImplTest.java @@ -26,7 +26,6 @@ import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.ThreadPoolSupplier; import org.junit.jupiter.api.AfterAll; @@ -110,14 +109,14 @@ void testTwoApps() { private final class TestApplication1 extends Application { @Override public Set getSingletons() { - return CollectionsHelper.setOf(new TestResource1()); + return Set.of(new TestResource1()); } } private final class TestApplication2 extends Application { @Override public Set getSingletons() { - return CollectionsHelper.setOf(new TestResource2()); + return Set.of(new TestResource2()); } } diff --git a/microprofile/server/src/test/java/io/helidon/microprofile/server/ServerSseTest.java b/microprofile/server/src/test/java/io/helidon/microprofile/server/ServerSseTest.java index 5251ebf9554..e26740e13b7 100644 --- a/microprofile/server/src/test/java/io/helidon/microprofile/server/ServerSseTest.java +++ b/microprofile/server/src/test/java/io/helidon/microprofile/server/ServerSseTest.java @@ -33,8 +33,6 @@ import javax.ws.rs.sse.SseEventSink; import javax.ws.rs.sse.SseEventSource; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -91,7 +89,7 @@ void testSse() throws Exception { private final class TestApplication1 extends Application { @Override public Set getSingletons() { - return CollectionsHelper.setOf(new TestResource1()); + return Set.of(new TestResource1()); } } diff --git a/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java b/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java index ae0b8c91f9e..196728d5c7f 100644 --- a/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java +++ b/microprofile/tracing/src/main/java/io/helidon/microprofile/tracing/MpTracingInterceptor.java @@ -18,6 +18,7 @@ import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Member; import java.lang.reflect.Method; +import java.util.Map; import java.util.Optional; import javax.annotation.Priority; @@ -38,8 +39,6 @@ import io.opentracing.util.GlobalTracer; import org.eclipse.microprofile.opentracing.Traced; -import static io.helidon.common.CollectionsHelper.mapOf; - /** * Interceptor for {@link org.eclipse.microprofile.opentracing.Traced} annotation. */ @@ -91,8 +90,8 @@ private Object trace(InvocationContext con return context.proceed(); } catch (Exception e) { span.setTag("error", true); - span.log(mapOf("error.object", e.getClass().getName(), - "event", "error")); + span.log(Map.of("error.object", e.getClass().getName(), + "event", "error")); throw e; } finally { span.finish(); diff --git a/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java b/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java index e85562cea75..d8b6a18ad70 100644 --- a/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java +++ b/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TestTracerProvider.java @@ -19,7 +19,6 @@ import java.util.List; import java.util.Map; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.tracing.Tag; import io.helidon.tracing.TracerBuilder; @@ -339,7 +338,7 @@ static class TestSpanContext implements SpanContext { @Override public Iterable> baggageItems() { - Map map = CollectionsHelper.mapOf(); + Map map = Map.of(); return map.entrySet(); } diff --git a/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TracingTest.java b/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TracingTest.java index ef773f657cd..a35b526fc0c 100644 --- a/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TracingTest.java +++ b/microprofile/tracing/src/test/java/io/helidon/microprofile/tracing/TracingTest.java @@ -30,7 +30,6 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.microprofile.server.Server; import org.junit.jupiter.api.AfterAll; @@ -113,7 +112,7 @@ private static void addHeaders(Response.ResponseBuilder builder, HttpHeaders hea public static class MyApp extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf( + return Set.of( HelloWorld.class, MyResource.class); } diff --git a/security/abac/policy-el/src/test/java/io/helidon/security/abac/policy/el/AttributeResolverTest.java b/security/abac/policy-el/src/test/java/io/helidon/security/abac/policy/el/AttributeResolverTest.java index cc403aa8c54..91ce86c68fc 100644 --- a/security/abac/policy-el/src/test/java/io/helidon/security/abac/policy/el/AttributeResolverTest.java +++ b/security/abac/policy-el/src/test/java/io/helidon/security/abac/policy/el/AttributeResolverTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import javax.el.ELContext; import javax.el.PropertyNotWritableException; -import io.helidon.common.CollectionsHelper; import io.helidon.security.util.AbacSupport; import org.junit.jupiter.api.Test; @@ -46,7 +45,7 @@ void testGetType() { ELContext context = Mockito.mock(ELContext.class); - Class type = ar.getType(context, new MyResource(CollectionsHelper.mapOf("name", new HashMap<>())), "name"); + Class type = ar.getType(context, new MyResource(Map.of("name", new HashMap<>())), "name"); assertThat(type, notNullValue()); assertThat(type, sameInstance(HashMap.class)); @@ -57,7 +56,7 @@ void testSetFails() { AttributeResolver ar = new AttributeResolver(); ELContext context = Mockito.mock(ELContext.class); try { - ar.setValue(context, new MyResource(CollectionsHelper.mapOf("name", "jarda")), "name", "surname"); + ar.setValue(context, new MyResource(Map.of("name", "jarda")), "name", "surname"); fail("The resolver should be read-only"); } catch (PropertyNotWritableException e) { // this is expected @@ -70,7 +69,7 @@ public void testResolveAttribute() { ELContext context = Mockito.mock(ELContext.class); - Object name = ar.getValue(context, new MyResource(CollectionsHelper.mapOf("name", "jarda")), "name"); + Object name = ar.getValue(context, new MyResource(Map.of("name", "jarda")), "name"); assertThat(name, notNullValue()); assertThat(name, is("jarda")); @@ -93,7 +92,7 @@ public void testMissingAttribute() { ELContext context = Mockito.mock(ELContext.class); - Object name = ar.getValue(context, new MyResource(CollectionsHelper.mapOf("nickname", "jarda")), "name"); + Object name = ar.getValue(context, new MyResource(Map.of("nickname", "jarda")), "name"); assertThat(name, nullValue()); } diff --git a/security/abac/policy/src/main/java/io/helidon/security/abac/policy/PolicyValidator.java b/security/abac/policy/src/main/java/io/helidon/security/abac/policy/PolicyValidator.java index d50c904fa54..ef90e93de7a 100644 --- a/security/abac/policy/src/main/java/io/helidon/security/abac/policy/PolicyValidator.java +++ b/security/abac/policy/src/main/java/io/helidon/security/abac/policy/PolicyValidator.java @@ -29,10 +29,10 @@ import java.util.LinkedList; import java.util.List; import java.util.ServiceLoader; +import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.config.Config; import io.helidon.security.EndpointConfig; @@ -106,7 +106,7 @@ public static PolicyValidator create(Config config) { @Override public Collection> supportedAnnotations() { - return CollectionsHelper.setOf(PolicyStatement.class); + return Set.of(PolicyStatement.class); } @Override diff --git a/security/abac/role/src/main/java/io/helidon/security/abac/role/RoleValidator.java b/security/abac/role/src/main/java/io/helidon/security/abac/role/RoleValidator.java index 0d4a13bf803..18cc2fe0d7e 100644 --- a/security/abac/role/src/main/java/io/helidon/security/abac/role/RoleValidator.java +++ b/security/abac/role/src/main/java/io/helidon/security/abac/role/RoleValidator.java @@ -39,7 +39,6 @@ import javax.annotation.security.PermitAll; import javax.annotation.security.RolesAllowed; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.config.Config; import io.helidon.security.EndpointConfig; @@ -157,7 +156,7 @@ private void validate(Set rolesAllowed, Errors.Collector collector, Opti Set roleGrants = subject .map(sub -> sub.grants(Role.class)) - .orElse(CollectionsHelper.listOf()) + .orElse(List.of()) .stream() .map(Role::getName) .collect(Collectors.toSet()); @@ -178,7 +177,7 @@ private void validate(Set rolesAllowed, Errors.Collector collector, Opti @Override public Collection> supportedAnnotations() { //Order of the annotations matters because of annotation handling. - return CollectionsHelper.listOf(RolesAllowed.class, Roles.class, RolesContainer.class, PermitAll.class, DenyAll.class); + return List.of(RolesAllowed.class, Roles.class, RolesContainer.class, PermitAll.class, DenyAll.class); } /** diff --git a/security/abac/role/src/test/java/io/helidon/security/abac/role/RoleValidatorTest.java b/security/abac/role/src/test/java/io/helidon/security/abac/role/RoleValidatorTest.java index 5b2365d8891..a82caf000ed 100644 --- a/security/abac/role/src/test/java/io/helidon/security/abac/role/RoleValidatorTest.java +++ b/security/abac/role/src/test/java/io/helidon/security/abac/role/RoleValidatorTest.java @@ -24,7 +24,6 @@ import javax.annotation.security.PermitAll; import javax.annotation.security.RolesAllowed; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.config.Config; import io.helidon.security.EndpointConfig; @@ -71,7 +70,7 @@ void testRolesAllowedPermit() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(RolesAllowed.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(annot)); + .thenReturn(List.of(annot)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -103,7 +102,7 @@ void testRolesAllowedDeny() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(RolesAllowed.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(annot)); + .thenReturn(List.of(annot)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -138,7 +137,7 @@ void testUserRoles() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(RoleValidator.Roles.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(annot)); + .thenReturn(List.of(annot)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -171,7 +170,7 @@ void testUserRolesDeny() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(RoleValidator.Roles.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(annot)); + .thenReturn(List.of(annot)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -206,7 +205,7 @@ void testServiceRoles() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(RoleValidator.Roles.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(annot)); + .thenReturn(List.of(annot)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -242,7 +241,7 @@ void testServiceRolesDeny() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(RoleValidator.Roles.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(annot)); + .thenReturn(List.of(annot)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -277,7 +276,7 @@ void testDenyAll() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(DenyAll.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(annot)); + .thenReturn(List.of(annot)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -309,7 +308,7 @@ void testPermitAll() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(PermitAll.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(annot)); + .thenReturn(List.of(annot)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -340,9 +339,9 @@ void testDenyAllAndPermitAll() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(DenyAll.class, EndpointConfig.AnnotationScope.CLASS)) - .thenReturn(CollectionsHelper.listOf(denyAll)); + .thenReturn(List.of(denyAll)); when(classSecurityLevel.filterAnnotations(PermitAll.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(permitAll)); + .thenReturn(List.of(permitAll)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -375,9 +374,9 @@ void testDenyAllAndRoles() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(DenyAll.class, EndpointConfig.AnnotationScope.CLASS)) - .thenReturn(CollectionsHelper.listOf(denyAll)); + .thenReturn(List.of(denyAll)); when(classSecurityLevel.filterAnnotations(RolesAllowed.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(rolesAllowed)); + .thenReturn(List.of(rolesAllowed)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -411,11 +410,11 @@ void testPermitAllAndRolesAndDenyAll() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(PermitAll.class, EndpointConfig.AnnotationScope.CLASS)) - .thenReturn(CollectionsHelper.listOf(permitAll)); + .thenReturn(List.of(permitAll)); when(classSecurityLevel.filterAnnotations(DenyAll.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(denyAll)); + .thenReturn(List.of(denyAll)); when(classSecurityLevel.filterAnnotations(RolesAllowed.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(rolesAllowed)); + .thenReturn(List.of(rolesAllowed)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); @@ -451,11 +450,11 @@ void testAllAccessAnnotationsOnTheSameLevel() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(PermitAll.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(permitAll)); + .thenReturn(List.of(permitAll)); when(classSecurityLevel.filterAnnotations(DenyAll.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(denyAll)); + .thenReturn(List.of(denyAll)); when(classSecurityLevel.filterAnnotations(RolesAllowed.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(rolesAllowed)); + .thenReturn(List.of(rolesAllowed)); RoleValidator.RoleConfig rConfig = validator.fromAnnotations(ep); diff --git a/security/abac/scope/src/main/java/io/helidon/security/abac/scope/ScopeValidator.java b/security/abac/scope/src/main/java/io/helidon/security/abac/scope/ScopeValidator.java index 9bf51b2a4ce..f9db90c5fd2 100644 --- a/security/abac/scope/src/main/java/io/helidon/security/abac/scope/ScopeValidator.java +++ b/security/abac/scope/src/main/java/io/helidon/security/abac/scope/ScopeValidator.java @@ -32,7 +32,6 @@ import java.util.List; import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.config.Config; import io.helidon.security.EndpointConfig; @@ -92,7 +91,7 @@ public Class configClass() { @Override public Collection> supportedAnnotations() { - return CollectionsHelper.setOf(Scope.class, Scopes.class); + return Set.of(Scope.class, Scopes.class); } @Override @@ -264,7 +263,7 @@ private ScopesConfig(List scopes) { * @return configuration based on this list of scopes */ public static ScopesConfig create(String... scopes) { - return new ScopesConfig(CollectionsHelper.listOf(scopes)); + return new ScopesConfig(List.of(scopes)); } /** @@ -289,7 +288,7 @@ public static ScopesConfig create(List scopes) { * @return configuration based on the config */ public static ScopesConfig create(Config config) { - return new ScopesConfig(config.asList(String.class).orElse(CollectionsHelper.listOf())); + return new ScopesConfig(config.asList(String.class).orElse(List.of())); } /** diff --git a/security/abac/scope/src/test/java/io/helidon/security/abac/scope/ScopeValidatorTest.java b/security/abac/scope/src/test/java/io/helidon/security/abac/scope/ScopeValidatorTest.java index 0f319a90327..4f10be2c0be 100644 --- a/security/abac/scope/src/test/java/io/helidon/security/abac/scope/ScopeValidatorTest.java +++ b/security/abac/scope/src/test/java/io/helidon/security/abac/scope/ScopeValidatorTest.java @@ -20,7 +20,6 @@ import java.util.List; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.security.EndpointConfig; import io.helidon.security.Grant; @@ -62,7 +61,7 @@ public void testScopesAndPermit() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(ScopeValidator.Scopes.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(scopes)); + .thenReturn(List.of(scopes)); ScopeValidator.ScopesConfig sConfig = validator.fromAnnotations(ep); @@ -108,7 +107,7 @@ public void testScopesAndDeny() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(ScopeValidator.Scopes.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(scopes)); + .thenReturn(List.of(scopes)); ScopeValidator.ScopesConfig sConfig = validator.fromAnnotations(ep); @@ -155,7 +154,7 @@ public void testScopesOrPermit() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(ScopeValidator.Scopes.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(scopes)); + .thenReturn(List.of(scopes)); ScopeValidator.ScopesConfig sConfig = validator.fromAnnotations(ep); @@ -200,7 +199,7 @@ public void testScopesOrDeny() { EndpointConfig ep = mock(EndpointConfig.class); when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(ScopeValidator.Scopes.class, EndpointConfig.AnnotationScope.METHOD)) - .thenReturn(CollectionsHelper.listOf(scopes)); + .thenReturn(List.of(scopes)); ScopeValidator.ScopesConfig sConfig = validator.fromAnnotations(ep); diff --git a/security/abac/time/src/main/java/io/helidon/security/abac/time/TimeValidator.java b/security/abac/time/src/main/java/io/helidon/security/abac/time/TimeValidator.java index 2470d31f513..30f7612f4f7 100644 --- a/security/abac/time/src/main/java/io/helidon/security/abac/time/TimeValidator.java +++ b/security/abac/time/src/main/java/io/helidon/security/abac/time/TimeValidator.java @@ -35,7 +35,6 @@ import java.util.List; import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.config.Config; import io.helidon.security.EndpointConfig; @@ -123,7 +122,7 @@ public void validate(TimeConfig config, Errors.Collector collector, ProviderRequ @Override public Collection> supportedAnnotations() { - return CollectionsHelper.setOf(TimesOfDay.class, TimeOfDay.class, DaysOfWeek.class); + return Set.of(TimesOfDay.class, TimeOfDay.class, DaysOfWeek.class); } /** diff --git a/security/abac/time/src/test/java/io/helidon/security/abac/time/TimeValidatorTest.java b/security/abac/time/src/test/java/io/helidon/security/abac/time/TimeValidatorTest.java index 011cd68cb2c..e094bb02559 100644 --- a/security/abac/time/src/test/java/io/helidon/security/abac/time/TimeValidatorTest.java +++ b/security/abac/time/src/test/java/io/helidon/security/abac/time/TimeValidatorTest.java @@ -23,7 +23,6 @@ import java.util.LinkedList; import java.util.List; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.security.EndpointConfig; import io.helidon.security.ProviderRequest; @@ -69,7 +68,7 @@ public static void initClass() { when(ep.securityLevels()).thenReturn(securityLevels); when(classSecurityLevel.filterAnnotations(TimeValidator.TimeOfDay.class, EndpointConfig.AnnotationScope.CLASS)) - .thenReturn(CollectionsHelper.listOf(tod, tod2)); + .thenReturn(List.of(tod, tod2)); TimeValidator.DaysOfWeek dow = mock(TimeValidator.DaysOfWeek.class); when(dow.value()).thenReturn(new DayOfWeek[] { @@ -81,7 +80,7 @@ public static void initClass() { }); annotations.add(dow); when(classSecurityLevel.filterAnnotations(TimeValidator.DaysOfWeek.class, EndpointConfig.AnnotationScope.CLASS)) - .thenReturn(CollectionsHelper.listOf(dow)); + .thenReturn(List.of(dow)); timeConfig = validator.fromAnnotations(ep); diff --git a/security/integration/common/src/main/java/io/helidon/security/integration/common/CommonTracing.java b/security/integration/common/src/main/java/io/helidon/security/integration/common/CommonTracing.java index 7e232eeec5f..31d112845f9 100644 --- a/security/integration/common/src/main/java/io/helidon/security/integration/common/CommonTracing.java +++ b/security/integration/common/src/main/java/io/helidon/security/integration/common/CommonTracing.java @@ -15,9 +15,9 @@ */ package io.helidon.security.integration.common; +import java.util.Map; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.security.SecurityResponse; import io.helidon.tracing.config.SpanTracingConfig; @@ -68,9 +68,9 @@ public void error(String message) { Tags.ERROR.set(theSpan, true); - theSpan.log(CollectionsHelper.mapOf("event", "error", - "message", message, - "error.kind", "SecurityException")); + theSpan.log(Map.of("event", "error", + "message", message, + "error.kind", "SecurityException")); theSpan.finish(); } @@ -89,7 +89,7 @@ public void error(Throwable throwable) { Tags.ERROR.set(theSpan, true); - theSpan.log(CollectionsHelper.mapOf("event", "error", + theSpan.log(Map.of("event", "error", "error.object", throwable)); theSpan.finish(); } diff --git a/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcSecurityHandler.java b/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcSecurityHandler.java index b9ca8cbd85f..e24fc47a89d 100644 --- a/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcSecurityHandler.java +++ b/security/integration/grpc/src/main/java/io/helidon/security/integration/grpc/GrpcSecurityHandler.java @@ -33,7 +33,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.grpc.core.InterceptorPriorities; import io.helidon.grpc.server.ServiceDescriptor; @@ -555,7 +554,7 @@ private CompletionStage processAuthorization( return future; } - Set rolesSet = rolesAllowed.orElse(CollectionsHelper.setOf()); + Set rolesSet = rolesAllowed.orElse(Set.of()); if (!rolesSet.isEmpty()) { // first validate roles - RBAC is supported out of the box by security, no need to invoke provider diff --git a/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/SecurityFilterCommon.java b/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/SecurityFilterCommon.java index 27759ec942e..cd05733b170 100644 --- a/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/SecurityFilterCommon.java +++ b/security/integration/jersey/src/main/java/io/helidon/security/integration/jersey/SecurityFilterCommon.java @@ -30,7 +30,6 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; import io.helidon.security.AuthorizationResponse; @@ -94,7 +93,7 @@ protected void doFilter(ContainerRequestContext request, SecurityContext securit origRequest = requestUri.getPath() + "?" + query; } Map> allHeaders = new HashMap<>(filterContext.getHeaders()); - allHeaders.put(Security.HEADER_ORIG_URI, CollectionsHelper.listOf(origRequest)); + allHeaders.put(Security.HEADER_ORIG_URI, List.of(origRequest)); SecurityEnvironment env = SecurityEnvironment.builder(security.serverTime()) .path(filterContext.getResourcePath()) @@ -219,7 +218,7 @@ protected void processAuthentication(FilterContext context, context.setShouldFinish(true); int status = response.statusCode().orElse(Response.Status.UNAUTHORIZED.getStatusCode()); - abortRequest(context, response, status, CollectionsHelper.mapOf()); + abortRequest(context, response, status, Map.of()); } return; @@ -227,7 +226,7 @@ protected void processAuthentication(FilterContext context, context.setShouldFinish(true); int status = response.statusCode().orElse(Response.Status.OK.getStatusCode()); - abortRequest(context, response, status, CollectionsHelper.mapOf()); + abortRequest(context, response, status, Map.of()); return; case ABSTAIN: @@ -240,7 +239,7 @@ protected void processAuthentication(FilterContext context, abortRequest(context, response, Response.Status.UNAUTHORIZED.getStatusCode(), - CollectionsHelper.mapOf()); + Map.of()); } return; case FAILURE: @@ -253,7 +252,7 @@ protected void processAuthentication(FilterContext context, abortRequest(context, response, Response.Status.UNAUTHORIZED.getStatusCode(), - CollectionsHelper.mapOf()); + Map.of()); context.setShouldFinish(true); } return; @@ -321,12 +320,12 @@ protected void processAuthorization(SecurityFilter.FilterContext context, context.setTraceThrowable(response.throwable().orElse(null)); context.setShouldFinish(true); int status = response.statusCode().orElse(Response.Status.FORBIDDEN.getStatusCode()); - abortRequest(context, response, status, CollectionsHelper.mapOf()); + abortRequest(context, response, status, Map.of()); return; case SUCCESS_FINISH: context.setShouldFinish(true); status = response.statusCode().orElse(Response.Status.OK.getStatusCode()); - abortRequest(context, response, status, CollectionsHelper.mapOf()); + abortRequest(context, response, status, Map.of()); return; case FAILURE: context.setTraceSuccess(false); @@ -336,7 +335,7 @@ protected void processAuthorization(SecurityFilter.FilterContext context, abortRequest(context, response, response.statusCode().orElse(Response.Status.FORBIDDEN.getStatusCode()), - CollectionsHelper.mapOf()); + Map.of()); return; case ABSTAIN: context.setTraceSuccess(false); @@ -345,7 +344,7 @@ protected void processAuthorization(SecurityFilter.FilterContext context, abortRequest(context, response, response.statusCode().orElse(Response.Status.FORBIDDEN.getStatusCode()), - CollectionsHelper.mapOf()); + Map.of()); return; default: context.setTraceSuccess(false); diff --git a/security/integration/jersey/src/test/java/io/helidon/security/integration/jersey/BindingTestProvider.java b/security/integration/jersey/src/test/java/io/helidon/security/integration/jersey/BindingTestProvider.java index a4acbb308c2..a7a44de57fd 100644 --- a/security/integration/jersey/src/test/java/io/helidon/security/integration/jersey/BindingTestProvider.java +++ b/security/integration/jersey/src/test/java/io/helidon/security/integration/jersey/BindingTestProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,8 +17,8 @@ package io.helidon.security.integration.jersey; import java.util.List; +import java.util.Map; -import io.helidon.common.CollectionsHelper; import io.helidon.security.AuthenticationResponse; import io.helidon.security.AuthorizationResponse; import io.helidon.security.EndpointConfig; @@ -63,7 +63,7 @@ protected OutboundSecurityResponse syncOutbound(ProviderRequest providerRequest, return providerRequest.securityContext() .user() .map(user -> OutboundSecurityResponse - .withHeaders(CollectionsHelper.mapOf("x-user", CollectionsHelper.listOf(user.principal().id())))) + .withHeaders(Map.of("x-user", List.of(user.principal().id())))) .orElse(OutboundSecurityResponse.abstain()); } } diff --git a/security/integration/jersey/src/test/java/io/helidon/security/integration/jersey/OptionalSecurityTest.java b/security/integration/jersey/src/test/java/io/helidon/security/integration/jersey/OptionalSecurityTest.java index 14382f30bc5..e600d84b66b 100644 --- a/security/integration/jersey/src/test/java/io/helidon/security/integration/jersey/OptionalSecurityTest.java +++ b/security/integration/jersey/src/test/java/io/helidon/security/integration/jersey/OptionalSecurityTest.java @@ -25,7 +25,6 @@ import javax.ws.rs.Path; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; import io.helidon.security.AuthenticationResponse; import io.helidon.security.ProviderRequest; import io.helidon.security.Security; @@ -140,7 +139,7 @@ private static Application getApplication() { return new Application() { @Override public Set> getClasses() { - return CollectionsHelper.setOf(TheResource.class); + return Set.of(TheResource.class); } }; } diff --git a/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/SecurityHandler.java b/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/SecurityHandler.java index 2d10bf17977..b0ea01dd071 100644 --- a/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/SecurityHandler.java +++ b/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/SecurityHandler.java @@ -37,7 +37,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.DataChunk; import io.helidon.common.http.Http; import io.helidon.config.Config; @@ -370,7 +369,7 @@ private void processSecurity(SecurityContext securityContext, ServerRequest req, .exceptionally(throwable -> { tracing.error(throwable); LOGGER.log(Level.SEVERE, "Unexpected exception during security processing", throwable); - abortRequest(res, null, Http.Status.INTERNAL_SERVER_ERROR_500.code(), CollectionsHelper.mapOf()); + abortRequest(res, null, Http.Status.INTERNAL_SERVER_ERROR_500.code(), Map.of()); return null; }); @@ -514,8 +513,8 @@ private boolean atnAbstainFailure(ServerResponse res, abortRequest(res, response, Http.Status.UNAUTHORIZED_401.code(), - CollectionsHelper.mapOf(Http.Header.WWW_AUTHENTICATE, - CollectionsHelper.listOf("Basic realm=\"Security Realm\""))); + Map.of(Http.Header.WWW_AUTHENTICATE, + List.of("Basic realm=\"Security Realm\""))); future.complete(AtxResult.STOP); return true; } @@ -530,7 +529,7 @@ private boolean atnFinishFailure(ServerResponse res, } else { int defaultStatusCode = Http.Status.UNAUTHORIZED_401.code(); - abortRequest(res, response, defaultStatusCode, CollectionsHelper.mapOf()); + abortRequest(res, response, defaultStatusCode, Map.of()); future.complete(AtxResult.STOP); return true; } @@ -542,7 +541,7 @@ private void atnFinish(ServerResponse res, int defaultStatusCode = Http.Status.OK_200.code(); - abortRequest(res, response, defaultStatusCode, CollectionsHelper.mapOf()); + abortRequest(res, response, defaultStatusCode, Map.of()); future.complete(AtxResult.STOP); } @@ -632,20 +631,20 @@ private CompletionStage processAuthorization(ServerRequest req, return future; } - Set rolesSet = rolesAllowed.orElse(CollectionsHelper.setOf()); + Set rolesSet = rolesAllowed.orElse(Set.of()); if (!rolesSet.isEmpty()) { // first validate roles - RBAC is supported out of the box by security, no need to invoke provider if (explicitAuthorizer.isPresent()) { if (rolesSet.stream().noneMatch(role -> context.isUserInRole(role, explicitAuthorizer.get()))) { - abortRequest(res, null, Http.Status.FORBIDDEN_403.code(), CollectionsHelper.mapOf()); + abortRequest(res, null, Http.Status.FORBIDDEN_403.code(), Map.of()); future.complete(AtxResult.STOP); atzTracing.finish(); return future; } } else { if (rolesSet.stream().noneMatch(context::isUserInRole)) { - abortRequest(res, null, Http.Status.FORBIDDEN_403.code(), CollectionsHelper.mapOf()); + abortRequest(res, null, Http.Status.FORBIDDEN_403.code(), Map.of()); future.complete(AtxResult.STOP); atzTracing.finish(); return future; @@ -676,13 +675,13 @@ private CompletionStage processAuthorization(ServerRequest req, : Http.Status.OK_200.code(); atzTracing.finish(); - abortRequest(res, response, defaultStatus, CollectionsHelper.mapOf()); + abortRequest(res, response, defaultStatus, Map.of()); future.complete(AtxResult.STOP); return; case ABSTAIN: case FAILURE: atzTracing.finish(); - abortRequest(res, response, Http.Status.FORBIDDEN_403.code(), CollectionsHelper.mapOf()); + abortRequest(res, response, Http.Status.FORBIDDEN_403.code(), Map.of()); future.complete(AtxResult.STOP); return; default: diff --git a/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/WebSecurity.java b/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/WebSecurity.java index f3e74ed0093..4f1a2c914f0 100644 --- a/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/WebSecurity.java +++ b/security/integration/webserver/src/main/java/io/helidon/security/integration/webserver/WebSecurity.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,8 +36,6 @@ import io.helidon.webserver.ServerResponse; import io.helidon.webserver.Service; -import static io.helidon.common.CollectionsHelper.listOf; - /** * Integration of security into Web Server. *

@@ -367,7 +365,7 @@ private void registerRouting(Routing.Rules routing) { wsConfig.get("paths").asNodeList().ifPresent(configs -> { for (Config pathConfig : configs) { - List methods = pathConfig.get("methods").asNodeList().orElse(listOf()) + List methods = pathConfig.get("methods").asNodeList().orElse(List.of()) .stream() .map(Config::asString) .map(ConfigValue::get) diff --git a/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityBuilderGateDefaultsTest.java b/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityBuilderGateDefaultsTest.java index 4baf450e03a..b87e259135b 100644 --- a/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityBuilderGateDefaultsTest.java +++ b/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityBuilderGateDefaultsTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; import io.helidon.config.Config; @@ -139,23 +138,23 @@ public void basicTestJack() { testProtected(serverBaseUri + "/noRoles", username, password, - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf()); + Set.of("user", "admin"), + Set.of()); testProtected(serverBaseUri + "/user", username, password, - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf()); + Set.of("user", "admin"), + Set.of()); testProtected(serverBaseUri + "/admin", username, password, - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf()); + Set.of("user", "admin"), + Set.of()); testProtected(serverBaseUri + "/deny", username, password, - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf()); + Set.of("user", "admin"), + Set.of()); } @Test @@ -167,8 +166,8 @@ public void basicTestJill() { testProtected(serverBaseUri + "/user", username, password, - CollectionsHelper.setOf("user"), - CollectionsHelper.setOf("admin")); + Set.of("user"), + Set.of("admin")); testForbidden(serverBaseUri + "/admin", username, password); testForbidden(serverBaseUri + "/deny", username, password); } diff --git a/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityQueryParamTest.java b/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityQueryParamTest.java index f32181360d8..5a4746cbbcc 100644 --- a/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityQueryParamTest.java +++ b/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityQueryParamTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,9 +16,9 @@ package io.helidon.security.integration.webserver; +import java.util.List; import java.util.regex.Pattern; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Parameters; import io.helidon.security.SecurityContext; import io.helidon.security.SecurityEnvironment; @@ -56,8 +56,8 @@ public void testQueryParams() { ServerRequest req = Mockito.mock(ServerRequest.class); Parameters params = Mockito.mock(Parameters.class); - when(params.all("jwt")).thenReturn(CollectionsHelper.listOf("bearer jwt_content")); - when(params.all("name")).thenReturn(CollectionsHelper.listOf("name_content")); + when(params.all("jwt")).thenReturn(List.of("bearer jwt_content")); + when(params.all("name")).thenReturn(List.of("name_content")); when(req.queryParams()).thenReturn(params); SecurityContext context = Mockito.mock(SecurityContext.class); @@ -71,7 +71,7 @@ public void testQueryParams() { verify(context).env(newHeaders.capture()); // now validate the value we were called with env = newHeaders.getValue(); - assertThat(env.headers().get("BEARER_TOKEN"), is(CollectionsHelper.listOf("jwt_content"))); - assertThat(env.headers().get("NAME_FROM_REQUEST"), is(CollectionsHelper.listOf("name_content"))); + assertThat(env.headers().get("BEARER_TOKEN"), is(List.of("jwt_content"))); + assertThat(env.headers().get("NAME_FROM_REQUEST"), is(List.of("name_content"))); } } diff --git a/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityTests.java b/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityTests.java index b03933f24c5..f999bc4c19b 100644 --- a/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityTests.java +++ b/security/integration/webserver/src/test/java/io/helidon/security/integration/webserver/WebSecurityTests.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.security.AuditEvent; import io.helidon.webserver.WebServer; @@ -76,7 +75,7 @@ void basicTestJohn() { String username = "john"; String password = "password"; - testProtected(serverBaseUri() + "/noRoles", username, password, CollectionsHelper.setOf(), CollectionsHelper.setOf()); + testProtected(serverBaseUri() + "/noRoles", username, password, Set.of(), Set.of()); // this user has no roles, all requests should fail except for public testForbidden(serverBaseUri() + "/user", username, password); testForbidden(serverBaseUri() + "/admin", username, password); @@ -91,18 +90,18 @@ void basicTestJack() { testProtected(serverBaseUri() + "/noRoles", username, password, - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf()); + Set.of("user", "admin"), + Set.of()); testProtected(serverBaseUri() + "/user", username, password, - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf()); + Set.of("user", "admin"), + Set.of()); testProtected(serverBaseUri() + "/admin", username, password, - CollectionsHelper.setOf("user", "admin"), - CollectionsHelper.setOf()); + Set.of("user", "admin"), + Set.of()); testForbidden(serverBaseUri() + "/deny", username, password); } @@ -114,13 +113,13 @@ void basicTestJill() { testProtected(serverBaseUri() + "/noRoles", username, password, - CollectionsHelper.setOf("user"), - CollectionsHelper.setOf("admin")); + Set.of("user"), + Set.of("admin")); testProtected(serverBaseUri() + "/user", username, password, - CollectionsHelper.setOf("user"), - CollectionsHelper.setOf("admin")); + Set.of("user"), + Set.of("admin")); testForbidden(serverBaseUri() + "/admin", username, password); testForbidden(serverBaseUri() + "/deny", username, password); } diff --git a/security/jwt/src/main/java/io/helidon/security/jwt/Jwt.java b/security/jwt/src/main/java/io/helidon/security/jwt/Jwt.java index ca8e17fcbb9..c675957c8a2 100644 --- a/security/jwt/src/main/java/io/helidon/security/jwt/Jwt.java +++ b/security/jwt/src/main/java/io/helidon/security/jwt/Jwt.java @@ -41,7 +41,6 @@ import javax.json.JsonString; import javax.json.JsonValue; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.security.jwt.jwk.Jwk; @@ -249,7 +248,7 @@ public class Jwt { if (groups instanceof JsonArray) { this.userGroups = JwtUtil.getStrings(payloadJson, "groups"); } else { - this.userGroups = JwtUtil.getString(payloadJson, "groups").map(CollectionsHelper::listOf); + this.userGroups = JwtUtil.getString(payloadJson, "groups").map(List::of); } JsonValue aud = payloadJson.get("aud"); @@ -257,7 +256,7 @@ public class Jwt { if (aud instanceof JsonArray) { this.audience = JwtUtil.getStrings(payloadJson, "aud"); } else { - this.audience = JwtUtil.getString(payloadJson, "aud").map(CollectionsHelper::listOf); + this.audience = JwtUtil.getString(payloadJson, "aud").map(List::of); } this.jwtId = JwtUtil.getString(payloadJson, "jti"); diff --git a/security/jwt/src/test/java/io/helidon/security/jwt/JwtTest.java b/security/jwt/src/test/java/io/helidon/security/jwt/JwtTest.java index edaac5a84ee..2ee82166fcd 100644 --- a/security/jwt/src/test/java/io/helidon/security/jwt/JwtTest.java +++ b/security/jwt/src/test/java/io/helidon/security/jwt/JwtTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import java.util.UUID; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.security.jwt.jwk.JwkRSA; @@ -33,7 +32,7 @@ import static org.hamcrest.MatcherAssert.assertThat; /** - * Unit test for {@link Jwt} + * Unit test for {@link Jwt}. */ public class JwtTest { private static final Logger LOGGER = Logger.getLogger(JwtTest.class.getName()); @@ -51,7 +50,7 @@ public void testBuilderBasicJwt() { assertThat(jwt.jwtId(), is(Optional.of(id))); assertThat(jwt.algorithm(), is(Optional.of(JwkRSA.ALG_RS256))); - assertThat(jwt.audience(), is(Optional.of(CollectionsHelper.listOf(audience)))); + assertThat(jwt.audience(), is(Optional.of(List.of(audience)))); } @Test @@ -80,7 +79,7 @@ public void testOidcJwt() { .notBefore(notBefore) .build(); - assertThat(jwt.scopes(), is(Optional.of(CollectionsHelper.listOf("link", "lank", "lunk")))); + assertThat(jwt.scopes(), is(Optional.of(List.of("link", "lank", "lunk")))); assertThat(jwt.subject(), is(Optional.of(subject))); assertThat(jwt.preferredUsername(), is(Optional.of(username))); assertThat(jwt.issueTime(), is(Optional.of(now))); diff --git a/security/jwt/src/test/java/io/helidon/security/jwt/jwk/JwkKeysTest.java b/security/jwt/src/test/java/io/helidon/security/jwt/jwk/JwkKeysTest.java index 61a9fa3684e..4c7038c9e56 100644 --- a/security/jwt/src/test/java/io/helidon/security/jwt/jwk/JwkKeysTest.java +++ b/security/jwt/src/test/java/io/helidon/security/jwt/jwk/JwkKeysTest.java @@ -20,9 +20,9 @@ import java.security.interfaces.ECPrivateKey; import java.security.interfaces.ECPublicKey; import java.util.Base64; +import java.util.List; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.Resource; import io.helidon.security.jwt.JwtException; @@ -257,8 +257,8 @@ public void testCustomOct() { assertThat(key.keyType(), is(Jwk.KEY_TYPE_OCT)); assertThat(key.usage(), is(Optional.empty())); assertThat(key.keyId(), is(keyId)); - assertThat(key.operations(), is(Optional.of(CollectionsHelper.listOf(Jwk.OPERATION_SIGN, - Jwk.OPERATION_VERIFY)))); + assertThat(key.operations(), is(Optional.of(List.of(Jwk.OPERATION_SIGN, + Jwk.OPERATION_VERIFY)))); assertThat(key, instanceOf(JwkOctet.class)); assertThat(key, not(instanceOf(JwkPki.class))); diff --git a/security/providers/abac/src/test/java/io/helidon/security/providers/abac/AbacProviderTest.java b/security/providers/abac/src/test/java/io/helidon/security/providers/abac/AbacProviderTest.java index 256b736a914..ada6ca88b27 100644 --- a/security/providers/abac/src/test/java/io/helidon/security/providers/abac/AbacProviderTest.java +++ b/security/providers/abac/src/test/java/io/helidon/security/providers/abac/AbacProviderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,11 +16,12 @@ package io.helidon.security.providers.abac; +import java.util.List; +import java.util.Map; import java.util.Optional; import javax.annotation.security.RolesAllowed; -import io.helidon.common.CollectionsHelper; import io.helidon.security.AuthorizationResponse; import io.helidon.security.EndpointConfig; import io.helidon.security.ProviderRequest; @@ -48,7 +49,7 @@ public void testMissingValidator() { EndpointConfig ec = EndpointConfig.builder() .annotations(EndpointConfig.AnnotationScope.CLASS, - CollectionsHelper.mapOf(Attrib1.class, CollectionsHelper.listOf(attrib))) + Map.of(Attrib1.class, List.of(attrib))) .build(); ProviderRequest request = Mockito.mock(ProviderRequest.class); @@ -73,7 +74,7 @@ public void testMissingRoleValidator() { EndpointConfig ec = EndpointConfig.builder() .annotations(EndpointConfig.AnnotationScope.CLASS, - CollectionsHelper.mapOf(RolesAllowed.class, CollectionsHelper.listOf(attrib))) + Map.of(RolesAllowed.class, List.of(attrib))) .build(); ProviderRequest request = Mockito.mock(ProviderRequest.class); @@ -99,7 +100,7 @@ public void testExistingValidatorFail() { EndpointConfig ec = EndpointConfig.builder() .annotations(EndpointConfig.AnnotationScope.CLASS, - CollectionsHelper.mapOf(Attrib1.class, CollectionsHelper.listOf(attrib))) + Map.of(Attrib1.class, List.of(attrib))) .build(); ProviderRequest request = Mockito.mock(ProviderRequest.class); @@ -124,8 +125,7 @@ public void testExistingValidatorSucceed() { doReturn(Attrib1.class).when(attrib).annotationType(); EndpointConfig ec = EndpointConfig.builder() - .annotations(EndpointConfig.AnnotationScope.CLASS, CollectionsHelper - .mapOf(Attrib1.class, CollectionsHelper.listOf(attrib))) + .annotations(EndpointConfig.AnnotationScope.CLASS, Map.of(Attrib1.class, List.of(attrib))) .build(); ProviderRequest request = Mockito.mock(ProviderRequest.class); diff --git a/security/providers/abac/src/test/java/io/helidon/security/providers/abac/Attrib1Validator.java b/security/providers/abac/src/test/java/io/helidon/security/providers/abac/Attrib1Validator.java index a903c47b4ce..df88e0ddb01 100644 --- a/security/providers/abac/src/test/java/io/helidon/security/providers/abac/Attrib1Validator.java +++ b/security/providers/abac/src/test/java/io/helidon/security/providers/abac/Attrib1Validator.java @@ -20,8 +20,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.config.Config; import io.helidon.security.EndpointConfig; @@ -35,7 +35,7 @@ public class Attrib1Validator implements AbacValidator { @Override public Collection> supportedAnnotations() { - return CollectionsHelper.setOf(Attrib1.class); + return Set.of(Attrib1.class); } @Override diff --git a/security/providers/common/src/main/java/io/helidon/security/providers/common/OutboundConfig.java b/security/providers/common/src/main/java/io/helidon/security/providers/common/OutboundConfig.java index 7697850d4fe..2fe4a706a5c 100644 --- a/security/providers/common/src/main/java/io/helidon/security/providers/common/OutboundConfig.java +++ b/security/providers/common/src/main/java/io/helidon/security/providers/common/OutboundConfig.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import java.util.Optional; import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.EndpointConfig; import io.helidon.security.ProviderRequest; @@ -71,7 +70,7 @@ public static OutboundConfig create(Config providerConfig, OutboundTarget... def static OutboundConfig createFromConfig(Config providerConfig, OutboundTarget[] defaults) { Config config = providerConfig.get(CONFIG_OUTBOUND); - List configuredTargets = config.asList(OutboundTarget::create).orElse(CollectionsHelper.listOf()); + List configuredTargets = config.asList(OutboundTarget::create).orElse(List.of()); boolean useDefaults = configuredTargets.stream().noneMatch(targetConfig -> "default".equals(targetConfig.name())) && (null != defaults); diff --git a/security/providers/common/src/main/java/io/helidon/security/providers/common/OutboundTarget.java b/security/providers/common/src/main/java/io/helidon/security/providers/common/OutboundTarget.java index 170ba4c15d6..480eb830a64 100644 --- a/security/providers/common/src/main/java/io/helidon/security/providers/common/OutboundTarget.java +++ b/security/providers/common/src/main/java/io/helidon/security/providers/common/OutboundTarget.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import java.util.Set; import java.util.regex.Pattern; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.ClassToInstanceStore; @@ -96,11 +95,11 @@ static OutboundTarget create(Config c) { builder.config(c); builder.name(c.get(CONFIG_NAME).asString().get()); - c.get(CONFIG_TRANSPORTS).asList(String.class).orElse(CollectionsHelper.listOf()) + c.get(CONFIG_TRANSPORTS).asList(String.class).orElse(List.of()) .forEach(builder::addTransport); - c.get(CONFIG_HOSTS).asList(String.class).orElse(CollectionsHelper.listOf()) + c.get(CONFIG_HOSTS).asList(String.class).orElse(List.of()) .forEach(builder::addHost); - c.get(CONFIG_PATHS).asList(String.class).orElse(CollectionsHelper.listOf()) + c.get(CONFIG_PATHS).asList(String.class).orElse(List.of()) .forEach(builder::addPath); return builder.build(); diff --git a/security/providers/google-login/src/main/java/io/helidon/security/providers/google/login/GoogleTokenProvider.java b/security/providers/google-login/src/main/java/io/helidon/security/providers/google/login/GoogleTokenProvider.java index 8f3b1d9251f..d922c17cf28 100644 --- a/security/providers/google-login/src/main/java/io/helidon/security/providers/google/login/GoogleTokenProvider.java +++ b/security/providers/google-login/src/main/java/io/helidon/security/providers/google/login/GoogleTokenProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; +import java.util.Set; import java.util.TreeMap; import java.util.concurrent.TimeUnit; import java.util.function.BiFunction; @@ -32,7 +33,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; import io.helidon.security.EndpointConfig; @@ -108,7 +108,7 @@ private GoogleTokenProvider(Builder builder) { // thread safe according to documentation this.verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory) - .setAudience(CollectionsHelper.setOf(clientId)) + .setAudience(Set.of(clientId)) .build(); } catch (Exception e) { throw new GoogleTokenException("Failed to initialize transport", e); diff --git a/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/ConfigUserStore.java b/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/ConfigUserStore.java index d7fc853ced5..82c133252fd 100644 --- a/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/ConfigUserStore.java +++ b/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/ConfigUserStore.java @@ -19,11 +19,11 @@ import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashSet; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; /** @@ -80,7 +80,7 @@ static ConfigUser create(Config config) { cu.login = config.get("login").asString().get(); cu.password = config.get("password").asString().orElse("").toCharArray(); - cu.roles.addAll(config.get("roles").asList(String.class).orElse(CollectionsHelper.listOf())); + cu.roles.addAll(config.get("roles").asList(String.class).orElse(List.of())); return cu; } diff --git a/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/HttpBasicAuthProvider.java b/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/HttpBasicAuthProvider.java index fdc8b55cb3b..b9a580e860a 100644 --- a/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/HttpBasicAuthProvider.java +++ b/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/HttpBasicAuthProvider.java @@ -27,7 +27,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import io.helidon.common.CollectionsHelper; import io.helidon.common.serviceloader.HelidonServiceLoader; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; @@ -104,7 +103,7 @@ private static OutboundSecurityResponse toBasicAuthOutbound(String username, cha .encodeToString((username + ":" + new String(password)).getBytes(StandardCharsets.UTF_8)); String basicAuthB64 = "basic " + b64; return OutboundSecurityResponse - .withHeaders(CollectionsHelper.mapOf("Authorization", CollectionsHelper.listOf(basicAuthB64))); + .withHeaders(Map.of("Authorization", List.of(basicAuthB64))); } @Override diff --git a/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/SecureUserStore.java b/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/SecureUserStore.java index 58b0fcef870..50bc601db19 100644 --- a/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/SecureUserStore.java +++ b/security/providers/http-auth/src/main/java/io/helidon/security/providers/httpauth/SecureUserStore.java @@ -18,8 +18,7 @@ import java.util.Collection; import java.util.Optional; - -import io.helidon.common.CollectionsHelper; +import java.util.Set; /** * Store of users for resolving httpauth and digest authentication. @@ -68,7 +67,7 @@ interface User { * @return roles of this user (or empty if not supported). */ default Collection roles() { - return CollectionsHelper.setOf(); + return Set.of(); } /** diff --git a/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/BasicAuthOutboundOverrideTest.java b/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/BasicAuthOutboundOverrideTest.java index e0d06bfaeb3..76b75f82b66 100644 --- a/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/BasicAuthOutboundOverrideTest.java +++ b/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/BasicAuthOutboundOverrideTest.java @@ -20,6 +20,7 @@ import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.Collections; +import java.util.List; import java.util.Optional; import javax.ws.rs.client.ClientRequestContext; @@ -27,7 +28,6 @@ import javax.ws.rs.core.MultivaluedHashMap; import javax.ws.rs.core.MultivaluedMap; -import io.helidon.common.CollectionsHelper; import io.helidon.security.Security; import io.helidon.security.SecurityContext; import io.helidon.security.integration.jersey.client.ClientSecurity; @@ -74,7 +74,7 @@ void testSecureClientOverride() throws IOException { when(requestContext.getUri()).thenReturn(URI.create("http://localhost:7070/test")); when(requestContext.getStringHeaders()).thenReturn(new MultivaluedHashMap<>()); when(requestContext.getHeaders()).thenReturn(jerseyHeaders); - when(requestContext.getPropertyNames()).thenReturn(CollectionsHelper.listOf( + when(requestContext.getPropertyNames()).thenReturn(List.of( ClientSecurity.PROPERTY_CONTEXT, ClientSecurity.PROPERTY_PROVIDER, HttpBasicAuthProvider.EP_PROPERTY_OUTBOUND_USER, diff --git a/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderBuilderLegacyUserStoreTest.java b/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderBuilderLegacyUserStoreTest.java index e6af83a3cca..cc85fdb1b54 100644 --- a/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderBuilderLegacyUserStoreTest.java +++ b/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderBuilderLegacyUserStoreTest.java @@ -25,7 +25,6 @@ import java.util.Set; import io.helidon.common.Builder; -import io.helidon.common.CollectionsHelper; import io.helidon.security.AuthenticationResponse; import io.helidon.security.Principal; import io.helidon.security.Security; @@ -84,7 +83,7 @@ public char[] password() { @Override public Set roles() { - return CollectionsHelper.setOf("user", "admin"); + return Set.of("user", "admin"); } }); } @@ -102,7 +101,7 @@ public char[] password() { @Override public Set roles() { - return CollectionsHelper.setOf("user"); + return Set.of("user"); } }); } diff --git a/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderBuilderTest.java b/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderBuilderTest.java index c76f1f0b547..ecaa19b469b 100644 --- a/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderBuilderTest.java +++ b/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderBuilderTest.java @@ -22,10 +22,10 @@ import java.util.Base64; import java.util.Optional; import java.util.Random; +import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; import io.helidon.common.Builder; -import io.helidon.common.CollectionsHelper; import io.helidon.security.AuthenticationResponse; import io.helidon.security.Principal; import io.helidon.security.Security; @@ -73,12 +73,12 @@ private static SecureUserStore userStore() { if ("jack".equals(login)) { return Optional.of(new TestUser("jack", "jackIsGreat".toCharArray(), - CollectionsHelper.setOf("user", "admin"))); + Set.of("user", "admin"))); } if ("jill".equals(login)) { return Optional.of(new TestUser("jill", "password".toCharArray(), - CollectionsHelper.setOf("user"))); + Set.of("user"))); } return Optional.empty(); diff --git a/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderConfigTest.java b/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderConfigTest.java index e13b0bf508a..120cc9c4858 100644 --- a/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderConfigTest.java +++ b/security/providers/http-auth/src/test/java/io/helidon/security/providers/httpauth/HttpAuthProviderConfigTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import javax.ws.rs.core.Response; import javax.ws.rs.ext.ExceptionMapper; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.Security; import io.helidon.security.integration.jersey.SecurityFeature; @@ -145,32 +144,32 @@ private void testProtected(String uri, @Test public void basicTestJack() { - testProtected(serverBase, "jack", "jackIsGreat", CollectionsHelper.setOf("user", "admin"), CollectionsHelper.setOf()); + testProtected(serverBase, "jack", "jackIsGreat", Set.of("user", "admin"), Set.of()); } @Test public void basicTestJill() { - testProtected(serverBase, "jill", "password", CollectionsHelper.setOf("user"), CollectionsHelper.setOf("admin")); + testProtected(serverBase, "jill", "password", Set.of("user"), Set.of("admin")); } @Test public void digestTestJack() { - testProtected(digestUri, "jack", "jackIsGreat", CollectionsHelper.setOf("user", "admin"), CollectionsHelper.setOf()); + testProtected(digestUri, "jack", "jackIsGreat", Set.of("user", "admin"), Set.of()); } @Test public void digestTestJill() { - testProtected(digestUri, "jill", "password", CollectionsHelper.setOf("user"), CollectionsHelper.setOf("admin")); + testProtected(digestUri, "jill", "password", Set.of("user"), Set.of("admin")); } @Test public void digestOldTestJack() { - testProtected(digestOldUri, "jack", "jackIsGreat", CollectionsHelper.setOf("user", "admin"), CollectionsHelper.setOf()); + testProtected(digestOldUri, "jack", "jackIsGreat", Set.of("user", "admin"), Set.of()); } @Test public void digestOldTestJill() { - testProtected(digestOldUri, "jill", "password", CollectionsHelper.setOf("user"), CollectionsHelper.setOf("admin")); + testProtected(digestOldUri, "jill", "password", Set.of("user"), Set.of("admin")); } @Test diff --git a/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/HttpSignProvider.java b/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/HttpSignProvider.java index 28013ca8ddd..91717fad888 100644 --- a/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/HttpSignProvider.java +++ b/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/HttpSignProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; import io.helidon.security.EndpointConfig; @@ -51,22 +50,22 @@ public final class HttpSignProvider implements AuthenticationProvider, OutboundS static final String ALGORITHM_RSA = "rsa-sha256"; static final SignedHeadersConfig DEFAULT_REQUIRED_HEADERS = SignedHeadersConfig.builder() .defaultConfig(SignedHeadersConfig.HeadersConfig - .create(CollectionsHelper.listOf("date", SignedHeadersConfig.REQUEST_TARGET))) + .create(List.of("date", SignedHeadersConfig.REQUEST_TARGET))) .config("get", SignedHeadersConfig.HeadersConfig - .create(CollectionsHelper.listOf("date", SignedHeadersConfig.REQUEST_TARGET, "host"), - CollectionsHelper.listOf("authorization"))) + .create(List.of("date", SignedHeadersConfig.REQUEST_TARGET, "host"), + List.of("authorization"))) .config("head", SignedHeadersConfig.HeadersConfig - .create(CollectionsHelper.listOf("date", SignedHeadersConfig.REQUEST_TARGET, "host"), - CollectionsHelper.listOf("authorization"))) + .create(List.of("date", SignedHeadersConfig.REQUEST_TARGET, "host"), + List.of("authorization"))) .config("delete", SignedHeadersConfig.HeadersConfig - .create(CollectionsHelper.listOf("date", SignedHeadersConfig.REQUEST_TARGET, "host"), - CollectionsHelper.listOf("authorization"))) + .create(List.of("date", SignedHeadersConfig.REQUEST_TARGET, "host"), + List.of("authorization"))) .config("put", SignedHeadersConfig.HeadersConfig - .create(CollectionsHelper.listOf("date", SignedHeadersConfig.REQUEST_TARGET, "host"), - CollectionsHelper.listOf("authorization"))) + .create(List.of("date", SignedHeadersConfig.REQUEST_TARGET, "host"), + List.of("authorization"))) .config("post", SignedHeadersConfig.HeadersConfig - .create(CollectionsHelper.listOf("date", SignedHeadersConfig.REQUEST_TARGET, "host"), - CollectionsHelper.listOf("authorization"))) + .create(List.of("date", SignedHeadersConfig.REQUEST_TARGET, "host"), + List.of("authorization"))) .build(); static final String ATTRIB_NAME_KEY_ID = HttpSignProvider.class.getName() + ".keyId"; @@ -147,7 +146,7 @@ private AuthenticationResponse authorizeHeader(SecurityEnvironment env) { // attempt to validate each authorization, first one that succeeds will finish processing and return for (String authorizationValue : authorization) { if (authorizationValue.toLowerCase().startsWith("signature ")) { - response = signatureHeader(CollectionsHelper.listOf(authorizationValue.substring("singature ".length())), env); + response = signatureHeader(List.of(authorizationValue.substring("singature ".length())), env); if (response.status().isSuccess()) { // that was a good header, let's return the response return response; diff --git a/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/HttpSignature.java b/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/HttpSignature.java index 6bf26419812..95f7a223f6a 100644 --- a/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/HttpSignature.java +++ b/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/HttpSignature.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,7 +38,6 @@ import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; -import io.helidon.common.CollectionsHelper; import io.helidon.common.pki.KeyConfig; import io.helidon.security.SecurityEnvironment; @@ -48,7 +47,7 @@ class HttpSignature { private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.RFC_1123_DATE_TIME; private static final Logger LOGGER = Logger.getLogger(HttpSignature.class.getName()); - private static final List DEFAULT_HEADERS = CollectionsHelper.listOf("date"); + private static final List DEFAULT_HEADERS = List.of("date"); private static final byte[] EMPTY_BYTES = new byte[0]; private final String keyId; @@ -355,7 +354,7 @@ String getSignedString(Map> newHeaders, SecurityEnvironment // there are two headers we understand and may want to add to request if ("date".equalsIgnoreCase(header)) { String date = ZonedDateTime.now(ZoneId.of("GMT")).format(DATE_FORMATTER); - headerValues = CollectionsHelper.listOf(date); + headerValues = List.of(date); newHeaders.put("date", headerValues); LOGGER.finest(() -> "Added date header to request: " + date); @@ -363,7 +362,7 @@ String getSignedString(Map> newHeaders, SecurityEnvironment URI uri = env.targetUri(); String host = uri.getHost() + ":" + uri.getPort(); - headerValues = CollectionsHelper.listOf(host); + headerValues = List.of(host); newHeaders.put("host", headerValues); LOGGER.finest(() -> "Added host header to request: " + host); diff --git a/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/SignedHeadersConfig.java b/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/SignedHeadersConfig.java index 3b069a202f5..4df9617ebf4 100644 --- a/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/SignedHeadersConfig.java +++ b/security/providers/http-sign/src/main/java/io/helidon/security/providers/httpsign/SignedHeadersConfig.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import java.util.Map; import java.util.TreeMap; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; /** @@ -105,7 +104,7 @@ List headers(String method) { * Call {@link #build()} to create a new instance. */ public static final class Builder implements io.helidon.common.Builder { - private static final HeadersConfig DEFAULT_HEADERS = HeadersConfig.create(CollectionsHelper.listOf("date")); + private static final HeadersConfig DEFAULT_HEADERS = HeadersConfig.create(List.of("date")); private final Map methodConfigs = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); private HeadersConfig defaultConfig = DEFAULT_HEADERS; @@ -166,7 +165,7 @@ private HeadersConfig(List requiredHeaders, List ifPresentHeader * @return instance with no required headers */ public static HeadersConfig create() { - return create(CollectionsHelper.listOf()); + return create(List.of()); } /** @@ -176,7 +175,7 @@ public static HeadersConfig create() { * @return instance with required headers */ public static HeadersConfig create(List requiredHeaders) { - return create(requiredHeaders, CollectionsHelper.listOf()); + return create(requiredHeaders, List.of()); } /** @@ -198,8 +197,8 @@ public static HeadersConfig create(List requiredHeaders, List if * @return instance configured from config */ public static HeadersConfig create(Config config) { - return create(config.get("always").asList(String.class).orElse(CollectionsHelper.listOf()), - config.get("if-present").asList(String.class).orElse(CollectionsHelper.listOf())); + return create(config.get("always").asList(String.class).orElse(List.of()), + config.get("if-present").asList(String.class).orElse(List.of())); } List getHeaders(Map> transportHeaders) { diff --git a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderBuilderTest.java b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderBuilderTest.java index 6ecd1a9bc36..5898f211513 100644 --- a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderBuilderTest.java +++ b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderBuilderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,8 +17,8 @@ package io.helidon.security.providers.httpsign; import java.nio.file.Paths; +import java.util.List; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.Resource; import io.helidon.common.pki.KeyConfig; import io.helidon.security.SubjectType; @@ -108,13 +108,13 @@ private static InboundClientDefinition hmacInbound() { private static SignedHeadersConfig inboundRequiredHeaders(String requestTarget, String host) { return SignedHeadersConfig.builder() .defaultConfig(SignedHeadersConfig.HeadersConfig - .create(CollectionsHelper.listOf("date"))) + .create(List.of("date"))) .config("get", SignedHeadersConfig.HeadersConfig - .create(CollectionsHelper.listOf("date", + .create(List.of("date", requestTarget, host), - CollectionsHelper.listOf("authorization"))) + List.of("authorization"))) .build(); } diff --git a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderTest.java b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderTest.java index 50cb4d7d7d7..d6980b49a59 100644 --- a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderTest.java +++ b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignProviderTest.java @@ -25,7 +25,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; -import io.helidon.common.CollectionsHelper; import io.helidon.security.AuthenticationResponse; import io.helidon.security.EndpointConfig; import io.helidon.security.OutboundSecurityResponse; @@ -56,7 +55,7 @@ public void testInboundSignatureRsa() throws ExecutionException, InterruptedExce Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); headers.put("Signature", - CollectionsHelper.listOf("keyId=\"rsa-key-12345\",algorithm=\"rsa-sha256\",headers=\"date " + List.of("keyId=\"rsa-key-12345\",algorithm=\"rsa-sha256\",headers=\"date " + "host (request-target) authorization\"," + "signature=\"Rm5PjuUdJ927esGQ2gm/6QBEM9IM7J5qSZuP8NV8+GXUf" + "boUV6ST2EYLYniFGt5/3BO/2+vqQdqezdTVPr/JCwqBx+9T9ZynG7YqRj" @@ -65,9 +64,9 @@ public void testInboundSignatureRsa() throws ExecutionException, InterruptedExce + "ebieVD3Swb1VG5+/7ECQ9VAlX30U5/jQ5hPO3yuvRlg5kkMjJiN7tf/68" + "If/5O2Z4H+7VmW0b1U69/JoOQJA0av1gCX7HVfa/YTCxIK4UFiI6h963q" + "2x7LSkqhdWGA==\"")); - headers.put("host", CollectionsHelper.listOf("example.org")); - headers.put("date", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); - headers.put("authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); + headers.put("host", List.of("example.org")); + headers.put("date", List.of("Thu, 08 Jun 2014 18:32:30 GMT")); + headers.put("authorization", List.of("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); HttpSignProvider provider = getProvider(); @@ -104,13 +103,12 @@ public void testInboundSignatureHmac() throws InterruptedException, ExecutionExc Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); headers.put("Signature", - CollectionsHelper - .listOf("keyId=\"myServiceKeyId\",algorithm=\"hmac-sha256\",headers=\"date host (request-target) " + List.of("keyId=\"myServiceKeyId\",algorithm=\"hmac-sha256\",headers=\"date host (request-target) " + "authorization\"," + "signature=\"0BcQq9TckrtGvlpHiMxNqMq0vW6dPVTGVDUVDrGwZyI=\"")); - headers.put("host", CollectionsHelper.listOf("example.org")); - headers.put("date", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); - headers.put("authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); + headers.put("host", List.of("example.org")); + headers.put("date", List.of("Thu, 08 Jun 2014 18:32:30 GMT")); + headers.put("authorization", List.of("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); HttpSignProvider provider = getProvider(); @@ -146,9 +144,9 @@ public void testOutboundSignatureRsa() throws ExecutionException, InterruptedExc Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); // the generated host contains port as well, so we must explicitly define it here - headers.put("host", CollectionsHelper.listOf("example.org")); - headers.put("date", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); - headers.put("authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); + headers.put("host", List.of("example.org")); + headers.put("date", List.of("Thu, 08 Jun 2014 18:32:30 GMT")); + headers.put("authorization", List.of("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); SecurityContext context = mock(SecurityContext.class); when(context.executorService()).thenReturn(ForkJoinPool.commonPool()); @@ -179,7 +177,7 @@ public void testOutboundSignatureRsa() throws ExecutionException, InterruptedExc updatedHeaders.get("Signature").iterator().next(), "rsa-key-12345", "rsa-sha256", - CollectionsHelper.listOf("date", "host", REQUEST_TARGET, "authorization"), + List.of("date", "host", REQUEST_TARGET, "authorization"), "Rm5PjuUdJ927esGQ2gm/6QBEM9IM7J5qSZuP8NV8+GXUf" + "boUV6ST2EYLYniFGt5/3BO/2+vqQdqezdTVPr/JCwqBx+9T9ZynG7YqRj" + "KvXzcmvQOu5vQmCK5x/HR0fXU41Pjq+jywsD0k6KdxF6TWr6tvWRbwFet" @@ -194,8 +192,8 @@ public void testOutboundSignatureHmac() throws ExecutionException, InterruptedEx Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); // the generated host contains port as well, so we must explicitly define it here - headers.put("host", CollectionsHelper.listOf("localhost")); - headers.put("date", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); + headers.put("host", List.of("localhost")); + headers.put("date", List.of("Thu, 08 Jun 2014 18:32:30 GMT")); SecurityContext context = mock(SecurityContext.class); when(context.executorService()).thenReturn(ForkJoinPool.commonPool()); @@ -226,7 +224,7 @@ public void testOutboundSignatureHmac() throws ExecutionException, InterruptedEx updatedHeaders.get("Signature").iterator().next(), "myServiceKeyId", "hmac-sha256", - CollectionsHelper.listOf("date", REQUEST_TARGET, "host"), + List.of("date", REQUEST_TARGET, "host"), "SkeKVi6BoUd2/aUfXyIVIFAKEkKp7sg2KsS1UieB/+E="); } diff --git a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignatureTest.java b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignatureTest.java index 1fdcc6e0605..579a2e4327f 100644 --- a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignatureTest.java +++ b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/HttpSignatureTest.java @@ -24,7 +24,6 @@ import java.util.Optional; import java.util.TreeMap; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.Resource; import io.helidon.common.pki.KeyConfig; import io.helidon.security.SecurityEnvironment; @@ -124,9 +123,9 @@ public void testInvalid2() { @Test public void testSignRsa() { Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - headers.put("DATE", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); - headers.put("Authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); - headers.put("host", CollectionsHelper.listOf("example.org")); + headers.put("DATE", List.of("Thu, 08 Jun 2014 18:32:30 GMT")); + headers.put("Authorization", List.of("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); + headers.put("host", List.of("example.org")); SecurityEnvironment env = buildSecurityEnv("/my/resource", headers); OutboundTargetDefinition outboundDef = OutboundTargetDefinition.builder("rsa-key-12345") @@ -138,7 +137,7 @@ public void testSignRsa() { .signedHeaders(SignedHeadersConfig.builder() .defaultConfig(SignedHeadersConfig .HeadersConfig - .create(CollectionsHelper.listOf("date", + .create(List.of("date", "host", "(request-target)", "authorization"))) @@ -157,9 +156,9 @@ public void testSignRsa() { @Test public void testSignHmac() { Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - headers.put("DATE", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); - headers.put("Authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); - headers.put("host", CollectionsHelper.listOf("example.org")); + headers.put("DATE", List.of("Thu, 08 Jun 2014 18:32:30 GMT")); + headers.put("Authorization", List.of("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); + headers.put("host", List.of("example.org")); SecurityEnvironment env = buildSecurityEnv("/my/resource", headers); OutboundTargetDefinition outboundDef = OutboundTargetDefinition.builder("myServiceKeyId") @@ -167,7 +166,7 @@ public void testSignHmac() { .signedHeaders(SignedHeadersConfig.builder() .defaultConfig(SignedHeadersConfig .HeadersConfig - .create(CollectionsHelper.listOf("date", + .create(List.of("date", "host", "(request-target)", "authorization"))) @@ -190,7 +189,7 @@ public void testSignHmacAddHeaders() { .signedHeaders(SignedHeadersConfig.builder() .defaultConfig(SignedHeadersConfig .HeadersConfig - .create(CollectionsHelper.listOf("date", + .create(List.of("date", "host"))) .build()) .build(); @@ -220,9 +219,9 @@ public void testVerifyRsa() { signature.validate().ifPresent(Assertions::fail); Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - headers.put("DATE", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); - headers.put("Authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); - headers.put("host", CollectionsHelper.listOf("example.org")); + headers.put("DATE", List.of("Thu, 08 Jun 2014 18:32:30 GMT")); + headers.put("Authorization", List.of("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); + headers.put("host", List.of("example.org")); InboundClientDefinition inboundClientDef = InboundClientDefinition.builder("rsa-key-12345") .principalName("theService") @@ -235,7 +234,7 @@ public void testVerifyRsa() { signature.validate(buildSecurityEnv("/my/resource", headers), inboundClientDef, - CollectionsHelper.listOf("date")) + List.of("date")) .ifPresent(Assertions::fail); } @@ -248,9 +247,9 @@ public void testVerifyHmac() { signature.validate().ifPresent(Assertions::fail); Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - headers.put("DATE", CollectionsHelper.listOf("Thu, 08 Jun 2014 18:32:30 GMT")); - headers.put("Authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); - headers.put("host", CollectionsHelper.listOf("example.org")); + headers.put("DATE", List.of("Thu, 08 Jun 2014 18:32:30 GMT")); + headers.put("Authorization", List.of("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); + headers.put("host", List.of("example.org")); SecurityEnvironment env = buildSecurityEnv("/my/resource", headers); InboundClientDefinition inboundClientDef = InboundClientDefinition.builder("myServiceKeyId") @@ -260,7 +259,7 @@ public void testVerifyHmac() { signature.validate(env, inboundClientDef, - CollectionsHelper.listOf("date")) + List.of("date")) .ifPresent(Assertions::fail); } @@ -271,7 +270,7 @@ private void testValid(String validSignature) { assertThat(httpSignature.getKeyId(), is("rsa-key-1")); assertThat(httpSignature.getBase64Signature(), is("Base64(RSA-SHA256(signing string))")); assertThat(httpSignature.getHeaders(), - equalTo(CollectionsHelper.listOf("(request-target)", "host", "date", "digest", "content-length"))); + equalTo(List.of("(request-target)", "host", "date", "digest", "content-length"))); } } diff --git a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/SignedHeadersConfigTest.java b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/SignedHeadersConfigTest.java index a817e8718e0..3d600a0ae69 100644 --- a/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/SignedHeadersConfigTest.java +++ b/security/providers/http-sign/src/test/java/io/helidon/security/providers/httpsign/SignedHeadersConfigTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,6 @@ import java.util.Map; import java.util.TreeMap; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import org.hamcrest.CoreMatchers; @@ -51,11 +50,11 @@ public void testFromConfig() { @Test public void testFromBuilder() { SignedHeadersConfig shc = SignedHeadersConfig.builder() - .defaultConfig(SignedHeadersConfig.HeadersConfig.create(CollectionsHelper.listOf("date"))) + .defaultConfig(SignedHeadersConfig.HeadersConfig.create(List.of("date"))) .config("get", SignedHeadersConfig.HeadersConfig - .create(CollectionsHelper.listOf("date", REQUEST_TARGET, "host"), - CollectionsHelper.listOf("authorization"))) + .create(List.of("date", REQUEST_TARGET, "host"), + List.of("authorization"))) .build(); testThem(shc); @@ -74,7 +73,7 @@ private void testThem(SignedHeadersConfig shc) { assertThat(requiredHeaders, CoreMatchers.not(CoreMatchers.hasItems("authorization", REQUEST_TARGET, "host"))); //now let's add authorization to the request headers - headers.put("Authorization", CollectionsHelper.listOf("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); + headers.put("Authorization", List.of("basic dXNlcm5hbWU6cGFzc3dvcmQ=")); requiredHeaders = shc.headers("get", headers); // first check we get the mandatory ones even if they are not present in request assertThat(requiredHeaders, CoreMatchers.hasItems("date", REQUEST_TARGET, "host", "authorization")); diff --git a/security/providers/idcs-mapper/src/main/java/io/helidon/security/providers/idcs/mapper/IdcsMtRoleMapperProvider.java b/security/providers/idcs-mapper/src/main/java/io/helidon/security/providers/idcs/mapper/IdcsMtRoleMapperProvider.java index 74ed8f949bf..78183d80893 100644 --- a/security/providers/idcs-mapper/src/main/java/io/helidon/security/providers/idcs/mapper/IdcsMtRoleMapperProvider.java +++ b/security/providers/idcs-mapper/src/main/java/io/helidon/security/providers/idcs/mapper/IdcsMtRoleMapperProvider.java @@ -33,7 +33,6 @@ import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; import io.helidon.security.Grant; @@ -149,7 +148,7 @@ protected Subject enhance(Subject subject, () -> computeGrants(idcsMtContext.tenantId(), idcsMtContext.appId(), subject)) - .orElseGet(CollectionsHelper::listOf); + .orElseGet(List::of); List grants = new LinkedList<>(serverGrants); diff --git a/security/providers/jwt/src/test/java/io/helidon/security/providers/jwt/JwtProviderTest.java b/security/providers/jwt/src/test/java/io/helidon/security/providers/jwt/JwtProviderTest.java index 1756301b03c..2993f6765f1 100644 --- a/security/providers/jwt/src/test/java/io/helidon/security/providers/jwt/JwtProviderTest.java +++ b/security/providers/jwt/src/test/java/io/helidon/security/providers/jwt/JwtProviderTest.java @@ -20,10 +20,10 @@ import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.Base64; +import java.util.List; import java.util.Locale; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.Resource; import io.helidon.config.Config; import io.helidon.security.AuthenticationResponse; @@ -149,7 +149,7 @@ public void testEcBothWays() { assertThat(jwt.givenName(), is(Optional.of(givenName))); assertThat(jwt.fullName(), is(Optional.of(fullName))); assertThat(jwt.locale(), is(Optional.of(locale))); - assertThat(jwt.audience(), is(Optional.of(CollectionsHelper.listOf("audience.application.id")))); + assertThat(jwt.audience(), is(Optional.of(List.of("audience.application.id")))); assertThat(jwt.issuer(), is(Optional.of("jwt.example.com"))); assertThat(jwt.algorithm(), is(Optional.of(JwkEC.ALG_ES256))); Instant instant = jwt.issueTime().get(); @@ -362,7 +362,7 @@ public void testOctBothWays() { // stored as "name" attribute on principal, full name is stored as "name" in JWT assertThat(jwt.fullName(), is(Optional.empty())); assertThat(jwt.locale(), is(Optional.empty())); - assertThat(jwt.audience(), is(Optional.of(CollectionsHelper.listOf("audience.application.id")))); + assertThat(jwt.audience(), is(Optional.of(List.of("audience.application.id")))); assertThat(jwt.issuer(), is(Optional.of("jwt.example.com"))); assertThat(jwt.algorithm(), is(Optional.of(JwkOctet.ALG_HS256))); Instant instant = jwt.issueTime().get(); @@ -453,7 +453,7 @@ public void testRsaBothWays() { assertThat(jwt.givenName(), is(Optional.of(givenName))); assertThat(jwt.fullName(), is(Optional.of(fullName))); assertThat(jwt.locale(), is(Optional.of(locale))); - assertThat(jwt.audience(), is(Optional.of(CollectionsHelper.listOf("audience.application.id")))); + assertThat(jwt.audience(), is(Optional.of(List.of("audience.application.id")))); assertThat(jwt.issuer(), is(Optional.of("jwt.example.com"))); assertThat(jwt.algorithm(), is(Optional.of(JwkRSA.ALG_RS256))); diff --git a/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcProvider.java b/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcProvider.java index 721a5816f36..181773faa07 100644 --- a/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcProvider.java +++ b/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcProvider.java @@ -43,7 +43,6 @@ import javax.ws.rs.core.MultivaluedHashMap; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Errors; import io.helidon.common.http.Http; import io.helidon.config.Config; @@ -189,7 +188,7 @@ public static Builder builder() { @Override public Collection> supportedAnnotations() { - return CollectionsHelper.setOf(ScopeValidator.Scope.class, ScopeValidator.Scopes.class); + return Set.of(ScopeValidator.Scope.class, ScopeValidator.Scopes.class); } @Override @@ -377,10 +376,10 @@ private String errorHeader(String code, String description) { private String origUri(ProviderRequest providerRequest) { List origUri = providerRequest.env().headers() - .getOrDefault(Security.HEADER_ORIG_URI, CollectionsHelper.listOf()); + .getOrDefault(Security.HEADER_ORIG_URI, List.of()); if (origUri.isEmpty()) { - origUri = CollectionsHelper.listOf(providerRequest.env().targetUri().getPath()); + origUri = List.of(providerRequest.env().targetUri().getPath()); } return origUri.get(0); diff --git a/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcSupport.java b/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcSupport.java index 1bbae6676ad..b945a6d17fc 100644 --- a/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcSupport.java +++ b/security/providers/oidc/src/main/java/io/helidon/security/providers/oidc/OidcSupport.java @@ -31,7 +31,6 @@ import javax.ws.rs.core.MultivaluedHashMap; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.config.Config; import io.helidon.security.Security; @@ -159,10 +158,10 @@ private void addRequestAsHeader(ServerRequest req, ServerResponse res) { String query = req.query(); if ((null == query) || query.isEmpty()) { newHeaders.put(Security.HEADER_ORIG_URI, - CollectionsHelper.listOf(req.uri().getPath())); + List.of(req.uri().getPath())); } else { newHeaders.put(Security.HEADER_ORIG_URI, - CollectionsHelper.listOf(req.uri().getPath() + "?" + query)); + List.of(req.uri().getPath() + "?" + query)); } req.next(); diff --git a/security/providers/oidc/src/test/java/io/helidon/security/providers/oidc/OidcSupportTest.java b/security/providers/oidc/src/test/java/io/helidon/security/providers/oidc/OidcSupportTest.java index 35cd818e290..85d8eac029c 100644 --- a/security/providers/oidc/src/test/java/io/helidon/security/providers/oidc/OidcSupportTest.java +++ b/security/providers/oidc/src/test/java/io/helidon/security/providers/oidc/OidcSupportTest.java @@ -18,9 +18,9 @@ import java.net.URI; import java.util.List; +import java.util.Map; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; import io.helidon.security.EndpointConfig; @@ -78,7 +78,7 @@ class OidcSupportTest { .outboundConfig(OutboundConfig.builder() .addTarget(OutboundTarget.builder("disabled") .addHost("www.example.com") - .config(Config.create(ConfigSources.create(CollectionsHelper.mapOf( + .config(Config.create(ConfigSources.create(Map.of( "propagate", "false")))) .build()) diff --git a/security/security/src/main/java/io/helidon/security/EndpointConfig.java b/security/security/src/main/java/io/helidon/security/EndpointConfig.java index 6b868019b24..2d44e51649e 100644 --- a/security/security/src/main/java/io/helidon/security/EndpointConfig.java +++ b/security/security/src/main/java/io/helidon/security/EndpointConfig.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.security.spi.SecurityProvider; import io.helidon.security.util.AbacSupport; @@ -182,7 +181,7 @@ public List securityLevels() { public List combineAnnotations(Class annotationClass, AnnotationScope... scopes) { List result = new LinkedList<>(); - result.addAll((Collection) annotations(scopes).getOrDefault(annotationClass, CollectionsHelper.listOf())); + result.addAll((Collection) annotations(scopes).getOrDefault(annotationClass, List.of())); return result; } diff --git a/security/security/src/main/java/io/helidon/security/Security.java b/security/security/src/main/java/io/helidon/security/Security.java index 3ca0f539d6b..a0dce805db3 100644 --- a/security/security/src/main/java/io/helidon/security/Security.java +++ b/security/security/src/main/java/io/helidon/security/Security.java @@ -40,7 +40,6 @@ import java.util.logging.Logger; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.common.configurable.ThreadPoolSupplier; import io.helidon.config.Config; import io.helidon.security.internal.SecurityAuditEvent; @@ -77,7 +76,7 @@ public class Security { */ public static final String HEADER_ORIG_URI = "X_ORIG_URI_HEADER"; - private static final Set RESERVED_PROVIDER_KEYS = CollectionsHelper.setOf( + private static final Set RESERVED_PROVIDER_KEYS = Set.of( "name", "class", "is-authentication-provider", @@ -85,7 +84,7 @@ public class Security { "is-client-security-provider", "is-audit-provider"); - private static final Set CONFIG_INTERNAL_PREFIXES = CollectionsHelper.setOf( + private static final Set CONFIG_INTERNAL_PREFIXES = Set.of( "provider-policy", "providers", "environment" @@ -344,8 +343,8 @@ Optional resolveAtzProvider(String providerName) { List resolveOutboundProvider(String providerName) { if (null != providerName) { - return resolveProvider(OutboundSecurityProvider.class, providerName).map(CollectionsHelper::listOf) - .orElse(CollectionsHelper.listOf()); + return resolveProvider(OutboundSecurityProvider.class, providerName).map(List::of) + .orElse(List.of()); } return providerSelectionPolicy.selectOutboundProviders(); } diff --git a/security/security/src/main/java/io/helidon/security/SecurityContextImpl.java b/security/security/src/main/java/io/helidon/security/SecurityContextImpl.java index 50597d32567..410085a4da5 100644 --- a/security/security/src/main/java/io/helidon/security/SecurityContextImpl.java +++ b/security/security/src/main/java/io/helidon/security/SecurityContextImpl.java @@ -18,6 +18,7 @@ import java.util.Objects; import java.util.Optional; +import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.Lock; @@ -25,7 +26,6 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.Supplier; -import io.helidon.common.CollectionsHelper; import io.helidon.common.context.Contexts; import io.helidon.security.internal.SecurityAuditEvent; import io.helidon.security.spi.AuthorizationProvider; @@ -148,7 +148,7 @@ public boolean isUserInRole(String role) { return authorizationProvider.map(provider -> provider.isUserInRole(currentSubject, role)) .orElseGet(() -> user().map(Security::getRoles) - .orElse(CollectionsHelper.setOf()) + .orElse(Set.of()) .stream() .anyMatch(role::equals)); } diff --git a/security/security/src/main/java/io/helidon/security/SecurityEnvironment.java b/security/security/src/main/java/io/helidon/security/SecurityEnvironment.java index 94ae00fb5e6..826148a3d28 100644 --- a/security/security/src/main/java/io/helidon/security/SecurityEnvironment.java +++ b/security/security/src/main/java/io/helidon/security/SecurityEnvironment.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ import java.util.Optional; import java.util.TreeMap; -import io.helidon.common.CollectionsHelper; import io.helidon.security.util.AbacSupport; /** @@ -272,7 +271,7 @@ public Builder headers(Map> headers) { * @return this instance */ public Builder header(String header, String value) { - this.headers.put(header, CollectionsHelper.listOf(value)); + this.headers.put(header, List.of(value)); return this; } diff --git a/security/security/src/main/java/io/helidon/security/SecurityLevel.java b/security/security/src/main/java/io/helidon/security/SecurityLevel.java index 259cf4854f3..43727084e1e 100644 --- a/security/security/src/main/java/io/helidon/security/SecurityLevel.java +++ b/security/security/src/main/java/io/helidon/security/SecurityLevel.java @@ -25,7 +25,6 @@ import java.util.Objects; import io.helidon.common.Builder; -import io.helidon.common.CollectionsHelper; /** * Security level stores annotations bound to the specific class and method. @@ -81,11 +80,11 @@ private SecurityLevel(SecurityLevelBuilder builder) { public List filterAnnotations(Class annotationType, EndpointConfig.AnnotationScope scope) { switch (scope) { case CLASS: - return (List) classLevelAnnotations.getOrDefault(annotationType, CollectionsHelper.listOf()); + return (List) classLevelAnnotations.getOrDefault(annotationType, List.of()); case METHOD: - return (List) methodLevelAnnotations.getOrDefault(annotationType, CollectionsHelper.listOf()); + return (List) methodLevelAnnotations.getOrDefault(annotationType, List.of()); default: - return CollectionsHelper.listOf(); + return List.of(); } } diff --git a/security/security/src/main/java/io/helidon/security/SecurityResponse.java b/security/security/src/main/java/io/helidon/security/SecurityResponse.java index 824ac9b0b18..7ce7f0c9368 100644 --- a/security/security/src/main/java/io/helidon/security/SecurityResponse.java +++ b/security/security/src/main/java/io/helidon/security/SecurityResponse.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,7 +27,6 @@ import java.util.concurrent.TimeoutException; import io.helidon.common.Builder; -import io.helidon.common.CollectionsHelper; /** * Response from security provider (and security Module). @@ -275,7 +274,7 @@ public T requestHeaders(Map> headers) { * @return this instance */ public T requestHeader(String header, String value) { - requestHeaders.put(header, CollectionsHelper.listOf(value)); + requestHeaders.put(header, List.of(value)); return myInstance; } @@ -313,7 +312,7 @@ public T responseHeaders(Map> headers) { * @return this instance */ public T responseHeader(String header, String value) { - responseHeaders.put(header, CollectionsHelper.listOf(value)); + responseHeaders.put(header, List.of(value)); return myInstance; } diff --git a/security/security/src/main/java/io/helidon/security/Subject.java b/security/security/src/main/java/io/helidon/security/Subject.java index 4905e2a41b2..61348842105 100644 --- a/security/security/src/main/java/io/helidon/security/Subject.java +++ b/security/security/src/main/java/io/helidon/security/Subject.java @@ -28,7 +28,6 @@ import java.util.Set; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.security.util.AbacSupport; /** @@ -126,7 +125,7 @@ public List grants(Class grantType) { * @return list of grants of the specific type associated with this subject (may be empty) */ public List grantsByType(String grantType) { - return Collections.unmodifiableList(grantsByType.getOrDefault(grantType, CollectionsHelper.listOf())); + return Collections.unmodifiableList(grantsByType.getOrDefault(grantType, List.of())); } @Override diff --git a/security/security/src/main/java/io/helidon/security/spi/SecurityProvider.java b/security/security/src/main/java/io/helidon/security/spi/SecurityProvider.java index 62544e34bd2..a8c3bc12d3e 100644 --- a/security/security/src/main/java/io/helidon/security/spi/SecurityProvider.java +++ b/security/security/src/main/java/io/helidon/security/spi/SecurityProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,8 +18,8 @@ import java.lang.annotation.Annotation; import java.util.Collection; +import java.util.Set; -import io.helidon.common.CollectionsHelper; import io.helidon.security.EndpointConfig; import io.helidon.security.SecurityContext; @@ -40,7 +40,7 @@ public interface SecurityProvider { * @see EndpointConfig#combineAnnotations(Class, EndpointConfig.AnnotationScope...) */ default Collection> supportedAnnotations() { - return CollectionsHelper.setOf(); + return Set.of(); } /** @@ -53,7 +53,7 @@ default Collection> supportedAnnotations() { * @see EndpointConfig#config(String) */ default Collection supportedConfigKeys() { - return CollectionsHelper.setOf(); + return Set.of(); } /** @@ -66,7 +66,7 @@ default Collection supportedConfigKeys() { * @see EndpointConfig#instance(Class) */ default Collection> supportedCustomObjects() { - return CollectionsHelper.setOf(); + return Set.of(); } /** @@ -77,7 +77,7 @@ default Collection> supportedCustomObjects() { * @see EndpointConfig#abacAttribute(String) */ default Collection supportedAttributes() { - return CollectionsHelper.setOf(); + return Set.of(); } } diff --git a/security/security/src/test/java/io/helidon/security/CompositePolicyFlagsTest.java b/security/security/src/test/java/io/helidon/security/CompositePolicyFlagsTest.java index 2c2f22c0e59..89f0f263710 100644 --- a/security/security/src/test/java/io/helidon/security/CompositePolicyFlagsTest.java +++ b/security/security/src/test/java/io/helidon/security/CompositePolicyFlagsTest.java @@ -18,9 +18,9 @@ import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; -import io.helidon.common.CollectionsHelper; import io.helidon.security.SecurityResponse.SecurityStatus; import io.helidon.security.providers.PathBasedProvider; import io.helidon.security.providers.ResourceBasedProvider; @@ -334,7 +334,7 @@ private ProviderRequest request(String path, String resource) { SecurityEnvironment se = Mockito.mock(SecurityEnvironment.class); when(se.path()).thenReturn(Optional.of(path)); - when(se.headers()).thenReturn(CollectionsHelper.mapOf()); + when(se.headers()).thenReturn(Map.of()); when(se.abacAttribute("resourceType")).thenReturn(Optional.of(resource)); when(mock.env()).thenReturn(se); diff --git a/security/security/src/test/java/io/helidon/security/CompositePolicyTest.java b/security/security/src/test/java/io/helidon/security/CompositePolicyTest.java index cfa883edd38..37e4c5fcc5e 100644 --- a/security/security/src/test/java/io/helidon/security/CompositePolicyTest.java +++ b/security/security/src/test/java/io/helidon/security/CompositePolicyTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,6 @@ import java.util.Map; import java.util.concurrent.ExecutionException; -import io.helidon.common.CollectionsHelper; import io.helidon.security.spi.AuthenticationProvider; import io.helidon.security.spi.AuthorizationProvider; import io.helidon.security.spi.OutboundSecurityProvider; @@ -179,7 +178,7 @@ private ProviderRequest context(String path, String resource) { ProviderRequest mock = Mockito.mock(ProviderRequest.class); SecurityEnvironment se = SecurityEnvironment.builder(SecurityTime.create()) .path(path) - .headers(CollectionsHelper.mapOf()) + .headers(Map.of()) .addAttribute("resourceType", resource) .build(); diff --git a/security/security/src/test/java/io/helidon/security/DefaultAuditProviderTest.java b/security/security/src/test/java/io/helidon/security/DefaultAuditProviderTest.java index 3d989dc83af..5b9e5a4c2f5 100644 --- a/security/security/src/test/java/io/helidon/security/DefaultAuditProviderTest.java +++ b/security/security/src/test/java/io/helidon/security/DefaultAuditProviderTest.java @@ -23,7 +23,6 @@ import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.listOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.startsWith; import static org.hamcrest.MatcherAssert.assertThat; @@ -36,7 +35,7 @@ class DefaultAuditProviderTest { void testMessageFormatting() { DefaultAuditProvider provider = DefaultAuditProvider.create(Config.empty()); AuditEvent event = createEvent("Unit tests: first: \"%s\"; second: \"%s\"", - listOf(AuditEvent.AuditParam.plain("first", "data"), + List.of(AuditEvent.AuditParam.plain("first", "data"), AuditEvent.AuditParam.sensitive("second", "secret"))); String message = provider.formatMessage(event); @@ -48,7 +47,7 @@ void testMessageFormatting() { void testMessageFormattingTooManyParams() { DefaultAuditProvider provider = DefaultAuditProvider.create(Config.empty()); AuditEvent event = createEvent("Unit tests: first: \"%s\"; second: \"%s\"", - listOf(AuditEvent.AuditParam.plain("first", "data"), + List.of(AuditEvent.AuditParam.plain("first", "data"), AuditEvent.AuditParam.sensitive("second", "secret"), AuditEvent.AuditParam.plain("third", "thirdData"))); @@ -61,7 +60,7 @@ void testMessageFormattingTooManyParams() { void testMessageFormattingNotEnoughParams() { DefaultAuditProvider provider = DefaultAuditProvider.create(Config.empty()); AuditEvent event = createEvent("Unit tests: first: \"%s\"; second: \"%s\"", - listOf(AuditEvent.AuditParam.plain("first", "data"))); + List.of(AuditEvent.AuditParam.plain("first", "data"))); String message = provider.formatMessage(event); diff --git a/security/security/src/test/java/io/helidon/security/SubjectMappingTest.java b/security/security/src/test/java/io/helidon/security/SubjectMappingTest.java index 3b28fb95b20..f6b5d2daf01 100644 --- a/security/security/src/test/java/io/helidon/security/SubjectMappingTest.java +++ b/security/security/src/test/java/io/helidon/security/SubjectMappingTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; -import io.helidon.common.CollectionsHelper; import io.helidon.security.spi.AuthenticationProvider; import io.helidon.security.spi.SubjectMappingProvider; @@ -72,8 +72,8 @@ void testNoMapping() { Subject subject = authenticate.user().get(); assertThat(subject.principal().getName(), is("jarda")); - assertThat(Security.getRoles(subject), is(CollectionsHelper.setOf())); - assertThat(subject.grantsByType(CUSTOM_GRANT_TYPE), is(CollectionsHelper.listOf())); + assertThat(Security.getRoles(subject), is(Set.of())); + assertThat(subject.grantsByType(CUSTOM_GRANT_TYPE), is(List.of())); } @Test @@ -89,14 +89,14 @@ void testUserMapping() { Subject subject = authenticate.user().get(); assertThat(subject.principal().getName(), is("jarda")); - assertThat(Security.getRoles(subject), is(CollectionsHelper.setOf("jarda_role"))); + assertThat(Security.getRoles(subject), is(Set.of("jarda_role"))); List roleGrants = subject.grants(Role.class); assertThat("There should be exactly one role granted", roleGrants.size(), is(1)); Role role = roleGrants.get(0); assertThat(role.getName(), is("jarda_role")); assertThat(role.origin(), is(MAPPER_ORIGIN)); - assertThat(subject.grantsByType("custom-grant-type"), not(CollectionsHelper.listOf())); + assertThat(subject.grantsByType("custom-grant-type"), not(List.of())); List customGrants = subject.grantsByType(CUSTOM_GRANT_TYPE); assertThat("There should be exactly one role granted", customGrants.size(), is(1)); Grant grant = customGrants.get(0); diff --git a/security/security/src/test/java/io/helidon/security/providers/PathBasedProvider.java b/security/security/src/test/java/io/helidon/security/providers/PathBasedProvider.java index d86bdf4ebe5..eb19b649a48 100644 --- a/security/security/src/test/java/io/helidon/security/providers/PathBasedProvider.java +++ b/security/security/src/test/java/io/helidon/security/providers/PathBasedProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ package io.helidon.security.providers; +import java.util.List; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; @@ -31,9 +33,6 @@ import io.helidon.security.spi.AuthorizationProvider; import io.helidon.security.spi.OutboundSecurityProvider; -import static io.helidon.common.CollectionsHelper.listOf; -import static io.helidon.common.CollectionsHelper.mapOf; - /** * Provider authenticating and propagating security based on path. */ @@ -102,11 +101,11 @@ public CompletionStage outboundSecurity(ProviderReques return CompletableFuture.completedFuture(providerRequest.env().path().map(path -> { switch (path) { case "/jack": - return OutboundSecurityResponse.withHeaders(mapOf("path", listOf("path-jack"))); + return OutboundSecurityResponse.withHeaders(Map.of("path", List.of("path-jack"))); case "/jill": - return OutboundSecurityResponse.withHeaders(mapOf("path", listOf("path-jill"))); + return OutboundSecurityResponse.withHeaders(Map.of("path", List.of("path-jill"))); case "/service": - return OutboundSecurityResponse.withHeaders(mapOf("path", listOf("path-aService"))); + return OutboundSecurityResponse.withHeaders(Map.of("path", List.of("path-aService"))); case "/fail": return OutboundSecurityResponse.builder().status(SecurityResponse.SecurityStatus.FAILURE) .description("path-Intentional fail").build(); diff --git a/security/security/src/test/java/io/helidon/security/providers/ResourceBasedProvider.java b/security/security/src/test/java/io/helidon/security/providers/ResourceBasedProvider.java index c37150fc7fe..9d13d4f99f9 100644 --- a/security/security/src/test/java/io/helidon/security/providers/ResourceBasedProvider.java +++ b/security/security/src/test/java/io/helidon/security/providers/ResourceBasedProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ package io.helidon.security.providers; +import java.util.List; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; @@ -32,9 +34,6 @@ import io.helidon.security.spi.AuthorizationProvider; import io.helidon.security.spi.OutboundSecurityProvider; -import static io.helidon.common.CollectionsHelper.listOf; -import static io.helidon.common.CollectionsHelper.mapOf; - /** * Provider authenticating and propagating security based on resource type. */ @@ -128,14 +127,17 @@ public CompletionStage outboundSecurity(ProviderReques .map(resource -> { switch (resource) { case "jack": - return OutboundSecurityResponse.withHeaders(mapOf("resource", - listOf("resource-jack"))); + return OutboundSecurityResponse + .withHeaders(Map.of("resource", + List.of("resource-jack"))); case "jill": - return OutboundSecurityResponse.withHeaders(mapOf("resource", - listOf("resource-jill"))); + return OutboundSecurityResponse + .withHeaders(Map.of("resource", + List.of("resource-jill"))); case "service": - return OutboundSecurityResponse.withHeaders(mapOf("resource", - listOf("resource-aService"))); + return OutboundSecurityResponse + .withHeaders(Map.of("resource", + List.of("resource-aService"))); case "fail": return OutboundSecurityResponse.builder() .status(SecurityResponse.SecurityStatus.FAILURE) diff --git a/security/util/src/test/java/io/helidon/security/util/TokenHandlerTest.java b/security/util/src/test/java/io/helidon/security/util/TokenHandlerTest.java index d5768f3a94c..a72fdb04550 100644 --- a/security/util/src/test/java/io/helidon/security/util/TokenHandlerTest.java +++ b/security/util/src/test/java/io/helidon/security/util/TokenHandlerTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import java.util.TreeMap; import java.util.regex.Pattern; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.config.ConfigSources; @@ -119,7 +118,7 @@ public void testAddHeader() { List authorization = headers.get("Authorization"); assertThat(authorization.size(), is(2)); - assertThat(authorization, is(CollectionsHelper.listOf("firstToken", "secondToken"))); + assertThat(authorization, is(List.of("firstToken", "secondToken"))); assertThat(tp.tokenHeader(), is("Authorization")); } diff --git a/tests/apps/bookstore/bookstore-mp/src/main/java/io/helidon/tests/apps/bookstore/mp/BookApplication.java b/tests/apps/bookstore/bookstore-mp/src/main/java/io/helidon/tests/apps/bookstore/mp/BookApplication.java index da65dcf9896..94d06dbb8e8 100644 --- a/tests/apps/bookstore/bookstore-mp/src/main/java/io/helidon/tests/apps/bookstore/mp/BookApplication.java +++ b/tests/apps/bookstore/bookstore-mp/src/main/java/io/helidon/tests/apps/bookstore/mp/BookApplication.java @@ -16,12 +16,11 @@ package io.helidon.tests.apps.bookstore.mp; +import java.util.Set; + import javax.enterprise.context.ApplicationScoped; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; -import java.util.Set; - -import io.helidon.common.CollectionsHelper; @ApplicationScoped @ApplicationPath("/") @@ -29,6 +28,6 @@ public class BookApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(BookResource.class); + return Set.of(BookResource.class); } } diff --git a/tests/functional/context-propagation/src/main/java/io/helidon/tests/functional/context/hello/HelloApplication.java b/tests/functional/context-propagation/src/main/java/io/helidon/tests/functional/context/hello/HelloApplication.java index f7d79279f52..e90884abb2a 100644 --- a/tests/functional/context-propagation/src/main/java/io/helidon/tests/functional/context/hello/HelloApplication.java +++ b/tests/functional/context-propagation/src/main/java/io/helidon/tests/functional/context/hello/HelloApplication.java @@ -21,8 +21,6 @@ import javax.enterprise.context.ApplicationScoped; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * HelloApplication class. */ @@ -30,6 +28,6 @@ public class HelloApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(HelloResource.class); + return Set.of(HelloResource.class); } } diff --git a/tests/functional/jax-rs-subresource/src/main/java/io/helidon/tests/functional/jaxrs/subresource/MpApplication.java b/tests/functional/jax-rs-subresource/src/main/java/io/helidon/tests/functional/jaxrs/subresource/MpApplication.java index a63dbbd4dc8..8e3a8ddb5a3 100644 --- a/tests/functional/jax-rs-subresource/src/main/java/io/helidon/tests/functional/jaxrs/subresource/MpApplication.java +++ b/tests/functional/jax-rs-subresource/src/main/java/io/helidon/tests/functional/jaxrs/subresource/MpApplication.java @@ -20,8 +20,6 @@ import javax.enterprise.context.ApplicationScoped; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * TODO javadoc. */ @@ -29,6 +27,6 @@ public class MpApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(MpMainResource.class, MpSubResource.class); + return Set.of(MpMainResource.class, MpSubResource.class); } } diff --git a/tests/functional/multiport/src/main/java/io/helidon/tests/functional/multiport/MpApplication.java b/tests/functional/multiport/src/main/java/io/helidon/tests/functional/multiport/MpApplication.java index 12e0814a07e..f50ba9fbfc1 100644 --- a/tests/functional/multiport/src/main/java/io/helidon/tests/functional/multiport/MpApplication.java +++ b/tests/functional/multiport/src/main/java/io/helidon/tests/functional/multiport/MpApplication.java @@ -20,8 +20,6 @@ import javax.enterprise.context.ApplicationScoped; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Application to expose the resource. */ @@ -29,6 +27,6 @@ public class MpApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(MpResource.class); + return Set.of(MpResource.class); } } diff --git a/tests/functional/multiport/src/test/java/io/helidon/tests/functional/multiport/MainTest.java b/tests/functional/multiport/src/test/java/io/helidon/tests/functional/multiport/MainTest.java index 5d6ab03d411..95c6d4d3ea5 100644 --- a/tests/functional/multiport/src/test/java/io/helidon/tests/functional/multiport/MainTest.java +++ b/tests/functional/multiport/src/test/java/io/helidon/tests/functional/multiport/MainTest.java @@ -16,6 +16,7 @@ package io.helidon.tests.functional.multiport; +import java.util.List; import java.util.stream.Stream; import javax.ws.rs.client.Client; @@ -24,8 +25,6 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.params.ParameterizedTest; @@ -58,7 +57,7 @@ static void destroyClass() { } static Stream initParams() { - return CollectionsHelper.listOf( + return List.of( new Params(7001, true, false, false), new Params(8001, false, false, true), new Params(8002, false, true, false), diff --git a/tests/integration/mp-security-client/src/main/java/io/helidon/tests/integration/mp/security/client/TestApplication.java b/tests/integration/mp-security-client/src/main/java/io/helidon/tests/integration/mp/security/client/TestApplication.java index 2779877af55..5e4f88b5b49 100644 --- a/tests/integration/mp-security-client/src/main/java/io/helidon/tests/integration/mp/security/client/TestApplication.java +++ b/tests/integration/mp-security-client/src/main/java/io/helidon/tests/integration/mp/security/client/TestApplication.java @@ -20,8 +20,6 @@ import javax.enterprise.context.ApplicationScoped; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Jax-rs application. */ @@ -29,6 +27,6 @@ public class TestApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(ClientResource.class, ServerResource.class); + return Set.of(ClientResource.class, ServerResource.class); } } diff --git a/tests/integration/zipkin-mp-2.2/src/main/java/io/helidon/tests/integration/zipkin/mp22/MpApplication.java b/tests/integration/zipkin-mp-2.2/src/main/java/io/helidon/tests/integration/zipkin/mp22/MpApplication.java index e957899383c..0fe512b3cb8 100644 --- a/tests/integration/zipkin-mp-2.2/src/main/java/io/helidon/tests/integration/zipkin/mp22/MpApplication.java +++ b/tests/integration/zipkin-mp-2.2/src/main/java/io/helidon/tests/integration/zipkin/mp22/MpApplication.java @@ -20,8 +20,6 @@ import javax.enterprise.context.ApplicationScoped; import javax.ws.rs.core.Application; -import io.helidon.common.CollectionsHelper; - /** * Application to expose the resource. */ @@ -29,6 +27,6 @@ public class MpApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(MpResourceImpl.class); + return Set.of(MpResourceImpl.class); } } diff --git a/tracing/jaeger/src/main/java/io/helidon/tracing/jaeger/JaegerTracerBuilder.java b/tracing/jaeger/src/main/java/io/helidon/tracing/jaeger/JaegerTracerBuilder.java index 482156c3ea9..f1cc358965b 100644 --- a/tracing/jaeger/src/main/java/io/helidon/tracing/jaeger/JaegerTracerBuilder.java +++ b/tracing/jaeger/src/main/java/io/helidon/tracing/jaeger/JaegerTracerBuilder.java @@ -23,7 +23,6 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.tracing.TracerBuilder; @@ -326,7 +325,7 @@ public JaegerTracerBuilder config(Config config) { config.get("tags").detach() .asMap() - .orElseGet(CollectionsHelper::mapOf) + .orElseGet(Map::of) .forEach(this::addTracerTag); config.get("boolean-tags") diff --git a/tracing/jaeger/src/test/java/io/helidon/tracing/jaeger/JaegerTracerBuilderTest.java b/tracing/jaeger/src/test/java/io/helidon/tracing/jaeger/JaegerTracerBuilderTest.java index 9db90460390..599f00bccee 100644 --- a/tracing/jaeger/src/test/java/io/helidon/tracing/jaeger/JaegerTracerBuilderTest.java +++ b/tracing/jaeger/src/test/java/io/helidon/tracing/jaeger/JaegerTracerBuilderTest.java @@ -16,6 +16,9 @@ package io.helidon.tracing.jaeger; +import java.util.List; +import java.util.Map; + import io.helidon.config.Config; import io.helidon.tracing.TracerBuilder; @@ -25,8 +28,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.listOf; -import static io.helidon.common.CollectionsHelper.mapOf; import static io.helidon.tracing.jaeger.JaegerTracerBuilder.DEFAULT_HTTP_HOST; import static io.helidon.tracing.jaeger.JaegerTracerBuilder.DEFAULT_HTTP_PATH; import static io.helidon.tracing.jaeger.JaegerTracerBuilder.DEFAULT_HTTP_PORT; @@ -67,7 +68,7 @@ void testConfigDefaults() { JaegerTracerBuilder jBuilder = (JaegerTracerBuilder) builder; assertThat(jBuilder.serviceName(), is("helidon-service")); - assertThat("Tags", jBuilder.tags(), is(mapOf())); + assertThat("Tags", jBuilder.tags(), is(Map.of())); assertThat("Protocol", jBuilder.protocol(), nullValue()); assertThat("Host", jBuilder.host(), nullValue()); assertThat("Port", jBuilder.port(), nullValue()); @@ -143,14 +144,14 @@ void testFullHttp() { assertThat("Token", jBuilder.token(), is("token")); assertThat("Username", jBuilder.username(), is("user")); assertThat("Password", jBuilder.password(), is("pass")); - assertThat("Propagations", jBuilder.propagations(), is(listOf(Configuration.Propagation.JAEGER))); + assertThat("Propagations", jBuilder.propagations(), is(List.of(Configuration.Propagation.JAEGER))); assertThat("Reporter log spans", jBuilder.reporterLogSpans(), is(false)); assertThat("Reporter max queue size", jBuilder.reporterMaxQueueSize(), is(42)); assertThat("Reporter flush intervals", jBuilder.reporterFlushIntervalMillis(), is(10001L)); assertThat("Sampler type", jBuilder.samplerType(), is(JaegerTracerBuilder.SamplerType.REMOTE)); assertThat("Sampler param", jBuilder.samplerParam(), is(0.5)); assertThat("Sampler manager", jBuilder.samplerManager(), is("localhost:47877")); - assertThat("Tags", jBuilder.tags(), is(mapOf( + assertThat("Tags", jBuilder.tags(), is(Map.of( "tag1", "tag1-value", "tag2", "tag2-value", "tag3", "true", @@ -181,7 +182,7 @@ void testFullHttp() { assertThat(sampler.getParam(), is(0.5)); assertThat(sampler.getType(), is("remote")); - assertThat(jaegerConfig.getTracerTags(), is(mapOf( + assertThat(jaegerConfig.getTracerTags(), is(Map.of( "tag1", "tag1-value", "tag2", "tag2-value", "tag3", "true", @@ -202,6 +203,6 @@ void testJaegerPropagations() { assertThat(jBuilder.serviceName(), is("helidon-propagations")); assertThat("Propagations", jBuilder.propagations(), - is(listOf(Configuration.Propagation.JAEGER, Configuration.Propagation.B3))); + is(List.of(Configuration.Propagation.JAEGER, Configuration.Propagation.B3))); } } \ No newline at end of file diff --git a/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java b/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java index b9a1f0fb68d..fce3e958dbb 100644 --- a/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java +++ b/tracing/jersey-client/src/main/java/io/helidon/tracing/jersey/client/ClientTracingFilter.java @@ -33,7 +33,6 @@ import javax.ws.rs.client.ClientResponseFilter; import javax.ws.rs.core.MultivaluedMap; -import io.helidon.common.CollectionsHelper; import io.helidon.common.context.Contexts; import io.helidon.tracing.config.SpanTracingConfig; import io.helidon.tracing.config.TracingConfigUtil; @@ -48,8 +47,6 @@ import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; -import static io.helidon.common.CollectionsHelper.listOf; - /** * This filter adds tracing information the the associated JAX-RS client call based on the provided properties. *

@@ -140,7 +137,7 @@ public class ClientTracingFilter implements ClientRequestFilter, ClientResponseF static final String SPAN_PROPERTY_NAME = ClientTracingFilter.class.getName() + ".span"; - private static final List PROPAGATED_HEADERS = listOf(X_REQUEST_ID, X_OT_SPAN_CONTEXT); + private static final List PROPAGATED_HEADERS = List.of(X_REQUEST_ID, X_OT_SPAN_CONTEXT); private static final int HTTP_STATUS_ERROR_THRESHOLD = 400; private static final int HTTP_STATUS_SERVER_ERROR_THRESHOLD = 500; @@ -230,7 +227,7 @@ private boolean tracingDisabled(ClientRequestContext requestContext, private Map> findInboundHeaders(Optional tracingContext) { return tracingContext.map(TracingContext::inboundHeaders) - .orElse(CollectionsHelper.mapOf()); + .orElse(Map.of()); } private Map> updateOutboundHeaders(Map> outboundHeaders, @@ -255,7 +252,7 @@ public void filter(ClientRequestContext requestContext, ClientResponseContext re Tags.HTTP_STATUS.set(span, status); if (status >= HTTP_STATUS_ERROR_THRESHOLD) { Tags.ERROR.set(span, true); - span.log(CollectionsHelper.mapOf("event", + span.log(Map.of("event", "error", "message", "Response HTTP status: " + status, @@ -323,8 +320,7 @@ private Map> tracingHeaders(Tracer tracer, Span currentSpan return new HashMap<>(tracerHeaders.entrySet() .stream() .collect(Collectors.toMap(Map.Entry::getKey, - entry -> CollectionsHelper - .listOf(entry.getValue())))); + entry -> List.of(entry.getValue())))); } private Span createSpan(ClientRequestContext requestContext, diff --git a/tracing/jersey/src/main/java/io/helidon/tracing/jersey/AbstractTracingFilter.java b/tracing/jersey/src/main/java/io/helidon/tracing/jersey/AbstractTracingFilter.java index 5dac4b44c0b..5c15c298347 100644 --- a/tracing/jersey/src/main/java/io/helidon/tracing/jersey/AbstractTracingFilter.java +++ b/tracing/jersey/src/main/java/io/helidon/tracing/jersey/AbstractTracingFilter.java @@ -16,6 +16,7 @@ package io.helidon.tracing.jersey; import java.net.URI; +import java.util.Map; import javax.ws.rs.ConstrainedTo; import javax.ws.rs.RuntimeType; @@ -25,7 +26,6 @@ import javax.ws.rs.container.ContainerResponseFilter; import javax.ws.rs.container.PreMatching; -import io.helidon.common.CollectionsHelper; import io.helidon.common.context.Context; import io.helidon.common.context.Contexts; import io.helidon.tracing.config.SpanTracingConfig; @@ -140,7 +140,7 @@ public void filter(ContainerRequestContext requestContext, ContainerResponseCont case CLIENT_ERROR: case SERVER_ERROR: Tags.ERROR.set(span, true); - span.log(CollectionsHelper.mapOf("event", "error")); + span.log(Map.of("event", "error")); break; default: break; diff --git a/tracing/tests/it-tracing-client-zipkin/src/test/java/io/helidon/tracing/tests/it1/OpentraceableClientE2ETest.java b/tracing/tests/it-tracing-client-zipkin/src/test/java/io/helidon/tracing/tests/it1/OpentraceableClientE2ETest.java index 8c07b36b716..459b80505ac 100644 --- a/tracing/tests/it-tracing-client-zipkin/src/test/java/io/helidon/tracing/tests/it1/OpentraceableClientE2ETest.java +++ b/tracing/tests/it-tracing-client-zipkin/src/test/java/io/helidon/tracing/tests/it1/OpentraceableClientE2ETest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package io.helidon.tracing.tests.it1; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; @@ -28,7 +29,6 @@ import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Response; -import io.helidon.common.CollectionsHelper; import io.helidon.tracing.jersey.client.ClientTracingFilter; import io.helidon.tracing.zipkin.ZipkinTracer; import io.helidon.webserver.Routing; @@ -75,7 +75,7 @@ private static Tracer tracer(String serviceName) { .build(); // use this to create an OpenTracing Tracer - return new ZipkinTracer(BraveTracer.create(braveTracing), CollectionsHelper.listOf()); + return new ZipkinTracer(BraveTracer.create(braveTracing), List.of()); } private static WebServer startWebServer() throws InterruptedException, ExecutionException, TimeoutException { diff --git a/tracing/tracing/src/test/java/io/helidon/tracing/TagTest.java b/tracing/tracing/src/test/java/io/helidon/tracing/TagTest.java index e40eb9ba012..fed0730b41d 100644 --- a/tracing/tracing/src/test/java/io/helidon/tracing/TagTest.java +++ b/tracing/tracing/src/test/java/io/helidon/tracing/TagTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,8 +19,6 @@ import java.math.BigInteger; import java.util.Map; -import io.helidon.common.CollectionsHelper; - import io.opentracing.mock.MockSpan; import io.opentracing.mock.MockTracer; import org.junit.jupiter.api.BeforeAll; @@ -125,7 +123,7 @@ private void testApply(Tag theTag) { Map tags = span.tags(); - assertThat(tags, is(CollectionsHelper.mapOf(theTag.key(), theTag.value()))); + assertThat(tags, is(Map.of(theTag.key(), theTag.value()))); } private void testValue(Tag theTag, String key, T value) { diff --git a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracerBuilder.java b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracerBuilder.java index 99a28d4c0ef..664e734267f 100644 --- a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracerBuilder.java +++ b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracerBuilder.java @@ -21,9 +21,9 @@ import java.net.URISyntaxException; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.tracing.Tag; import io.helidon.tracing.TracerBuilder; @@ -250,7 +250,7 @@ public ZipkinTracerBuilder config(Config config) { config.get("tags").detach() .asMap() - .orElseGet(CollectionsHelper::mapOf) + .orElseGet(Map::of) .forEach(this::addTracerTag); config.get("boolean-tags") diff --git a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracerProvider.java b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracerProvider.java index 7a804d5c163..b769354d878 100644 --- a/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracerProvider.java +++ b/tracing/zipkin/src/main/java/io/helidon/tracing/zipkin/ZipkinTracerProvider.java @@ -22,7 +22,6 @@ import javax.annotation.Priority; -import io.helidon.common.CollectionsHelper; import io.helidon.common.Prioritized; import io.helidon.tracing.TracerBuilder; import io.helidon.tracing.spi.TracerProvider; @@ -31,8 +30,6 @@ import io.opentracing.SpanContext; import io.opentracing.Tracer; -import static io.helidon.common.CollectionsHelper.listOf; - /** * Zipkin java service. */ @@ -50,7 +47,7 @@ public class ZipkinTracerProvider implements TracerProvider { private static final Logger LOGGER = Logger.getLogger(ZipkinTracerProvider.class.getName()); private static final List TRACING_CONTEXT_PROPAGATION_HEADERS = - listOf(X_OT_SPAN_CONTEXT, X_B3_TRACE_ID, X_B3_SPAN_ID, X_B3_PARENT_SPAN_ID, X_B3_SAMPLED, X_B3_FLAGS); + List.of(X_OT_SPAN_CONTEXT, X_B3_TRACE_ID, X_B3_SPAN_ID, X_B3_PARENT_SPAN_ID, X_B3_SAMPLED, X_B3_FLAGS); @Override public TracerBuilder createBuilder() { @@ -113,7 +110,7 @@ private void fixXOtSpanContext(Map> map) { String result = String.join(";", split); LOGGER.fine(() -> X_OT_SPAN_CONTEXT + " header fixed: " + value + " -> " + result); - map.put(X_OT_SPAN_CONTEXT, CollectionsHelper.listOf(result)); + map.put(X_OT_SPAN_CONTEXT, List.of(result)); } private static void substitute(Map> map, String[] split, String key, int i) { diff --git a/tracing/zipkin/src/test/java/io/helidon/tracing/zipkin/ZipkinTracerBuilderTest.java b/tracing/zipkin/src/test/java/io/helidon/tracing/zipkin/ZipkinTracerBuilderTest.java index 1f4da2cab8e..9f88c7fa7d1 100644 --- a/tracing/zipkin/src/test/java/io/helidon/tracing/zipkin/ZipkinTracerBuilderTest.java +++ b/tracing/zipkin/src/test/java/io/helidon/tracing/zipkin/ZipkinTracerBuilderTest.java @@ -16,7 +16,8 @@ package io.helidon.tracing.zipkin; -import io.helidon.common.CollectionsHelper; +import java.util.List; + import io.helidon.config.Config; import io.helidon.tracing.Tag; import io.helidon.tracing.TracerBuilder; @@ -50,7 +51,7 @@ void testConfigDefaults() { ZipkinTracerBuilder zBuilder = (ZipkinTracerBuilder) builder; - assertThat(zBuilder.tags(), is(CollectionsHelper.listOf())); + assertThat(zBuilder.tags(), is(List.of())); assertThat(zBuilder.serviceName(), is("helidon-service")); assertThat(zBuilder.protocol(), is(ZipkinTracerBuilder.DEFAULT_PROTOCOL)); assertThat(zBuilder.host(), is(ZipkinTracerBuilder.DEFAULT_ZIPKIN_HOST)); @@ -68,7 +69,7 @@ void testConfigDisabled() { ZipkinTracerBuilder zBuilder = (ZipkinTracerBuilder) builder; - assertThat(zBuilder.tags(), is(CollectionsHelper.listOf())); + assertThat(zBuilder.tags(), is(List.of())); assertThat(zBuilder.serviceName(), is("helidon-service")); assertThat(zBuilder.protocol(), is(ZipkinTracerBuilder.DEFAULT_PROTOCOL)); assertThat(zBuilder.host(), is(ZipkinTracerBuilder.DEFAULT_ZIPKIN_HOST)); @@ -89,7 +90,7 @@ void testConfigDisabledNoService() { ZipkinTracerBuilder zBuilder = (ZipkinTracerBuilder) builder; - assertThat(zBuilder.tags(), is(CollectionsHelper.listOf())); + assertThat(zBuilder.tags(), is(List.of())); assertThat(zBuilder.serviceName(), nullValue()); assertThat(zBuilder.protocol(), is(ZipkinTracerBuilder.DEFAULT_PROTOCOL)); assertThat(zBuilder.host(), is(ZipkinTracerBuilder.DEFAULT_ZIPKIN_HOST)); diff --git a/tracing/zipkin/src/test/java/io/helidon/tracing/zipkin/ZipkinTracerProviderTest.java b/tracing/zipkin/src/test/java/io/helidon/tracing/zipkin/ZipkinTracerProviderTest.java index dd3ff042fc6..9e37886bb16 100644 --- a/tracing/zipkin/src/test/java/io/helidon/tracing/zipkin/ZipkinTracerProviderTest.java +++ b/tracing/zipkin/src/test/java/io/helidon/tracing/zipkin/ZipkinTracerProviderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,14 +19,12 @@ import java.util.List; import java.util.Map; -import io.helidon.common.CollectionsHelper; import io.helidon.tracing.TracerBuilder; import io.opentracing.mock.MockSpan; import io.opentracing.mock.MockTracer; import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.listOf; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -54,13 +52,13 @@ void testContextInjection() { String traceId = "0000816c055dc421"; ZipkinTracerProvider provider = new ZipkinTracerProvider(); - Map> inboundHeaders = CollectionsHelper.mapOf( - ZipkinTracerProvider.X_OT_SPAN_CONTEXT, listOf("0000816c055dc421;0000816c055dc421;0000000000000000;sr"), - ZipkinTracerProvider.X_B3_PARENT_SPAN_ID, listOf(parentSpanId), - ZipkinTracerProvider.X_B3_SPAN_ID, listOf(spanId), - ZipkinTracerProvider.X_B3_TRACE_ID, listOf(traceId) + Map> inboundHeaders = Map.of( + ZipkinTracerProvider.X_OT_SPAN_CONTEXT, List.of("0000816c055dc421;0000816c055dc421;0000000000000000;sr"), + ZipkinTracerProvider.X_B3_PARENT_SPAN_ID, List.of(parentSpanId), + ZipkinTracerProvider.X_B3_SPAN_ID, List.of(spanId), + ZipkinTracerProvider.X_B3_TRACE_ID, List.of(traceId) ); - Map> outboundHeaders = CollectionsHelper.mapOf(); + Map> outboundHeaders = Map.of(); outboundHeaders = provider.updateOutboundHeaders(span, mt, parent.context(), @@ -69,16 +67,16 @@ ZipkinTracerProvider.X_B3_TRACE_ID, listOf(traceId) // all should be propagated, X_OT should be fixed List values = outboundHeaders.get(ZipkinTracerProvider.X_OT_SPAN_CONTEXT); - assertThat(values, is(listOf("0000816c055dc421;521c61ede905945f;51b3b1a413dce011;sr"))); + assertThat(values, is(List.of("0000816c055dc421;521c61ede905945f;51b3b1a413dce011;sr"))); values = outboundHeaders.get(ZipkinTracerProvider.X_B3_PARENT_SPAN_ID); - assertThat(values, is(listOf(parentSpanId))); + assertThat(values, is(List.of(parentSpanId))); values = outboundHeaders.get(ZipkinTracerProvider.X_B3_SPAN_ID); - assertThat(values, is(listOf(spanId))); + assertThat(values, is(List.of(spanId))); values = outboundHeaders.get(ZipkinTracerProvider.X_B3_TRACE_ID); - assertThat(values, is(listOf(traceId))); + assertThat(values, is(List.of(traceId))); } @Test @@ -94,17 +92,17 @@ void testContextInjectionPreserveHeaders() { String traceId = "0000816c055dc421"; ZipkinTracerProvider provider = new ZipkinTracerProvider(); - Map> outboundHeaders = CollectionsHelper.mapOf( - ZipkinTracerProvider.X_OT_SPAN_CONTEXT, listOf("0000816c055dc421;0000816c055dc421;0000000000000000;sr"), - ZipkinTracerProvider.X_B3_PARENT_SPAN_ID, listOf(parentSpanId), - ZipkinTracerProvider.X_B3_SPAN_ID, listOf(spanId), - ZipkinTracerProvider.X_B3_TRACE_ID, listOf(traceId) + Map> outboundHeaders = Map.of( + ZipkinTracerProvider.X_OT_SPAN_CONTEXT, List.of("0000816c055dc421;0000816c055dc421;0000000000000000;sr"), + ZipkinTracerProvider.X_B3_PARENT_SPAN_ID, List.of(parentSpanId), + ZipkinTracerProvider.X_B3_SPAN_ID, List.of(spanId), + ZipkinTracerProvider.X_B3_TRACE_ID, List.of(traceId) ); - Map> inboundHeaders = CollectionsHelper.mapOf( - ZipkinTracerProvider.X_OT_SPAN_CONTEXT, listOf("14"), - ZipkinTracerProvider.X_B3_PARENT_SPAN_ID, listOf("15"), - ZipkinTracerProvider.X_B3_SPAN_ID, listOf("16"), - ZipkinTracerProvider.X_B3_TRACE_ID, listOf("17") + Map> inboundHeaders = Map.of( + ZipkinTracerProvider.X_OT_SPAN_CONTEXT, List.of("14"), + ZipkinTracerProvider.X_B3_PARENT_SPAN_ID, List.of("15"), + ZipkinTracerProvider.X_B3_SPAN_ID, List.of("16"), + ZipkinTracerProvider.X_B3_TRACE_ID, List.of("17") ); outboundHeaders = provider.updateOutboundHeaders(span, mt, @@ -114,15 +112,15 @@ ZipkinTracerProvider.X_B3_TRACE_ID, listOf("17") // all should be propagated, X_OT should be fixed List values = outboundHeaders.get(ZipkinTracerProvider.X_OT_SPAN_CONTEXT); - assertThat(values, is(listOf("0000816c055dc421;521c61ede905945f;51b3b1a413dce011;sr"))); + assertThat(values, is(List.of("0000816c055dc421;521c61ede905945f;51b3b1a413dce011;sr"))); values = outboundHeaders.get(ZipkinTracerProvider.X_B3_PARENT_SPAN_ID); - assertThat(values, is(listOf(parentSpanId))); + assertThat(values, is(List.of(parentSpanId))); values = outboundHeaders.get(ZipkinTracerProvider.X_B3_SPAN_ID); - assertThat(values, is(listOf(spanId))); + assertThat(values, is(List.of(spanId))); values = outboundHeaders.get(ZipkinTracerProvider.X_B3_TRACE_ID); - assertThat(values, is(listOf(traceId))); + assertThat(values, is(List.of(traceId))); } } \ No newline at end of file diff --git a/webserver/access-log/src/main/java/io/helidon/webserver/accesslog/AccessLogSupport.java b/webserver/access-log/src/main/java/io/helidon/webserver/accesslog/AccessLogSupport.java index d34035e06e5..0bd73d6afe3 100644 --- a/webserver/access-log/src/main/java/io/helidon/webserver/accesslog/AccessLogSupport.java +++ b/webserver/access-log/src/main/java/io/helidon/webserver/accesslog/AccessLogSupport.java @@ -25,7 +25,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import io.helidon.common.CollectionsHelper; import io.helidon.config.Config; import io.helidon.webserver.Routing; import io.helidon.webserver.ServerRequest; @@ -170,7 +169,7 @@ public ServerResponse serverResponse() { * A fluent API Builder for {@link io.helidon.webserver.accesslog.AccessLogSupport}. */ public static final class Builder implements io.helidon.common.Builder { - private static final List COMMON_FORMAT = CollectionsHelper.listOf( + private static final List COMMON_FORMAT = List.of( HostLogEntry.create(), UserIdLogEntry.create(), UserLogEntry.create(), @@ -180,7 +179,7 @@ public static final class Builder implements io.helidon.common.Builder HELIDON_FORMAT = CollectionsHelper.listOf( + private static final List HELIDON_FORMAT = List.of( HostLogEntry.create(), UserLogEntry.create(), TimestampLogEntry.create(), diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/HashRequestHeaders.java b/webserver/webserver/src/main/java/io/helidon/webserver/HashRequestHeaders.java index 5574a6635f8..aceddc61aa0 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/HashRequestHeaders.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/HashRequestHeaders.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018, 2019 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import java.util.OptionalLong; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; import io.helidon.common.http.Parameters; @@ -40,7 +39,7 @@ class HashRequestHeaders extends ReadOnlyParameters implements RequestHeaders { /** * Header value of the non compliant {@code Accept} header sent by - * {@link HTTPURLConnection} when none is set. + * {@link java.net.HttpURLConnection} when none is set. * @see JDK-8163921 */ static final String HUC_ACCEPT_DEFAULT = "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"; @@ -48,7 +47,7 @@ class HashRequestHeaders extends ReadOnlyParameters implements RequestHeaders { /** * Accepted types for {@link #HUC_ACCEPT_DEFAULT}. */ - private static final List HUC_ACCEPT_DEFAULT_TYPES = CollectionsHelper.listOf( + private static final List HUC_ACCEPT_DEFAULT_TYPES = List.of( MediaType.TEXT_HTML, MediaType.parse("image/gif"), MediaType.parse("image/jpeg"), diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/Request.java b/webserver/webserver/src/main/java/io/helidon/webserver/Request.java index 464ef55ff98..2769e888c93 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/Request.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/Request.java @@ -38,7 +38,6 @@ import java.util.function.Function; import java.util.function.Predicate; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.ContextualRegistry; import io.helidon.common.http.DataChunk; import io.helidon.common.http.Http; @@ -319,7 +318,7 @@ private void finishSpanWithError(Span readSpan, Throwable t) { return; } Tags.ERROR.set(readSpan, Boolean.TRUE); - readSpan.log(CollectionsHelper.mapOf("event", "error", + readSpan.log(Map.of("event", "error", "error.kind", "Exception", "error.object", t, "message", t.toString())); diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/RequestRouting.java b/webserver/webserver/src/main/java/io/helidon/webserver/RequestRouting.java index 9fade5073cf..06fd43a8971 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/RequestRouting.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/RequestRouting.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.concurrent.RejectedExecutionException; @@ -27,7 +28,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.common.context.Contexts; import io.helidon.common.http.AlreadyCompletedException; import io.helidon.common.http.Http; @@ -333,9 +333,9 @@ private void nextNoCheck(Throwable t) { ErrorRoutedRequest nextErrorRequest = new ErrorRoutedRequest(errorHandlers, t); Span span = span(); if (null != span) { - span.log(CollectionsHelper.mapOf("event", "error-handler", - "handler.class", record.errorHandler.getClass().getName(), - "handled.error.message", t.toString())); + span.log(Map.of("event", "error-handler", + "handler.class", record.errorHandler.getClass().getName(), + "handled.error.message", t.toString())); } try { // there's no way to avoid this cast @@ -361,7 +361,7 @@ private void nextNoCheck(Throwable t) { private void defaultHandler(Throwable t) { Span span = span(); if (null != span) { - span.log(CollectionsHelper.mapOf("event", "error-handler", + span.log(Map.of("event", "error-handler", "handler.class", "DEFAULT-ERROR-HANDLER", "handled.error.message", t.toString())); } diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/SSLContextBuilder.java b/webserver/webserver/src/main/java/io/helidon/webserver/SSLContextBuilder.java index a0ce9c72de4..0f8d2509f35 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/SSLContextBuilder.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/SSLContextBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,7 +33,6 @@ import javax.net.ssl.TrustManagerFactory; import io.helidon.common.Builder; -import io.helidon.common.CollectionsHelper; import io.helidon.common.pki.KeyConfig; import io.helidon.config.Config; @@ -187,7 +186,7 @@ private static TrustManagerFactory buildTmf(KeyConfig trustConfig) List certs; if (trustConfig == null) { - certs = CollectionsHelper.listOf(); + certs = List.of(); } else { certs = trustConfig.certs(); } diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/ServerConfiguration.java b/webserver/webserver/src/main/java/io/helidon/webserver/ServerConfiguration.java index e24ba282da8..52a00b0b379 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/ServerConfiguration.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/ServerConfiguration.java @@ -28,7 +28,6 @@ import javax.net.ssl.SSLContext; -import io.helidon.common.CollectionsHelper; import io.helidon.common.context.Context; import io.helidon.common.http.ContextualRegistry; import io.helidon.config.Config; @@ -490,7 +489,7 @@ public Builder config(Config config) { // sockets Config socketsConfig = config.get("sockets"); if (socketsConfig.exists()) { - for (Config socketConfig : socketsConfig.asNodeList().orElse(CollectionsHelper.listOf())) { + for (Config socketConfig : socketsConfig.asNodeList().orElse(List.of())) { String socketName = socketConfig.name(); sockets.put(socketName, configureSocket(socketConfig, SocketConfiguration.builder()).build()); } diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/WebTracingConfig.java b/webserver/webserver/src/main/java/io/helidon/webserver/WebTracingConfig.java index 247b8f470c0..fee21b1a829 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/WebTracingConfig.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/WebTracingConfig.java @@ -22,7 +22,6 @@ import java.util.Optional; import java.util.stream.Collectors; -import io.helidon.common.CollectionsHelper; import io.helidon.common.context.Context; import io.helidon.common.context.Contexts; import io.helidon.common.http.Http; @@ -319,7 +318,7 @@ private void doAccept(ServerRequest req, ServerResponse res) { Tags.HTTP_STATUS.set(span, statusCode); if (statusCode >= 400) { Tags.ERROR.set(span, true); - span.log(CollectionsHelper.mapOf("event", "error", + span.log(Map.of("event", "error", "message", "Response HTTP status: " + statusCode, "error.kind", statusCode < 500 ? "ClientError" : "ServerError")); } @@ -328,7 +327,7 @@ private void doAccept(ServerRequest req, ServerResponse res) { }) .exceptionally(t -> { Tags.ERROR.set(span, true); - span.log(CollectionsHelper.mapOf("event", "error", + span.log(Map.of("event", "error", "error.object", t)); span.finish(); return null; diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/ContentCharsetTest.java b/webserver/webserver/src/test/java/io/helidon/webserver/ContentCharsetTest.java index 652c505ea4e..ad07c1cb508 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/ContentCharsetTest.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/ContentCharsetTest.java @@ -22,12 +22,8 @@ import java.util.List; import java.util.Map; -import io.helidon.common.CollectionsHelper; - import org.junit.jupiter.api.Test; -import static io.helidon.common.CollectionsHelper.listOf; -import static io.helidon.common.CollectionsHelper.mapOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -40,28 +36,28 @@ public class ContentCharsetTest { @Test public void requestContentCharset() { - RequestTestStub request = charset(mapOf("content-type", listOf("application/json; charset=cp1250"))); + RequestTestStub request = charset(Map.of("content-type", List.of("application/json; charset=cp1250"))); assertThat(Request.contentCharset(request), is(Charset.forName("cp1250"))); } @Test public void invalidRequestContentCharset() { - RequestTestStub request = charset(mapOf("content-type", listOf("application/json; charset=invalid-charset-name"))); + RequestTestStub request = charset(Map.of("content-type", List.of("application/json; charset=invalid-charset-name"))); assertThrows(UnsupportedCharsetException.class, () -> Request.contentCharset(request)); } @Test public void nonexistentCharset() { - RequestTestStub request = charset(mapOf("content-type", listOf("application/json"))); + RequestTestStub request = charset(Map.of("content-type", List.of("application/json"))); assertThat(Request.contentCharset(request), is(Request.DEFAULT_CHARSET)); } @Test public void missingContentType() { - RequestTestStub request = charset(CollectionsHelper.mapOf()); + RequestTestStub request = charset(Map.of()); assertThat(Request.contentCharset(request), is(Request.DEFAULT_CHARSET)); } diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/HashRequestHeadersTest.java b/webserver/webserver/src/test/java/io/helidon/webserver/HashRequestHeadersTest.java index 2bc4b9abf95..28b63866bb4 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/HashRequestHeadersTest.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/HashRequestHeadersTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018, 2019 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; import io.helidon.common.http.Parameters; @@ -97,12 +96,12 @@ public void acceptedTypes() { HashRequestHeaders hs = withHeader(Http.Header.ACCEPT, "text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4"); assertThat(hs.acceptedTypes().size(), is(4)); - assertThat(hs.acceptedTypes().get(0), is(createMt("text", "*", CollectionsHelper.mapOf("q", "0.3")))); + assertThat(hs.acceptedTypes().get(0), is(createMt("text", "*", Map.of("q", "0.3")))); assertThat(hs.acceptedTypes().get(0).qualityFactor(), IsCloseTo.closeTo(0, 0.3)); - assertThat(hs.acceptedTypes().get(1), is(createMt("text", "html", CollectionsHelper.mapOf("q", "0.7")))); - assertThat(hs.acceptedTypes().get(2), is(createMt("text", "html", CollectionsHelper.mapOf("level", "1")))); + assertThat(hs.acceptedTypes().get(1), is(createMt("text", "html", Map.of("q", "0.7")))); + assertThat(hs.acceptedTypes().get(2), is(createMt("text", "html", Map.of("level", "1")))); assertThat(hs.acceptedTypes().get(3), - is(createMt("text", "html", CollectionsHelper.mapOf("level", "2", "q", "0.4")))); + is(createMt("text", "html", Map.of("level", "2", "q", "0.4")))); } @Test @@ -112,7 +111,7 @@ public void hucDefaultAccept(){ assertThat(hs.acceptedTypes().get(0), is(MediaType.TEXT_HTML)); assertThat(hs.acceptedTypes().get(1), is(createMt("image", "gif"))); assertThat(hs.acceptedTypes().get(2), is(createMt("image", "jpeg"))); - assertThat(hs.acceptedTypes().get(3), is(createMt("*", "*", CollectionsHelper.mapOf("q", ".2")))); + assertThat(hs.acceptedTypes().get(3), is(createMt("*", "*", Map.of("q", ".2")))); } catch(IllegalStateException ex){ Assertions.fail(ex.getMessage(), ex); } diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/PlainTest.java b/webserver/webserver/src/test/java/io/helidon/webserver/PlainTest.java index bfde80b6b8c..a5505604cf3 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/PlainTest.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/PlainTest.java @@ -18,12 +18,12 @@ import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.TimeUnit; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.webserver.utils.SocketHttpClient; @@ -328,7 +328,7 @@ public void errorHandlerWithPostDataDoesNotCauseConnectionClose() throws Excepti public void testConnectionCloseWhenKeepAliveOff() throws Exception { try (SocketHttpClient s = new SocketHttpClient(webServer)) { // get - s.request(Http.Method.GET, "/", null, CollectionsHelper.listOf("Connection: close")); + s.request(Http.Method.GET, "/", null, List.of("Connection: close")); // assert assertThat(cutPayloadAndCheckHeadersFormat(s.receive()), is("9\nIt works!\n0\n\n")); @@ -341,7 +341,7 @@ public void testForcedChunkedWithConnectionCloseHeader() throws Exception { String s = SocketHttpClient.sendAndReceive("/force-chunked", Http.Method.GET, null, - CollectionsHelper.listOf("Connection: close"), + List.of("Connection: close"), webServer); assertThat(cutPayloadAndCheckHeadersFormat(s), is("4\nabcd\n0\n\n")); Map headers = cutHeaders(s); @@ -354,7 +354,7 @@ public void testConnectionCloseHeader() throws Exception { String s = SocketHttpClient.sendAndReceive("/", Http.Method.GET, null, - CollectionsHelper.listOf("Connection: close"), + List.of("Connection: close"), webServer); assertThat(cutPayloadAndCheckHeadersFormat(s), is("9\nIt works!\n0\n\n")); Map headers = cutHeaders(s); @@ -366,7 +366,7 @@ public void testBadURL() throws Exception { String s = SocketHttpClient.sendAndReceive("/?p=|", Http.Method.GET, null, - CollectionsHelper.listOf("Connection: close"), + List.of("Connection: close"), webServer); assertThat(s, containsString("400 Bad Request")); Map headers = cutHeaders(s); diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/RequestPredicateTest.java b/webserver/webserver/src/test/java/io/helidon/webserver/RequestPredicateTest.java index fbc0c98b309..4c126e78c9a 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/RequestPredicateTest.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/RequestPredicateTest.java @@ -26,8 +26,6 @@ import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import static io.helidon.common.CollectionsHelper.listOf; -import static io.helidon.common.CollectionsHelper.mapOf; import static io.helidon.webserver.RoutingTest.mockResponse; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -122,12 +120,12 @@ public void containsHeader() { .containsHeader(null); }); - routing.route(mockRequest("/exists", mapOf("my-header", listOf("abc"))), + routing.route(mockRequest("/exists", Map.of("my-header", List.of("abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("headerFound")); checker.reset(); - routing.route(mockRequest("/exists", mapOf()), mockResponse()); + routing.route(mockRequest("/exists", Map.of()), mockResponse()); assertThat(checker.handlersInvoked(), is("headerNotFound")); } @@ -154,12 +152,12 @@ public void containsValidHeader() { .containsHeader(null, "abc"::equals); }); - routing.route(mockRequest("/valid", mapOf("my-header", listOf("abc"))), + routing.route(mockRequest("/valid", Map.of("my-header", List.of("abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("headerIsValid")); checker.reset(); - routing.route(mockRequest("/valid", mapOf("my-header", listOf("def"))), + routing.route(mockRequest("/valid", Map.of("my-header", List.of("def"))), mockResponse()); assertThat(checker.handlersInvoked(), is("headerIsNotValid")); } @@ -187,12 +185,12 @@ public void containsExactHeader() { .containsHeader(null, "abc"); }); - routing.route(mockRequest("/equals", mapOf("my-header", listOf("abc"))), + routing.route(mockRequest("/equals", Map.of("my-header", List.of("abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("headerIsEqual")); checker.reset(); - routing.route(mockRequest("/equals", mapOf("my-header", listOf("def"))), + routing.route(mockRequest("/equals", Map.of("my-header", List.of("def"))), mockResponse()); assertThat(checker.handlersInvoked(), is("headerIsNotEqual")); } @@ -317,13 +315,13 @@ public void containsCookie() { .containsCookie(null); }); - routing.route(mockRequest("/exists", mapOf("cookie", - listOf("my-cookie=abc"))), mockResponse()); + routing.route(mockRequest("/exists", Map.of("cookie", + List.of("my-cookie=abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("cookieFound")); checker.reset(); - routing.route(mockRequest("/exists", mapOf("cookie", - listOf("other-cookie=abc"))), mockResponse()); + routing.route(mockRequest("/exists", Map.of("cookie", + List.of("other-cookie=abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("cookieNotFound")); } @@ -350,18 +348,18 @@ public void containsValidCookie() { .containsCookie(null, "abc"); }); - routing.route(mockRequest("/valid", mapOf("cookie", - listOf("my-cookie=abc"))), mockResponse()); + routing.route(mockRequest("/valid", Map.of("cookie", + List.of("my-cookie=abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("cookieIsValid")); checker.reset(); - routing.route(mockRequest("/valid", mapOf("cookie", - listOf("my-cookie=def"))), mockResponse()); + routing.route(mockRequest("/valid", Map.of("cookie", + List.of("my-cookie=def"))), mockResponse()); assertThat(checker.handlersInvoked(), is("cookieIsNotValid")); checker.reset(); - routing.route(mockRequest("/valid", mapOf("cookie", - listOf("my-cookie="))), mockResponse()); + routing.route(mockRequest("/valid", Map.of("cookie", + List.of("my-cookie="))), mockResponse()); assertThat(checker.handlersInvoked(), is("cookieIsNotValid")); } @@ -388,13 +386,13 @@ public void containsExactCookie() { .containsCookie(null, "abc"); }); - routing.route(mockRequest("/equals", mapOf("cookie", - listOf("my-cookie=abc"))), mockResponse()); + routing.route(mockRequest("/equals", Map.of("cookie", + List.of("my-cookie=abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("cookieIsEqual")); checker.reset(); - routing.route(mockRequest("/equals", mapOf("cookie", - listOf("my-cookie=def"))), mockResponse()); + routing.route(mockRequest("/equals", Map.of("cookie", + List.of("my-cookie=def"))), mockResponse()); assertThat(checker.handlersInvoked(), is("cookieIsNotEqual")); } @@ -416,32 +414,32 @@ public void accepts1() { .accepts((String[]) null); }); - routing.route(mockRequest("/accepts1", mapOf("Accept", - listOf("application/json"))), mockResponse()); + routing.route(mockRequest("/accepts1", Map.of("Accept", + List.of("application/json"))), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts1", mapOf("Accept", - listOf("text/plain"))), mockResponse()); + routing.route(mockRequest("/accepts1", Map.of("Accept", + List.of("text/plain"))), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts1", mapOf("Accept", - listOf("text/plain", "application/xml"))), mockResponse()); + routing.route(mockRequest("/accepts1", Map.of("Accept", + List.of("text/plain", "application/xml"))), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts1", mapOf("Accept", listOf())), + routing.route(mockRequest("/accepts1", Map.of("Accept", List.of())), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts1", mapOf()), mockResponse()); + routing.route(mockRequest("/accepts1", Map.of()), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts1", mapOf("Accept", - listOf("application/xml"))), mockResponse()); + routing.route(mockRequest("/accepts1", Map.of("Accept", + List.of("application/xml"))), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotAcceptMediaType")); } @@ -464,32 +462,32 @@ public void accepts2() { .accepts((MediaType[]) null); }); - routing.route(mockRequest("/accepts2", mapOf("Accept", - listOf("application/json"))), mockResponse()); + routing.route(mockRequest("/accepts2", Map.of("Accept", + List.of("application/json"))), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts2", mapOf("Accept", - listOf("text/plain"))), mockResponse()); + routing.route(mockRequest("/accepts2", Map.of("Accept", + List.of("text/plain"))), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts2", mapOf("Accept", - listOf("text/plain", "application/xml"))), mockResponse()); + routing.route(mockRequest("/accepts2", Map.of("Accept", + List.of("text/plain", "application/xml"))), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts2", mapOf("Accept", listOf())), + routing.route(mockRequest("/accepts2", Map.of("Accept", List.of())), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts2", mapOf()), mockResponse()); + routing.route(mockRequest("/accepts2", Map.of()), mockResponse()); assertThat(checker.handlersInvoked(), is("acceptsMediaType")); checker.reset(); - routing.route(mockRequest("/accepts2", mapOf("Accept", - listOf("application/xml"))), mockResponse()); + routing.route(mockRequest("/accepts2", Map.of("Accept", + List.of("application/xml"))), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotAcceptMediaType")); } @@ -511,32 +509,32 @@ public void hasContentType1() { .hasContentType((String[]) null); }); - routing.route(mockRequest("/contentType1", mapOf("Content-Type", - listOf("text/plain"))), mockResponse()); + routing.route(mockRequest("/contentType1", Map.of("Content-Type", + List.of("text/plain"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasContentType")); checker.reset(); - routing.route(mockRequest("/contentType1", mapOf("Content-Type", - listOf("text/plain"))), mockResponse()); + routing.route(mockRequest("/contentType1", Map.of("Content-Type", + List.of("text/plain"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasContentType")); checker.reset(); - routing.route(mockRequest("/contentType1", mapOf("Content-Type", - listOf("application/json"))), mockResponse()); + routing.route(mockRequest("/contentType1", Map.of("Content-Type", + List.of("application/json"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasContentType")); checker.reset(); - routing.route(mockRequest("/contentType1", mapOf("Content-Type", - listOf("application/xml"))), mockResponse()); + routing.route(mockRequest("/contentType1", Map.of("Content-Type", + List.of("application/xml"))), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveContentType")); checker.reset(); - routing.route(mockRequest("/contentType1", mapOf("Content-Type", - listOf())), mockResponse()); + routing.route(mockRequest("/contentType1", Map.of("Content-Type", + List.of())), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveContentType")); checker.reset(); - routing.route(mockRequest("/contentType1", mapOf()), mockResponse()); + routing.route(mockRequest("/contentType1", Map.of()), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveContentType")); } @@ -559,32 +557,32 @@ public void hasContentType2() { .hasContentType((MediaType[]) null); }); - routing.route(mockRequest("/contentType2", mapOf("Content-Type", - listOf("text/plain"))), mockResponse()); + routing.route(mockRequest("/contentType2", Map.of("Content-Type", + List.of("text/plain"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasContentType")); checker.reset(); - routing.route(mockRequest("/contentType2", mapOf("Content-Type", - listOf("text/plain"))), mockResponse()); + routing.route(mockRequest("/contentType2", Map.of("Content-Type", + List.of("text/plain"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasContentType")); checker.reset(); - routing.route(mockRequest("/contentType2", mapOf("Content-Type", - listOf("application/json"))), mockResponse()); + routing.route(mockRequest("/contentType2", Map.of("Content-Type", + List.of("application/json"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasContentType")); checker.reset(); - routing.route(mockRequest("/contentType2", mapOf("Content-Type", - listOf("application/xml"))), mockResponse()); + routing.route(mockRequest("/contentType2", Map.of("Content-Type", + List.of("application/xml"))), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveContentType")); checker.reset(); - routing.route(mockRequest("/contentType2", mapOf("Content-Type", - listOf())), mockResponse()); + routing.route(mockRequest("/contentType2", Map.of("Content-Type", + List.of())), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveContentType")); checker.reset(); - routing.route(mockRequest("/contentType2", mapOf()), mockResponse()); + routing.route(mockRequest("/contentType2", Map.of()), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveContentType")); } @@ -606,15 +604,15 @@ public void multipleConditions() { .build(); routing.route(mockRequest("/multiple?my-param=abc", - mapOf("Content-Type", listOf("text/plain"), - "Accept", listOf("text/plain"), - "Cookie", listOf("my-cookie=abc"))), mockResponse()); + Map.of("Content-Type", List.of("text/plain"), + "Accept", List.of("text/plain"), + "Cookie", List.of("my-cookie=abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasAllConditions")); checker.reset(); routing.route(mockRequest("/multiple?my-param=abc", - mapOf("Accept", listOf("text/plain"), - "Cookie", listOf("my-cookie=abc"))), mockResponse()); + Map.of("Accept", List.of("text/plain"), + "Cookie", List.of("my-cookie=abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveAllConditions")); } @@ -633,13 +631,13 @@ public void and(){ .build(); routing.route(mockRequest("/and", - mapOf("Accept", listOf("text/plain"), - "my-header", listOf("abc"))), mockResponse()); + Map.of("Accept", List.of("text/plain"), + "my-header", List.of("abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasAllConditions")); checker.reset(); routing.route(mockRequest("/and", - mapOf("Accept", listOf("text/plain"))), mockResponse()); + Map.of("Accept", List.of("text/plain"))), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveAllConditions")); } @@ -658,16 +656,16 @@ public void or(){ .build(); routing.route(mockRequest("/or", - mapOf("Content-Type", listOf("text/plain"))), mockResponse()); + Map.of("Content-Type", List.of("text/plain"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasAnyCondition")); checker.reset(); routing.route(mockRequest("/or", - mapOf("my-header", listOf("abc"))), mockResponse()); + Map.of("my-header", List.of("abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasAnyCondition")); checker.reset(); - routing.route(mockRequest("/or", mapOf()), mockResponse()); + routing.route(mockRequest("/or", Map.of()), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveAnyCondition")); } @@ -687,13 +685,13 @@ public void negate(){ .build(); routing.route(mockRequest("/negate", - mapOf("Content-Type", listOf("application/json"))), mockResponse()); + Map.of("Content-Type", List.of("application/json"))), mockResponse()); assertThat(checker.handlersInvoked(), is("hasAllConditions")); checker.reset(); routing.route(mockRequest("/negate", - mapOf("Content-Type", listOf("text/plain"), - "Cookie", listOf("my-cookie=abc"))), mockResponse()); + Map.of("Content-Type", List.of("text/plain"), + "Cookie", List.of("my-cookie=abc"))), mockResponse()); assertThat(checker.handlersInvoked(), is("doesNotHaveAllConditions")); } diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/RequestTest.java b/webserver/webserver/src/test/java/io/helidon/webserver/RequestTest.java index 245517781bc..138aa788983 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/RequestTest.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/RequestTest.java @@ -17,8 +17,7 @@ package io.helidon.webserver; import java.net.URI; - -import io.helidon.common.CollectionsHelper; +import java.util.Map; import org.junit.jupiter.api.Test; @@ -41,7 +40,7 @@ public class RequestTest { public void createPathTest() throws Exception { Request.Path path = Request.Path.create(null, "/foo/bar/baz", - CollectionsHelper.mapOf("a", "va", "b", "vb", "var", "1")); + Map.of("a", "va", "b", "vb", "var", "1")); assertThat(path.toString(), is("/foo/bar/baz")); assertThat(path.absolute().toString(), is("/foo/bar/baz")); assertThat("va", is(path.param("a"))); @@ -51,7 +50,7 @@ public void createPathTest() throws Exception { // Sub path path = Request.Path.create(path, "/bar/baz", - CollectionsHelper.mapOf("c", "vc", "var", "2")); + Map.of("c", "vc", "var", "2")); assertThat(path.toString(), is("/bar/baz")); assertThat(path.absolute().toString(), is("/foo/bar/baz")); assertThat("vc", is(path.param("c"))); @@ -63,7 +62,7 @@ public void createPathTest() throws Exception { // Sub Sub Path path = Request.Path.create(path, "/baz", - CollectionsHelper.mapOf("d", "vd", "a", "a2")); + Map.of("d", "vd", "a", "a2")); assertThat(path.toString(), is("/baz")); assertThat(path.absolute().toString(), is("/foo/bar/baz")); assertThat("vd", is(path.param("d"))); diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/RouteListTest.java b/webserver/webserver/src/test/java/io/helidon/webserver/RouteListTest.java index a244db6fe47..5d05a95cbf9 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/RouteListTest.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/RouteListTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,8 +19,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.List; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import org.junit.jupiter.api.Test; @@ -57,10 +57,10 @@ public void testAcceptMethod() throws Exception { Collection routes = new ArrayList<>(); routes.add(new HandlerRoute(null, VOID_HANDLER, Http.Method.POST, Http.Method.PUT)); routes.add(new HandlerRoute(null, VOID_HANDLER, Http.Method.POST, Http.Method.DELETE)); - routes.add(new RouteList(CollectionsHelper.listOf(new HandlerRoute(null, - VOID_HANDLER, - Http.Method.GET, - Http.RequestMethod.create("FOO"))))); + routes.add(new RouteList(List.of(new HandlerRoute(null, + VOID_HANDLER, + Http.Method.GET, + Http.RequestMethod.create("FOO"))))); routes.add(new HandlerRoute(null, VOID_HANDLER, Http.RequestMethod.create("BAR"))); RouteList r = new RouteList(routes); // assertion @@ -79,7 +79,7 @@ public void testAcceptMethodAny() throws Exception { Collection routes = new ArrayList<>(); routes.add(new HandlerRoute(null, VOID_HANDLER, Http.Method.POST, Http.Method.PUT)); routes.add(new HandlerRoute(null, VOID_HANDLER, Http.Method.POST, Http.Method.DELETE)); - routes.add(new RouteList(CollectionsHelper.listOf(new HandlerRoute(null, + routes.add(new RouteList(List.of(new HandlerRoute(null, VOID_HANDLER, Http.Method.GET, Http.RequestMethod.create("FOO")), diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/StaticContentHandlerTest.java b/webserver/webserver/src/test/java/io/helidon/webserver/StaticContentHandlerTest.java index a4087976eea..dde25f50c31 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/StaticContentHandlerTest.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/StaticContentHandlerTest.java @@ -21,10 +21,10 @@ import java.nio.file.Paths; import java.time.ZonedDateTime; import java.util.Collections; +import java.util.List; import java.util.Optional; import java.util.concurrent.atomic.AtomicInteger; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.common.http.MediaType; @@ -59,7 +59,7 @@ private static void assertHttpException(Runnable runnable, Http.Status status) { @Test public void etag_InNonMatch_NotAccept() throws Exception { RequestHeaders req = mock(RequestHeaders.class); - when(req.values(Http.Header.IF_NONE_MATCH)).thenReturn(CollectionsHelper.listOf("\"ccc\"", "\"ddd\"")); + when(req.values(Http.Header.IF_NONE_MATCH)).thenReturn(List.of("\"ccc\"", "\"ddd\"")); when(req.values(Http.Header.IF_MATCH)).thenReturn(Collections.emptyList()); ResponseHeaders res = mock(ResponseHeaders.class); StaticContentHandler.processEtag("aaa", req, res); @@ -69,7 +69,7 @@ public void etag_InNonMatch_NotAccept() throws Exception { @Test public void etag_InNonMatch_Accept() throws Exception { RequestHeaders req = mock(RequestHeaders.class); - when(req.values(Http.Header.IF_NONE_MATCH)).thenReturn(CollectionsHelper.listOf("\"ccc\"", "W/\"aaa\"")); + when(req.values(Http.Header.IF_NONE_MATCH)).thenReturn(List.of("\"ccc\"", "W/\"aaa\"")); when(req.values(Http.Header.IF_MATCH)).thenReturn(Collections.emptyList()); ResponseHeaders res = mock(ResponseHeaders.class); assertHttpException(() -> StaticContentHandler.processEtag("aaa", req, res), Http.Status.NOT_MODIFIED_304); @@ -79,7 +79,7 @@ public void etag_InNonMatch_Accept() throws Exception { @Test public void etag_InMatch_NotAccept() throws Exception { RequestHeaders req = mock(RequestHeaders.class); - when(req.values(Http.Header.IF_MATCH)).thenReturn(CollectionsHelper.listOf("\"ccc\"", "\"ddd\"")); + when(req.values(Http.Header.IF_MATCH)).thenReturn(List.of("\"ccc\"", "\"ddd\"")); when(req.values(Http.Header.IF_NONE_MATCH)).thenReturn(Collections.emptyList()); ResponseHeaders res = mock(ResponseHeaders.class); assertHttpException(() -> StaticContentHandler.processEtag("aaa", req, res), Http.Status.PRECONDITION_FAILED_412); @@ -89,7 +89,7 @@ public void etag_InMatch_NotAccept() throws Exception { @Test public void etag_InMatch_Accept() throws Exception { RequestHeaders req = mock(RequestHeaders.class); - when(req.values(Http.Header.IF_MATCH)).thenReturn(CollectionsHelper.listOf("\"ccc\"", "\"aaa\"")); + when(req.values(Http.Header.IF_MATCH)).thenReturn(List.of("\"ccc\"", "\"aaa\"")); when(req.values(Http.Header.IF_NONE_MATCH)).thenReturn(Collections.emptyList()); ResponseHeaders res = mock(ResponseHeaders.class); StaticContentHandler.processEtag("aaa", req, res); diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/utils/SocketHttpClient.java b/webserver/webserver/src/test/java/io/helidon/webserver/utils/SocketHttpClient.java index ceb8d1b7b02..6ff64322e0d 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/utils/SocketHttpClient.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/utils/SocketHttpClient.java @@ -26,9 +26,9 @@ import java.net.SocketException; import java.nio.charset.StandardCharsets; import java.util.Collections; +import java.util.List; import java.util.logging.Logger; -import io.helidon.common.CollectionsHelper; import io.helidon.common.http.Http; import io.helidon.webserver.WebServer; @@ -233,7 +233,7 @@ public void request(Http.Method method, String payload) throws IOException { * @throws IOException in case of an IO error */ public void request(Http.Method method, String path, String payload) throws IOException { - request(method, path, payload, CollectionsHelper.listOf("Content-Type: application/x-www-form-urlencoded")); + request(method, path, payload, List.of("Content-Type: application/x-www-form-urlencoded")); } /** From 12f2281a0bc550a25e7ccfb769765fd32dd341a0 Mon Sep 17 00:00:00 2001 From: Tomas Langer Date: Mon, 16 Dec 2019 22:44:41 +0100 Subject: [PATCH 3/8] Replaced `InputStreamHelper` with method of `InputStream` Signed-off-by: Tomas Langer --- .../io/helidon/common/InputStreamHelper.java | 73 ------------------- .../helidon/common/InputStreamHelperTest.java | 54 -------------- .../common/configurable/ResourceImpl.java | 6 +- .../media/common/ContentReadersTest.java | 3 +- .../jwt/auth/JwtAuthProvider.java | 3 +- .../jersey/JerseyExampleResource.java | 3 +- .../io/helidon/webserver/BytesReuseTest.java | 3 +- .../webserver/ResponseOrderingTest.java | 3 +- 8 files changed, 7 insertions(+), 141 deletions(-) delete mode 100644 common/common/src/main/java/io/helidon/common/InputStreamHelper.java delete mode 100644 common/common/src/test/java/io/helidon/common/InputStreamHelperTest.java diff --git a/common/common/src/main/java/io/helidon/common/InputStreamHelper.java b/common/common/src/main/java/io/helidon/common/InputStreamHelper.java deleted file mode 100644 index 1cfc776e4c5..00000000000 --- a/common/common/src/main/java/io/helidon/common/InputStreamHelper.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. - * - * Licensed 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 io.helidon.common; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; - -/** - * A set of static utility methods for {@code InputStream}. - */ -public abstract class InputStreamHelper { - - private static final int MAX_BUFFER_SIZE = Integer.MAX_VALUE - 8; - private static final int DEFAULT_BUFFER_SIZE = 8192; - - private InputStreamHelper(){} - - /** - * Reads all remaining bytes from the input stream.This method blocks until - * all remaining bytes have been read and end of stream is detected, or an - * exception is thrown. - * @param is the {@code InputStream} to use - * @return a byte array containing the bytes read from this input stream - * @throws IOException if an I/O error occurs - * @throws OutOfMemoryError if an array of the required size cannot be - * allocated. For example, if an array larger than {@code 2GB} would - * be required to store the bytes. - */ - public static byte[] readAllBytes(InputStream is) throws IOException { - byte[] buf = new byte[DEFAULT_BUFFER_SIZE]; - int capacity = buf.length; - int nread = 0; - int n; - for (;;) { - // read to EOF which may read more or less than initial buffer size - while ((n = is.read(buf, nread, capacity - nread)) > 0){ - nread += n; - } - - // if the last call to read returned -1, then we're done - if (n < 0){ - break; - } - - // need to allocate a larger buffer - if (capacity <= MAX_BUFFER_SIZE - capacity) { - capacity = capacity << 1; - } else { - if (capacity == MAX_BUFFER_SIZE){ - throw new OutOfMemoryError("Required array size too large"); - } - capacity = MAX_BUFFER_SIZE; - } - buf = Arrays.copyOf(buf, capacity); - } - return (capacity == nread) ? buf : Arrays.copyOf(buf, nread); - } -} diff --git a/common/common/src/test/java/io/helidon/common/InputStreamHelperTest.java b/common/common/src/test/java/io/helidon/common/InputStreamHelperTest.java deleted file mode 100644 index a58d999db5e..00000000000 --- a/common/common/src/test/java/io/helidon/common/InputStreamHelperTest.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. - * - * Licensed 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 io.helidon.common; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; - -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertArrayEquals; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotSame; - -/** - * Unit tests for class {@link InputStreamHelper}. - * - * @see InputStreamHelper - * - */ -public class InputStreamHelperTest{ - - @Test - public void testReadAllBytes() throws IOException { - byte[] byteArray = new byte[7]; - byteArray[2] = (byte) 22; - InputStream byteArrayInputStream = new ByteArrayInputStream(byteArray); - byte[] byteArrayTwo = InputStreamHelper.readAllBytes(byteArrayInputStream); - - assertArrayEquals(new byte[] {(byte)0, (byte)0, (byte)22, (byte)0, (byte)0, (byte)0, (byte)0}, byteArray); - assertArrayEquals(new byte[] {(byte)0, (byte)0, (byte)22, (byte)0, (byte)0, (byte)0, (byte)0}, byteArrayTwo); - - assertNotSame(byteArray, byteArrayTwo); - assertNotSame(byteArrayTwo, byteArray); - assertEquals(7, byteArray.length); - assertEquals(7, byteArrayTwo.length); - assertEquals(0, byteArrayInputStream.available()); - } - -} \ No newline at end of file diff --git a/common/configurable/src/main/java/io/helidon/common/configurable/ResourceImpl.java b/common/configurable/src/main/java/io/helidon/common/configurable/ResourceImpl.java index a206b6b395c..e613e854ada 100644 --- a/common/configurable/src/main/java/io/helidon/common/configurable/ResourceImpl.java +++ b/common/configurable/src/main/java/io/helidon/common/configurable/ResourceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2019 Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,8 +24,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.InputStreamHelper; - /** * Implementation of {@link Resource}. */ @@ -100,7 +98,7 @@ public String location() { public void cacheBytes() { if (cachedBytes == null) { try { - cachedBytes = InputStreamHelper.readAllBytes(stream); + cachedBytes = stream.readAllBytes(); } catch (IOException e) { throw new ResourceException("Failed to fully read resource bytes for resource: " + source + "(" + location + ")", e); diff --git a/media/common/src/test/java/io/helidon/media/common/ContentReadersTest.java b/media/common/src/test/java/io/helidon/media/common/ContentReadersTest.java index 7005abe0852..0e183995dfc 100644 --- a/media/common/src/test/java/io/helidon/media/common/ContentReadersTest.java +++ b/media/common/src/test/java/io/helidon/media/common/ContentReadersTest.java @@ -23,7 +23,6 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; -import io.helidon.common.InputStreamHelper; import io.helidon.common.http.DataChunk; import io.helidon.common.reactive.Multi; @@ -72,7 +71,7 @@ void test() throws Exception { .toCompletableFuture(); InputStream inputStream = future.get(10, TimeUnit.SECONDS); - byte[] actualBytes = InputStreamHelper.readAllBytes(inputStream); + byte[] actualBytes = inputStream.readAllBytes(); assertThat(actualBytes, is(bytes)); } diff --git a/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java b/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java index 494409aa94d..8160d142a39 100644 --- a/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java +++ b/microprofile/jwt-auth/jwt-auth/src/main/java/io/helidon/microprofile/jwt/auth/JwtAuthProvider.java @@ -47,7 +47,6 @@ import javax.json.JsonReaderFactory; import io.helidon.common.Errors; -import io.helidon.common.InputStreamHelper; import io.helidon.common.configurable.Resource; import io.helidon.common.pki.KeyConfig; import io.helidon.config.Config; @@ -613,7 +612,7 @@ private InputStream locateStream(String uri) throws IOException { } private JwkKeys getPublicKeyFromContent(InputStream bufferedInputStream) throws IOException { - return loadJwkKeys(new String(InputStreamHelper.readAllBytes(bufferedInputStream), UTF_8)); + return loadJwkKeys(new String(bufferedInputStream.readAllBytes(), UTF_8)); } private JwkKeys loadJwkKeys(String stringContent) { diff --git a/webserver/jersey/src/test/java/io/helidon/webserver/jersey/JerseyExampleResource.java b/webserver/jersey/src/test/java/io/helidon/webserver/jersey/JerseyExampleResource.java index a08e03b5a06..f6fdae8a50d 100644 --- a/webserver/jersey/src/test/java/io/helidon/webserver/jersey/JerseyExampleResource.java +++ b/webserver/jersey/src/test/java/io/helidon/webserver/jersey/JerseyExampleResource.java @@ -37,7 +37,6 @@ import javax.ws.rs.core.StreamingOutput; import javax.ws.rs.core.UriInfo; -import io.helidon.common.InputStreamHelper; import io.helidon.webserver.ServerRequest; import io.helidon.webserver.ServerResponse; @@ -147,7 +146,7 @@ public Response errorThrownUnhandled() { @Path("stream") public Response checkSequenceStream(InputStream inputStream, @QueryParam("length") int length) throws IOException { - String content = new String(InputStreamHelper.readAllBytes(inputStream)); + String content = new String(inputStream.readAllBytes()); try { assertEquals(JerseySupportTest.longData(length).toString(), content); diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/BytesReuseTest.java b/webserver/webserver/src/test/java/io/helidon/webserver/BytesReuseTest.java index 196ec3a7936..64030cd92f2 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/BytesReuseTest.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/BytesReuseTest.java @@ -32,7 +32,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import io.helidon.common.InputStreamHelper; import io.helidon.common.http.DataChunk; import io.helidon.common.http.Http; import io.helidon.common.reactive.Multi; @@ -131,7 +130,7 @@ private static void startServer(int port) throws Exception { try { LOGGER.info("Consuming data from input stream!"); assertAgainstPrefixQueryParam(req, - new String(InputStreamHelper.readAllBytes(stream))); + new String(stream.readAllBytes())); res.send("Finished"); } catch (IOException e) { req.next(new IllegalStateException("Got an IO error.", e)); diff --git a/webserver/webserver/src/test/java/io/helidon/webserver/ResponseOrderingTest.java b/webserver/webserver/src/test/java/io/helidon/webserver/ResponseOrderingTest.java index 159d7f89707..24b85806860 100644 --- a/webserver/webserver/src/test/java/io/helidon/webserver/ResponseOrderingTest.java +++ b/webserver/webserver/src/test/java/io/helidon/webserver/ResponseOrderingTest.java @@ -31,7 +31,6 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import io.helidon.common.InputStreamHelper; import io.helidon.common.http.DataChunk; import io.helidon.common.http.Http; import io.helidon.common.reactive.Multi; @@ -157,7 +156,7 @@ public void testContentOrdering() throws Exception { Response response = target.request().post(Entity.entity(inputStream, MediaType.APPLICATION_OCTET_STREAM_TYPE)); InputStream resultStream = response.readEntity(InputStream.class); - String s = new String(InputStreamHelper.readAllBytes(resultStream)); + String s = new String(resultStream.readAllBytes()); assertThat(s, is(sb.toString())); } From 5d530710959f1e7cdb5aa6f3b3ebfa51d736de14 Mon Sep 17 00:00:00 2001 From: Tomas Langer Date: Mon, 16 Dec 2019 22:48:48 +0100 Subject: [PATCH 4/8] Replaced Helidon `StackWalker` with the one from Java Signed-off-by: Tomas Langer --- .../java/io/helidon/common/StackWalker.java | 123 ------------------ .../io/helidon/common/StackWalkerTest.java | 81 ------------ .../helidon/security/spi/AuditProvider.java | 11 +- 3 files changed, 5 insertions(+), 210 deletions(-) delete mode 100644 common/common/src/main/java/io/helidon/common/StackWalker.java delete mode 100644 common/common/src/test/java/io/helidon/common/StackWalkerTest.java diff --git a/common/common/src/main/java/io/helidon/common/StackWalker.java b/common/common/src/main/java/io/helidon/common/StackWalker.java deleted file mode 100644 index 36cfc31cd02..00000000000 --- a/common/common/src/main/java/io/helidon/common/StackWalker.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. - * - * Licensed 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 io.helidon.common; - -import java.util.Arrays; -import java.util.Optional; -import java.util.Set; -import java.util.function.Function; -import java.util.stream.Stream; - -/** - * A dummy replicate of Java9's StackWalker. - */ -public final class StackWalker { - private static final StackWalker INSTANCE = new StackWalker(); - - static { - final SecurityManager sm = System.getSecurityManager(); - if (sm != null) { - sm.checkPermission(new RuntimePermission("getStackWalker")); - } - } - - /** - * Returns a {@code StackWalker} instance with default options. - * - * @return a {@code StackWalker} configured with the default options - */ - public static StackWalker getInstance() { - return INSTANCE; - } - - /** - * Returns a {@code StackWalker} instance with the given {@code option} specifying - * the stack frame information it can access. - * - * @param option ignored (used by java9 forward) - * @return a {@code StackWalker} configured with the given options - */ - public static StackWalker getInstance(Option option) { - // ignore options - return INSTANCE; - } - - /** - * Returns a {@code StackWalker} instance with the given {@code options} specifying - * the stack frame information it can access. - * - * @param options ignored (used by java9 forward) - * @return a {@code StackWalker} configured with the given options - */ - public static StackWalker getInstance(Set