diff --git a/spring-data-rest-webmvc/pom.xml b/spring-data-rest-webmvc/pom.xml index ed5652daa..0845e7712 100644 --- a/spring-data-rest-webmvc/pom.xml +++ b/spring-data-rest-webmvc/pom.xml @@ -20,7 +20,7 @@ 2.0.9 2.0.2.1 4.0.1.RELEASE - 2.3.7 + 2.4.4 diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverter.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverter.java index 613bffb2b..d214d3ee7 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverter.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverter.java @@ -188,25 +188,23 @@ public class PersistentEntityToJsonSchemaConverter implements ConditionalGeneric } } - boolean isPersistentPropertyNull = persistentProperty == null; - AnnotatedMember primaryMember = definition.getPrimaryMember(); - if (primaryMember == null) { // Ignore bean definitions with neither a getter nor a setter + + if (primaryMember == null) { continue; } - TypeInformation propertyType = isPersistentPropertyNull - ? ClassTypeInformation.from(primaryMember.getRawType()) - : persistentProperty.getTypeInformation(); + TypeInformation propertyType = persistentProperty == null + ? ClassTypeInformation.from(primaryMember.getRawType()) : persistentProperty.getTypeInformation(); TypeInformation actualPropertyType = propertyType.getActualType(); Class rawPropertyType = propertyType.getType(); JsonSchemaFormat format = configuration.getMetadataConfiguration().getSchemaFormatFor(rawPropertyType); - ResourceDescription description = isPersistentPropertyNull + ResourceDescription description = persistentProperty == null ? jackson.getFallbackDescription(metadata, definition) : getDescriptionFor(persistentProperty, metadata); JsonSchemaProperty property = getSchemaProperty(definition, propertyType, description); - boolean isSyntheticProperty = isPersistentPropertyNull; + boolean isSyntheticProperty = persistentProperty == null; boolean isNotWritable = !isSyntheticProperty && !persistentProperty.isWritable(); boolean isJacksonReadOnly = !isSyntheticProperty && jackson.isReadOnly(persistentProperty); @@ -233,7 +231,7 @@ public class PersistentEntityToJsonSchemaConverter implements ConditionalGeneric continue; } - if (isPersistentPropertyNull) { + if (persistentProperty == null) { registrar.register(property, actualPropertyType); continue; } diff --git a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/alps/AlpsControllerIntegrationTests.java b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/alps/AlpsControllerIntegrationTests.java index c870f6a35..893557025 100644 --- a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/alps/AlpsControllerIntegrationTests.java +++ b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/alps/AlpsControllerIntegrationTests.java @@ -17,7 +17,6 @@ package org.springframework.data.rest.webmvc.alps; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; -import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import org.junit.After; @@ -209,11 +208,10 @@ public class AlpsControllerIntegrationTests extends AbstractControllerIntegratio Link profileLink = client.discoverUnique("profile"); Link groovyDomainObjectLink = client.discoverUnique(profileLink, "simulatedGroovyDomainClasses"); + client.follow(groovyDomainObjectLink)// .andExpect(jsonPath( "$.alps.descriptors[?(@.id == 'simulatedGroovyDomainClass-representation')][0].descriptors[0].name", - is("name") - )); - + is("name"))); } } diff --git a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/jpa/groovy/SimulatedGroovyDomainClass.java b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/jpa/groovy/SimulatedGroovyDomainClass.java index 2c739f195..05f4a765d 100644 --- a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/jpa/groovy/SimulatedGroovyDomainClass.java +++ b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/jpa/groovy/SimulatedGroovyDomainClass.java @@ -15,26 +15,24 @@ */ package org.springframework.data.rest.webmvc.jpa.groovy; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -import org.springframework.data.mongodb.core.mapping.Document; - import groovy.lang.GroovyObject; import groovy.lang.MetaClass; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + /** * Simulates a Groovy domain object by extending {@link GroovyObject}. * * @author Greg Turnquist + * @author Oliver Gierke * @see DATAREST-754 */ @Entity public class SimulatedGroovyDomainClass implements GroovyObject { - @Id @GeneratedValue private Long id; + private @Id @GeneratedValue Long id; private String name; public Long getId() { @@ -53,8 +51,6 @@ public class SimulatedGroovyDomainClass implements GroovyObject { this.name = name; } - protected SimulatedGroovyDomainClass() {} - // // The following fields don't actually have to be implemented since the test cases don't // make any Groovy calls. This just simulates the structure of a Groovy object to @@ -72,9 +68,7 @@ public class SimulatedGroovyDomainClass implements GroovyObject { } @Override - public void setProperty(String s, Object o) { - - } + public void setProperty(String s, Object o) {} @Override public MetaClass getMetaClass() { @@ -82,7 +76,5 @@ public class SimulatedGroovyDomainClass implements GroovyObject { } @Override - public void setMetaClass(MetaClass metaClass) { - - } + public void setMetaClass(MetaClass metaClass) {} } diff --git a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/jpa/groovy/SimulatedGroovyDomainClassRepository.java b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/jpa/groovy/SimulatedGroovyDomainClassRepository.java index 90f7bd8f8..4b3c29fc2 100644 --- a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/jpa/groovy/SimulatedGroovyDomainClassRepository.java +++ b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/jpa/groovy/SimulatedGroovyDomainClassRepository.java @@ -23,6 +23,4 @@ import org.springframework.data.repository.CrudRepository; * @author Greg Turnquist * @see DATAREST-754 */ -public interface SimulatedGroovyDomainClassRepository extends CrudRepository { - -} +public interface SimulatedGroovyDomainClassRepository extends CrudRepository {} diff --git a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverterUnitTests.java b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverterUnitTests.java index 6b95964a4..73128c568 100644 --- a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverterUnitTests.java +++ b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntityToJsonSchemaConverterUnitTests.java @@ -74,7 +74,6 @@ public class PersistentEntityToJsonSchemaConverterUnitTests { config.getMetadataConfiguration().registerJsonSchemaFormat(JsonSchemaFormat.EMAIL, EmailAddress.class); config.getMetadataConfiguration().registerFormattingPatternFor("[A-Z]+", TypeWithPattern.class); - config.getMetadataConfiguration().registerJsonSchemaFormat(JsonSchemaFormat.EMAIL); config.exposeIdsFor(Profile.class); } diff --git a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/mongodb/groovy/SimulatedGroovyDomainClass.java b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/mongodb/groovy/SimulatedGroovyDomainClass.java index 2701bf6ee..f01b65d8e 100644 --- a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/mongodb/groovy/SimulatedGroovyDomainClass.java +++ b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/mongodb/groovy/SimulatedGroovyDomainClass.java @@ -15,22 +15,22 @@ */ package org.springframework.data.rest.webmvc.mongodb.groovy; -import org.springframework.data.mongodb.core.mapping.Document; - import groovy.lang.GroovyObject; import groovy.lang.MetaClass; +import org.springframework.data.mongodb.core.mapping.Document; + /** * Simulates a Groovy domain object by extending {@link GroovyObject}. * * @author Greg Turnquist + * @author Oliver Gierke * @see DATAREST-754 */ @Document public class SimulatedGroovyDomainClass implements GroovyObject { - private String id; - private String name; + private String id, name; public String getId() { return id; @@ -65,9 +65,7 @@ public class SimulatedGroovyDomainClass implements GroovyObject { } @Override - public void setProperty(String s, Object o) { - - } + public void setProperty(String s, Object o) {} @Override public MetaClass getMetaClass() { @@ -75,7 +73,5 @@ public class SimulatedGroovyDomainClass implements GroovyObject { } @Override - public void setMetaClass(MetaClass metaClass) { - - } + public void setMetaClass(MetaClass metaClass) {} } diff --git a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/mongodb/groovy/SimulatedGroovyDomainClassRepository.java b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/mongodb/groovy/SimulatedGroovyDomainClassRepository.java index b11e50699..f25dacf64 100644 --- a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/mongodb/groovy/SimulatedGroovyDomainClassRepository.java +++ b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/mongodb/groovy/SimulatedGroovyDomainClassRepository.java @@ -23,6 +23,4 @@ import org.springframework.data.repository.CrudRepository; * @author Greg Turnquist * @see DATAREST-754 */ -public interface SimulatedGroovyDomainClassRepository extends CrudRepository { - -} +public interface SimulatedGroovyDomainClassRepository extends CrudRepository {}