DATACMNS-669 - Moved some types for better code structure.

Introduced dedicated querydsl.bindings package to contain all non-web projects to make sure domain types and repositories don't have to depend on types in a web package.

Updated Sonargraph architecture description accordingly.

Original pull request: #132.
This commit is contained in:
Oliver Gierke
2015-07-17 23:30:02 +02:00
parent 0330cdc3d3
commit c5e5244162
13 changed files with 92 additions and 63 deletions

View File

@@ -13,7 +13,15 @@
<element type="TypeFilter" name="Assignment">
<element type="IncludeTypePattern" name="**.config.**"/>
</element>
<dependency toName="Project|spring-data-commons::Layer|Repositories::Subsystem|Querydsl" type="AllowedDependency"/>
<dependency toName="Project|spring-data-commons::Layer|Repositories::Subsystem|Support" type="AllowedDependency"/>
<dependency toName="Project|spring-data-commons::Layer|Web::Subsystem|Querydsl" type="AllowedDependency"/>
</element>
<element type="Subsystem" name="Querydsl">
<element type="TypeFilter" name="Assignment">
<element type="WeakTypePattern" name="**.querydsl.**"/>
</element>
<stereotype name="Unrestricted"/>
</element>
<dependency toName="Project|spring-data-commons::Layer|Application" type="AllowedDependency"/>
<dependency toName="Project|spring-data-commons::Layer|Core" type="AllowedDependency"/>
@@ -22,6 +30,7 @@
</element>
<element type="Layer" name="Repositories">
<element type="TypeFilter" name="Assignment">
<element type="WeakTypePattern" name="**.querydsl.**"/>
<element type="IncludeTypePattern" name="**.repository.**"/>
</element>
<element type="Subsystem" name="API">
@@ -88,6 +97,12 @@
</element>
<dependency toName="Project|spring-data-commons::Layer|Repositories::Subsystem|Support" type="AllowedDependency"/>
</element>
<element type="Subsystem" name="Querydsl">
<element type="TypeFilter" name="Assignment">
<element type="WeakTypePattern" name="**.querydsl.**"/>
</element>
<dependency toName="Project|spring-data-commons::Layer|Repositories::Subsystem|Support" type="AllowedDependency"/>
</element>
<dependency toName="Project|spring-data-commons::Layer|Application" type="AllowedDependency"/>
<dependency toName="Project|spring-data-commons::Layer|Core" type="AllowedDependency"/>
<dependency toName="Project|spring-data-commons::Layer|Mapping" type="AllowedDependency"/>
@@ -181,11 +196,6 @@
<element type="IncludeTypePattern" name="**.projection.**"/>
</element>
</element>
<element type="Subsystem" name="Querydsl">
<element type="TypeFilter" name="Assignment">
<element type="IncludeTypePattern" name="**.querydsl.**"/>
</element>
</element>
<dependency toName="Project|spring-data-commons::Layer|Application" type="AllowedDependency"/>
</element>
<element type="Layer" name="Application">
@@ -409,58 +419,58 @@
</item>
</itemDefinition>
<attributeConfiguration type="AttributeConfiguration">
<property value="disabled" name="DistributedOverPathContainers"/>
<property value="disabled" name="AccumulatedCyclomaticComplexity"/>
<property value="disabled" name="NumberOfCyclicDirectories"/>
<property value="disabled" name="AverageCyclomaticComplexityPerMethod"/>
<property value="disabled" name="NumberOfCyclicProjects"/>
<property value="disabled" name="NumberOfCyclicSourceFiles"/>
<property value="disabled" name="RelativeAverageTypeDependency"/>
<property value="disabled" name="NumberOfLayers"/>
<property value="disabled" name="CyclomaticComplexity"/>
<property value="disabled" name="NumberOfMethodsWithImplementation"/>
<property value="disabled" name="NumberOfVerticalSliceGroups"/>
<property value="disabled" name="ExtendedCyclomaticComplexity"/>
<property value="disabled" name="NumberOfDuplicateCodeBlocksWarnings"/>
<property value="disabled" name="NormalizedCumulativeTypeDependency"/>
<property value="disabled" name="AccumulatedExtendedCyclomaticComplexity"/>
<property value="disabled" name="NumberOfLayerGroups"/>
<property value="disabled" name="NumberOfExcludedTargetFiles"/>
<property value="disabled" name="NumberOfCyclicLayers"/>
<property value="disabled" name="NumberOfRefactorings"/>
<property value="disabled" name="NumberOfSubsystems"/>
<property value="disabled" name="MaxCyclomaticComplexityPerMethod"/>
<property value="disabled" name="NumberOfWorkspaceWarnings"/>
<property value="disabled" name="NumberOfCyclicLayerGroups"/>
<property value="disabled" name="NumberOfTasks"/>
<property value="disabled" name="JdkVersion"/>
<property value="disabled" name="AverageAccumulatedExtendedCyclomaticComplexityPerType"/>
<property value="disabled" name="NumberOfAbstractMethods"/>
<property value="disabled" name="NumberOfCyclicVerticalSliceGroups"/>
<property value="disabled" name="AverageAssertionUsage"/>
<property value="disabled" name="NumberOfFixWarnings"/>
<property value="disabled" name="Timestamp"/>
<property value="disabled" name="NumberOfNameParts"/>
<property value="disabled" name="NumberOfAssertions"/>
<property value="disabled" name="AverageTypeDependency"/>
<property value="disabled" name="NumberOfRefactorings"/>
<property value="disabled" name="NumberOfNamedInterfaces"/>
<property value="disabled" name="NumberOfTypesWithImplementation"/>
<property value="disabled" name="NumberOfAbstractTypes"/>
<property value="disabled" name="NumberOfVerticalSlices"/>
<property value="disabled" name="NumberOfMetricWarnings"/>
<property value="disabled" name="MaxExtendedCyclomaticComplexityPerMethod"/>
<property value="disabled" name="DependsUpon"/>
<property value="disabled" name="NumberOfExcludedSourceFiles"/>
<property value="disabled" name="AverageExtendedCyclomaticComplexityPerMethod"/>
<property value="disabled" name="NumberOfCyclicSubsystems"/>
<property value="disabled" name="MaxAccumulatedCyclomaticComplexityPerType"/>
<property value="disabled" name="MaxAccumulatedExtendedCyclomaticComplexityPerType"/>
<property value="disabled" name="NumberOfIgnoredViolations"/>
<property value="disabled" name="Level"/>
<property value="disabled" name="NumberOfWarnings"/>
<property value="disabled" name="NumberOfCyclicNamespaces"/>
<property value="disabled" name="DistributedOverPathContainers"/>
<property value="disabled" name="NumberOfCyclicVerticalSlices"/>
<property value="disabled" name="NormalizedCumulativeTypeDependency"/>
<property value="disabled" name="NumberOfCyclicVerticalSliceGroups"/>
<property value="disabled" name="NumberOfWorkspaceWarnings"/>
<property value="disabled" name="RelativeAverageTypeDependency"/>
<property value="disabled" name="AverageExtendedCyclomaticComplexityPerMethod"/>
<property value="disabled" name="NumberOfMetricWarnings"/>
<property value="disabled" name="NumberOfTypesWithImplementation"/>
<property value="disabled" name="NumberOfSubsystems"/>
<property value="disabled" name="NumberOfFixWarnings"/>
<property value="disabled" name="NumberOfLayers"/>
<property value="disabled" name="NumberOfCyclicLayers"/>
<property value="disabled" name="NumberOfIgnoredViolations"/>
<property value="disabled" name="AccumulatedCyclomaticComplexity"/>
<property value="disabled" name="NumberOfMethodsWithImplementation"/>
<property value="disabled" name="NumberOfIgnoredWarnings"/>
<property value="disabled" name="NumberOfVerticalSliceGroups"/>
<property value="disabled" name="NumberOfExcludedTargetFiles"/>
<property value="disabled" name="NumberOfNameParts"/>
<property value="disabled" name="Level"/>
<property value="disabled" name="ExtendedCyclomaticComplexity"/>
<property value="disabled" name="NumberOfCyclicLayerGroups"/>
<property value="disabled" name="NumberOfCyclicProjects"/>
<property value="disabled" name="JdkVersion"/>
<property value="disabled" name="NumberOfExcludedSourceFiles"/>
<property value="disabled" name="NumberOfTasks"/>
<property value="disabled" name="NumberOfAbstractTypes"/>
<property value="disabled" name="AverageAccumulatedExtendedCyclomaticComplexityPerType"/>
<property value="disabled" name="CyclomaticComplexity"/>
<property value="disabled" name="MaxAccumulatedCyclomaticComplexityPerType"/>
<property value="disabled" name="MaxCyclomaticComplexityPerMethod"/>
<property value="disabled" name="DependsUpon"/>
<property value="disabled" name="AverageAccumulatedCyclomaticComplexityPerType"/>
<property value="disabled" name="NumberOfCyclicNamespaces"/>
<property value="disabled" name="NumberOfLayerGroups"/>
<property value="disabled" name="NumberOfDuplicateCodeBlocksWarnings"/>
<property value="disabled" name="AccumulatedExtendedCyclomaticComplexity"/>
<property value="disabled" name="NumberOfAbstractMethods"/>
<property value="disabled" name="NumberOfVerticalSlices"/>
<property value="disabled" name="AverageAssertionUsage"/>
<property value="disabled" name="AverageCyclomaticComplexityPerMethod"/>
<property value="disabled" name="MaxExtendedCyclomaticComplexityPerMethod"/>
<property value="disabled" name="NumberOfCyclicSubsystems"/>
<property value="disabled" name="MaxAccumulatedExtendedCyclomaticComplexityPerType"/>
<property value="disabled" name="NumberOfCyclicDirectories"/>
<property value="disabled" name="NumberOfCyclicSourceFiles"/>
<property value="disabled" name="Timestamp"/>
<property value="disabled" name="NumberOfAssertions"/>
<property value="disabled" name="NumberOfWarnings"/>
</attributeConfiguration>
</context>

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.web.querydsl;
package org.springframework.data.querydsl.binding;
import java.util.Collection;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.web.querydsl;
package org.springframework.data.querydsl.binding;
import com.mysema.query.types.EntityPath;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.web.querydsl;
package org.springframework.data.querydsl.binding;
import java.util.Arrays;
import java.util.Collection;
@@ -169,7 +169,7 @@ public class QuerydslBindings {
* @return
*/
@SuppressWarnings("unchecked")
<S extends Path<T>, T> MultiValueBinding<S, T> getBindingForPath(PropertyPath path) {
public <S extends Path<T>, T> MultiValueBinding<S, T> getBindingForPath(PropertyPath path) {
Assert.notNull(path, "PropertyPath must not be null!");

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.web.querydsl;
package org.springframework.data.querydsl.binding;
import java.util.Collection;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.web.querydsl;
package org.springframework.data.querydsl.binding;
import java.lang.reflect.Field;
import java.util.ArrayList;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.web.querydsl;
package org.springframework.data.querydsl.binding;
import com.mysema.query.types.Path;
import com.mysema.query.types.Predicate;

View File

@@ -20,6 +20,8 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.data.querydsl.binding.QuerydslBinderCustomizer;
/**
* Annotation to customize the binding of HTTP request parameters to a Querydsl {@link com.mysema.query.types.Predicate}
* in Spring MVC handler methods.

View File

@@ -30,6 +30,9 @@ import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.support.DefaultConversionService;
import org.springframework.data.querydsl.EntityPathResolver;
import org.springframework.data.querydsl.SimpleEntityPathResolver;
import org.springframework.data.querydsl.binding.QuerydslBinderCustomizer;
import org.springframework.data.querydsl.binding.QuerydslBindings;
import org.springframework.data.querydsl.binding.QuerydslPredicateBuilder;
import org.springframework.data.repository.support.Repositories;
import org.springframework.data.util.ClassTypeInformation;
import org.springframework.data.util.TypeInformation;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.web.querydsl;
package org.springframework.data.querydsl.binding;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
@@ -25,6 +25,10 @@ import org.springframework.data.mapping.PropertyPath;
import org.springframework.data.querydsl.QUser;
import org.springframework.data.querydsl.SimpleEntityPathResolver;
import org.springframework.data.querydsl.User;
import org.springframework.data.querydsl.binding.MultiValueBinding;
import org.springframework.data.querydsl.binding.QuerydslBindings;
import org.springframework.data.querydsl.binding.QuerydslPredicateBuilder;
import org.springframework.data.querydsl.binding.SingleValueBinding;
import org.springframework.test.util.ReflectionTestUtils;
import com.mysema.query.types.Path;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.web.querydsl;
package org.springframework.data.querydsl.binding;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
@@ -27,6 +27,7 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.data.querydsl.QUser;
import org.springframework.data.querydsl.binding.QuerydslDefaultBinding;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Predicate;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.web.querydsl;
package org.springframework.data.querydsl.binding;
import static org.hamcrest.Matchers.*;
import static org.hamcrest.core.Is.is;
@@ -28,6 +28,9 @@ import org.springframework.data.querydsl.QUser;
import org.springframework.data.querydsl.SimpleEntityPathResolver;
import org.springframework.data.querydsl.User;
import org.springframework.data.querydsl.Users;
import org.springframework.data.querydsl.binding.QuerydslBindings;
import org.springframework.data.querydsl.binding.QuerydslPredicateBuilder;
import org.springframework.data.querydsl.binding.SingleValueBinding;
import org.springframework.data.util.ClassTypeInformation;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;

View File

@@ -33,9 +33,15 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.mapping.PropertyPath;
import org.springframework.data.querydsl.QUser;
import org.springframework.data.querydsl.User;
import org.springframework.data.querydsl.binding.MultiValueBinding;
import org.springframework.data.querydsl.binding.QuerydslBinderCustomizer;
import org.springframework.data.querydsl.binding.QuerydslBindings;
import org.springframework.data.querydsl.binding.SingleValueBinding;
import org.springframework.data.repository.support.Repositories;
import org.springframework.data.util.ClassTypeInformation;
import org.springframework.data.util.TypeInformation;
import org.springframework.data.web.querydsl.QuerydslPredicate;
import org.springframework.data.web.querydsl.QuerydslPredicateArgumentResolver;
import org.springframework.hateoas.Resource;
import org.springframework.http.HttpEntity;
import org.springframework.http.ResponseEntity;