diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/UriToEntityConverter.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/UriToEntityConverter.java index 63ae8d254..97fa3eedd 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/UriToEntityConverter.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/UriToEntityConverter.java @@ -66,7 +66,7 @@ public UriToEntityConverter(PersistentEntities entities, RepositoryInvokerFactor Assert.notNull(invokerFactory, "RepositoryInvokerFactory must not be null"); Assert.notNull(conversionService, "ConversionService must not be null!"); - this.convertiblePairs = new HashSet(); + this.convertiblePairs = new HashSet<>(); this.identifierTypes = new HashSet<>(); for (TypeInformation domainType : entities.getManagedTypes()) { diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/ValidationErrors.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/ValidationErrors.java index c4c11652a..0dd50e770 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/ValidationErrors.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/ValidationErrors.java @@ -15,6 +15,7 @@ */ package org.springframework.data.rest.core; +import java.io.Serial; import java.util.Arrays; import java.util.Collection; import java.util.Iterator; @@ -42,6 +43,7 @@ */ public class ValidationErrors extends AbstractPropertyBindingResult { + @Serial private static final long serialVersionUID = 8141826537389141361L; private final Object source; diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/EntityLookupConfiguration.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/EntityLookupConfiguration.java index 86e2b34a5..bd90373e3 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/EntityLookupConfiguration.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/EntityLookupConfiguration.java @@ -63,7 +63,7 @@ class EntityLookupConfiguration implements EntityLookupRegistrar { @Override public > IdMappingRegistrar forRepository(Class type) { - return new MappingBuilder(type); + return new MappingBuilder<>(type); } @Override @@ -115,7 +115,7 @@ private MappingBuilder(Class repositoryType, Converter mapping) { public EntityLookupRegistrar withLookup(Lookup lookup) { EntityLookupConfiguration.this.lookupInformation - .add((LookupInformation>) new LookupInformation( + .add((LookupInformation>) new LookupInformation<>( repositoryType, idMapping, lookup)); return EntityLookupConfiguration.this; @@ -123,7 +123,7 @@ public EntityLookupRegistrar withLookup(Lookup lookup) { @Override public LookupRegistrar withIdMapping(Converter idMapping) { - return new MappingBuilder(repositoryType, idMapping); + return new MappingBuilder<>(repositoryType, idMapping); } } @@ -195,7 +195,7 @@ public Optional lookupEntity(Object id) { Object result = lookupInfo.getLookup().lookup(repository, id); - return Optional.class.isInstance(result) ? (Optional) result : Optional.ofNullable((T) result); + return result instanceof Optional optional ? optional : Optional.ofNullable((T) result); } @Override diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/JsonSchemaFormat.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/JsonSchemaFormat.java index b6d487e15..364799494 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/JsonSchemaFormat.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/JsonSchemaFormat.java @@ -30,6 +30,7 @@ public enum JsonSchemaFormat { EMAIL, DATE_TIME, HOSTNAME, IPV4, IPV6, URI; @JsonValue + @Override public String toString() { return name().toLowerCase(Locale.US).replaceAll("_", "-"); } diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/MetadataConfiguration.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/MetadataConfiguration.java index 42c52d7d3..da24715ca 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/MetadataConfiguration.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/MetadataConfiguration.java @@ -29,8 +29,8 @@ */ public class MetadataConfiguration { - private final Map, JsonSchemaFormat> schemaFormats = new HashMap, JsonSchemaFormat>(); - private final Map, Pattern> patterns = new HashMap, Pattern>(); + private final Map, JsonSchemaFormat> schemaFormats = new HashMap<>(); + private final Map, Pattern> patterns = new HashMap<>(); private boolean omitUnresolvableDescriptionKeys = true; private boolean alpsEnabled = true; diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ProjectionDefinitionConfiguration.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ProjectionDefinitionConfiguration.java index 098eb2b5e..a6ee8d49b 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ProjectionDefinitionConfiguration.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ProjectionDefinitionConfiguration.java @@ -154,8 +154,8 @@ public Map> getProjectionsFor(Class sourceType) { Assert.notNull(sourceType, "Source type must not be null"); Class userType = ProxyUtils.getUserClass(sourceType); - Map byName = new HashMap(); - Map> result = new HashMap>(); + Map byName = new HashMap<>(); + Map> result = new HashMap<>(); for (ProjectionDefinition entry : projectionDefinitions) { diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ResourceMapping.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ResourceMapping.java index dedfb0766..85a7c26e9 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ResourceMapping.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ResourceMapping.java @@ -29,7 +29,7 @@ public class ResourceMapping { private String rel; private String path; private boolean exported = true; - private final Map resourceMappings = new HashMap(); + private final Map resourceMappings = new HashMap<>(); public ResourceMapping() {} diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ResourceMappingConfiguration.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ResourceMappingConfiguration.java index 23bdf79d4..5949a1e4d 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ResourceMappingConfiguration.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/config/ResourceMappingConfiguration.java @@ -27,15 +27,10 @@ @SuppressWarnings("deprecation") public class ResourceMappingConfiguration { - private final Map, ResourceMapping> resourceMappings = new HashMap, ResourceMapping>(); + private final Map, ResourceMapping> resourceMappings = new HashMap<>(); public ResourceMapping setResourceMappingFor(Class type) { - ResourceMapping rm = resourceMappings.get(type); - if (null == rm) { - rm = new ResourceMapping(type); - resourceMappings.put(type, rm); - } - return rm; + return resourceMappings.computeIfAbsent(type, value -> new ResourceMapping(type)); } public ResourceMapping getResourceMappingFor(Class type) { diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/AbstractRepositoryEventListener.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/AbstractRepositoryEventListener.java index 092a353e4..73042be51 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/AbstractRepositoryEventListener.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/AbstractRepositoryEventListener.java @@ -48,14 +48,14 @@ public final void onApplicationEvent(RepositoryEvent event) { onAfterCreate((T) event.getSource()); } else if (event instanceof AfterSaveEvent) { onAfterSave((T) event.getSource()); - } else if (event instanceof BeforeLinkSaveEvent) { - onBeforeLinkSave((T) event.getSource(), ((BeforeLinkSaveEvent) event).getLinked()); - } else if (event instanceof AfterLinkSaveEvent) { - onAfterLinkSave((T) event.getSource(), ((AfterLinkSaveEvent) event).getLinked()); - } else if (event instanceof BeforeLinkDeleteEvent) { - onBeforeLinkDelete((T) event.getSource(), ((BeforeLinkDeleteEvent) event).getLinked()); - } else if (event instanceof AfterLinkDeleteEvent) { - onAfterLinkDelete((T) event.getSource(), ((AfterLinkDeleteEvent) event).getLinked()); + } else if (event instanceof BeforeLinkSaveEvent beforeLinkSaveEvent) { + onBeforeLinkSave((T) event.getSource(), beforeLinkSaveEvent.getLinked()); + } else if (event instanceof AfterLinkSaveEvent afterLinkSaveEvent) { + onAfterLinkSave((T) event.getSource(), afterLinkSaveEvent.getLinked()); + } else if (event instanceof BeforeLinkDeleteEvent beforeLinkDeleteEvent) { + onBeforeLinkDelete((T) event.getSource(), beforeLinkDeleteEvent.getLinked()); + } else if (event instanceof AfterLinkDeleteEvent afterLinkDeleteEvent) { + onAfterLinkDelete((T) event.getSource(), afterLinkDeleteEvent.getLinked()); } else if (event instanceof BeforeDeleteEvent) { onBeforeDelete((T) event.getSource()); } else if (event instanceof AfterDeleteEvent) { diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/AnnotatedEventHandlerInvoker.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/AnnotatedEventHandlerInvoker.java index e0713929d..2f5bc4127 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/AnnotatedEventHandlerInvoker.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/AnnotatedEventHandlerInvoker.java @@ -51,7 +51,7 @@ public class AnnotatedEventHandlerInvoker implements ApplicationListener, EventHandlerMethod> handlerMethods = new LinkedMultiValueMap, EventHandlerMethod>(); + private final MultiValueMap, EventHandlerMethod> handlerMethods = new LinkedMultiValueMap<>(); @Override public void onApplicationEvent(RepositoryEvent event) { @@ -70,11 +70,11 @@ public void onApplicationEvent(RepositoryEvent event) { continue; } - List parameters = new ArrayList(); + List parameters = new ArrayList<>(); parameters.add(src); - if (event instanceof LinkedEntityEvent) { - parameters.add(((LinkedEntityEvent) event).getLinked()); + if (event instanceof LinkedEntityEvent linkedEntityEvent) { + parameters.add(linkedEntityEvent.getLinked()); } if (LOG.isDebugEnabled()) { @@ -149,7 +149,7 @@ private void inspect(Object handler, Method method, Class List events = handlerMethods.get(eventType); if (events == null) { - events = new ArrayList(); + events = new ArrayList<>(); } if (events.isEmpty()) { diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/ValidatingRepositoryEventListener.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/ValidatingRepositoryEventListener.java index b1a38e313..3dedfb32c 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/ValidatingRepositoryEventListener.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/event/ValidatingRepositoryEventListener.java @@ -57,7 +57,7 @@ public ValidatingRepositoryEventListener(ObjectFactory persi Assert.notNull(persistentEntitiesFactory, "PersistentEntities must not be null"); this.persistentEntitiesFactory = persistentEntitiesFactory; - this.validators = new LinkedMultiValueMap(); + this.validators = new LinkedMultiValueMap<>(); } /** @@ -69,7 +69,7 @@ public ValidatingRepositoryEventListener(ObjectFactory persi public ValidatingRepositoryEventListener setValidators(Map> validators) { for (Map.Entry> entry : validators.entrySet()) { - this.validators.put(entry.getKey(), new ArrayList(entry.getValue())); + this.validators.put(entry.getKey(), new ArrayList<>(entry.getValue())); } return this; @@ -153,6 +153,6 @@ private Errors validate(String event, Object entity) { private Collection getValidatorsForEvent(String event) { Collection validators = this.validators.get(event); - return validators == null ? Collections. emptySet() : validators; + return validators == null ? Collections.emptySet() : validators; } } diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ConfigurableHttpMethods.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ConfigurableHttpMethods.java index 85f762ff2..632dd4e5d 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ConfigurableHttpMethods.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ConfigurableHttpMethods.java @@ -72,8 +72,8 @@ static ConfigurableHttpMethods of(HttpMethods methods) { Assert.notNull(methods, "HttpMethods must not be null"); - if (ConfigurableHttpMethods.class.isInstance(methods)) { - return ConfigurableHttpMethods.class.cast(methods); + if (methods instanceof ConfigurableHttpMethods configurableHttpMethods) { + return configurableHttpMethods; } return new ConfigurableHttpMethods(methods.stream().collect(Collectors.toSet())); diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ConfigurationApplyingSupportedHttpMethodsAdapter.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ConfigurationApplyingSupportedHttpMethodsAdapter.java index b9e85a5d3..759e44ac3 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ConfigurationApplyingSupportedHttpMethodsAdapter.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ConfigurationApplyingSupportedHttpMethodsAdapter.java @@ -59,7 +59,7 @@ public HttpMethods getMethodsFor(PersistentProperty property) { HttpMethods methodsFor = delegate.getMethodsFor(property); ResourceMapping mapping = resourceMetadata.getMappingFor(property); - if (!PropertyAwareResourceMapping.class.isInstance(mapping)) { + if (! (mapping instanceof PropertyAwareResourceMapping) ) { return methodsFor; } diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/CrudMethodsSupportedHttpMethods.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/CrudMethodsSupportedHttpMethods.java index b7441970b..86f5f4c34 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/CrudMethodsSupportedHttpMethods.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/CrudMethodsSupportedHttpMethods.java @@ -60,7 +60,7 @@ public HttpMethods getMethodsFor(ResourceType resourceType) { Assert.notNull(resourceType, "EntityRepresentationModel type must not be null"); - Set methods = new HashSet(); + Set methods = new HashSet<>(); methods.add(OPTIONS); switch (resourceType) { @@ -110,7 +110,7 @@ public HttpMethods getMethodsFor(PersistentProperty property) { return HttpMethods.none(); } - Set methods = new HashSet(); + Set methods = new HashSet<>(); methods.add(GET); diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ExposureConfiguration.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ExposureConfiguration.java index b4234c909..0522ed980 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ExposureConfiguration.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ExposureConfiguration.java @@ -149,7 +149,7 @@ HttpMethods filter(ConfigurableHttpMethods methods, PropertyAwareResourceMapping return property.filter(mapping, methods); } - private static ComposableFilter withTypeFilter(Class type, + private static ComposableFilter withTypeFilter(Class type, ComposableFilter function) { return (metadata, httpMethods) -> // diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/HttpMethods.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/HttpMethods.java index ef3c1f0ab..e23f03e6b 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/HttpMethods.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/HttpMethods.java @@ -64,6 +64,7 @@ public static HttpMethods of(Collection methods) { * * @return */ + @Override default Set toSet() { return stream().collect(StreamUtils.toUnmodifiableSet()); } @@ -74,6 +75,7 @@ default Set toSet() { * @param method must not be {@literal null}. * @return */ + @Override default HttpMethods and(HttpMethod... method) { return of(Stream.concat(stream(), Arrays.stream(method)).collect(Collectors.toSet())); } diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ParametersMetadata.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ParametersMetadata.java index 4add2fbd8..f6c64555a 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ParametersMetadata.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/ParametersMetadata.java @@ -49,7 +49,7 @@ public class ParametersMetadata implements Iterable { */ public List getParameterNames() { - List names = new ArrayList(parameterMetadata.size()); + List names = new ArrayList<>(parameterMetadata.size()); for (ParameterMetadata metadata : parameterMetadata) { names.add(metadata.getName()); diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryDetectionStrategy.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryDetectionStrategy.java index ee274598b..96d9ca238 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryDetectionStrategy.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryDetectionStrategy.java @@ -47,7 +47,7 @@ public interface RepositoryDetectionStrategy { * @since 2.5 * @soundtrack Katinka - Ausverkauf */ - public static enum RepositoryDetectionStrategies implements RepositoryDetectionStrategy { + enum RepositoryDetectionStrategies implements RepositoryDetectionStrategy { /** * Considers all repositories. @@ -84,7 +84,7 @@ public boolean isExported(RepositoryMetadata metadata) { @Override public boolean isExported(RepositoryMetadata metadata) { return Modifier.isPublic(metadata.getRepositoryInterface().getModifiers()); - }; + } }, /** diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryMethodResourceMapping.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryMethodResourceMapping.java index a615f2740..efca4ef9e 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryMethodResourceMapping.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryMethodResourceMapping.java @@ -90,7 +90,7 @@ public RepositoryMethodResourceMapping(Method method, ResourceMapping resourceMa private static final List discoverParameterMetadata(Method method, String baseRel) { - List result = new ArrayList(); + List result = new ArrayList<>(); for (MethodParameter parameter : new MethodParameters(method, PARAM_VALUE).getParameters()) { if (!IMPLICIT_PARAMETER_TYPES.contains(parameter.getParameterType()) diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryResourceMappings.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryResourceMappings.java index 95f8ce7f1..09c5f31a0 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryResourceMappings.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/RepositoryResourceMappings.java @@ -41,7 +41,7 @@ public class RepositoryResourceMappings extends PersistentEntitiesResourceMappin private final Repositories repositories; private final RepositoryRestConfiguration configuration; - private final Map, SearchResourceMappings> searchCache = new HashMap, SearchResourceMappings>(); + private final Map, SearchResourceMappings> searchCache = new HashMap<>(); /** * Creates a new {@link RepositoryResourceMappings} from the given {@link RepositoryRestConfiguration}, @@ -103,7 +103,7 @@ public SearchResourceMappings getSearchResourceMappings(Class domainType) { } RepositoryInformation repositoryInformation = repositories.getRequiredRepositoryInformation(domainType); - List mappings = new ArrayList(); + List mappings = new ArrayList<>(); ResourceMetadata resourceMapping = getMetadataFor(domainType); if (resourceMapping.isExported()) { diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/SearchResourceMappings.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/SearchResourceMappings.java index 5dce5c619..9e1667dc9 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/SearchResourceMappings.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/SearchResourceMappings.java @@ -51,7 +51,7 @@ public SearchResourceMappings(List mappings) { Assert.notNull(mappings, "MethodResourceMappings must not be null"); - this.mappings = new HashMap(mappings.size()); + this.mappings = new HashMap<>(mappings.size()); for (MethodResourceMapping mapping : mappings) { diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/TypeBasedCollectionResourceMapping.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/TypeBasedCollectionResourceMapping.java index 1f7131571..db2092c94 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/TypeBasedCollectionResourceMapping.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/TypeBasedCollectionResourceMapping.java @@ -44,7 +44,8 @@ class TypeBasedCollectionResourceMapping implements CollectionResourceMapping { private final Lazy path; private final Lazy rel; - private final Lazy description, itemResourceDescription; + private final Lazy description; + private final Lazy itemResourceDescription; /** * Creates a new {@link TypeBasedCollectionResourceMapping} using the given type. diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/support/ResourceMappingUtils.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/support/ResourceMappingUtils.java index f757171f4..63e641532 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/support/ResourceMappingUtils.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/support/ResourceMappingUtils.java @@ -44,10 +44,8 @@ protected ResourceMappingUtils() {} public static String findRel(Class type) { RestResource anno = findAnnotation(type, RestResource.class); - if (anno != null) { - if (hasText(anno.rel())) { + if (anno != null && hasText(anno.rel())) { return anno.rel(); - } } return uncapitalize(type.getSimpleName().replaceAll("Repository", "")); @@ -57,10 +55,8 @@ public static String findRel(Method method) { RestResource anno = findAnnotation(method, RestResource.class); - if (anno != null) { - if (hasText(anno.rel())) { + if (anno != null && hasText(anno.rel()) ) { return anno.rel(); - } } return method.getName(); @@ -85,10 +81,8 @@ public static String findPath(Class type) { RestResource anno = findAnnotation(type, RestResource.class); - if (anno != null) { - if (hasTextExceptSlash(anno.path())) { + if (anno != null && hasTextExceptSlash(anno.path())) { return removeLeadingSlash(anno.path()); - } } return uncapitalize(type.getSimpleName().replaceAll("Repository", "")); @@ -98,10 +92,8 @@ public static String findPath(Method method) { RestResource anno = findAnnotation(method, RestResource.class); - if (anno != null) { - if (hasTextExceptSlash(anno.path())) { + if (anno != null && hasTextExceptSlash(anno.path())) { return removeLeadingSlash(anno.path()); - } } return method.getName(); diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/support/ResourceStringUtils.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/support/ResourceStringUtils.java index 95f473119..3781bf208 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/support/ResourceStringUtils.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/support/ResourceStringUtils.java @@ -20,7 +20,10 @@ * * @author Florent Biville */ -public class ResourceStringUtils { +public final class ResourceStringUtils { + + private ResourceStringUtils(){ + } /** * Checks whether the given input contains actual text (slash excluded). This is a specializing variant of diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/util/MapUtils.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/util/MapUtils.java index c50baaebd..8b756079f 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/util/MapUtils.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/util/MapUtils.java @@ -40,7 +40,7 @@ public interface MapUtils { public static Map> toMap(MultiValueMap map) { Assert.notNull(map, "Given map must not be null"); - Map> result = new LinkedHashMap>(map.size()); + Map> result = new LinkedHashMap<>(map.size()); for (Entry> entry : map.entrySet()) { result.put(entry.getKey(), entry.getValue()); diff --git a/spring-data-rest-core/src/test/java/org/springframework/data/rest/core/mapping/RepositoryResourceMappingsIntegrationTests.java b/spring-data-rest-core/src/test/java/org/springframework/data/rest/core/mapping/RepositoryResourceMappingsIntegrationTests.java index 05bab0640..ecd73a7ee 100755 --- a/spring-data-rest-core/src/test/java/org/springframework/data/rest/core/mapping/RepositoryResourceMappingsIntegrationTests.java +++ b/spring-data-rest-core/src/test/java/org/springframework/data/rest/core/mapping/RepositoryResourceMappingsIntegrationTests.java @@ -140,8 +140,7 @@ void skipsSearchMethodsNotExported() { methodNames.add(method.getMethod().getName()); } - assertThat(methodNames).hasSize(2); - assertThat(methodNames).contains("findByFirstName", "findByCreatedGreaterThan"); + assertThat(methodNames).hasSize(2).contains("findByFirstName", "findByCreatedGreaterThan"); } @Test // DATAREST-325