From b811fa3ea851e878aa8bc9d71654fe29fcf21c2f Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Mon, 23 Jan 2012 11:26:39 +0100 Subject: [PATCH] DATACMNS-124 - Added missing package-info.java files. Polished JavaDocs. Polished MappingContextEvent and added deprecations to it to be cleaned up for 1.3.GA. --- .../data/annotation/Reference.java | 10 ++-- .../data/annotation/Transient.java | 11 ++-- .../data/annotation/package-info.java | 4 ++ .../data/authentication/UserCredentials.java | 4 +- .../data/authentication/package-info.java | 4 ++ .../data/convert/EntityConverter.java | 7 ++- .../data/convert/package-info.java | 6 ++ .../data/crossstore/package-info.java | 4 ++ .../data/history/package-info.java | 5 ++ .../data/mapping/context/package-info.java | 4 ++ .../mapping/event/MappingContextEvent.java | 57 ++++++++++++++++--- .../data/mapping/event/package-info.java | 4 ++ .../data/mapping/model/package-info.java | 4 ++ .../data/mapping/package-info.java | 4 ++ .../data/persistence/package-info.java | 6 ++ .../data/querydsl/package-info.java | 6 ++ .../data/repository/cdi/package-info.java | 5 ++ .../data/repository/core/package-info.java | 5 ++ .../data/repository/history/package-info.java | 5 ++ .../history/support/package-info.java | 5 ++ .../data/repository/support/package-info.java | 4 ++ .../data/util/package-info.java | 4 ++ .../data/web/package-info.java | 4 ++ .../AbstractPersistentPropertyUnitTests.java | 26 ++++++++- spring-data-commons-parent/pom.xml | 3 + 25 files changed, 180 insertions(+), 21 deletions(-) create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/annotation/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/authentication/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/convert/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/crossstore/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/history/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/mapping/context/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/mapping/event/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/mapping/model/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/mapping/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/persistence/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/querydsl/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/repository/cdi/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/repository/core/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/repository/history/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/repository/history/support/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/repository/support/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/util/package-info.java create mode 100644 spring-data-commons-core/src/main/java/org/springframework/data/web/package-info.java diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/annotation/Reference.java b/spring-data-commons-core/src/main/java/org/springframework/data/annotation/Reference.java index 19317b806..c299b2222 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/annotation/Reference.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/annotation/Reference.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2011 by the original author(s). + * Copyright 2011-2012 the original author or authors. * * 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 + * 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, @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.springframework.data.annotation; import java.lang.annotation.ElementType; @@ -22,7 +21,10 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** - * @author Jon Brisbin + * Meta-annotation to be used to annotate annotations that mark references to other objects. + * + * @author Oliver Gierke + * @author Jon Brisbin */ @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.ANNOTATION_TYPE, ElementType.FIELD }) diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/annotation/Transient.java b/spring-data-commons-core/src/main/java/org/springframework/data/annotation/Transient.java index d2643445c..36a67d4c1 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/annotation/Transient.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/annotation/Transient.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2011 by the original author(s). + * Copyright 20011-2012 the original author or authors. * * 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 + * 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, @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.springframework.data.annotation; import java.lang.annotation.ElementType; @@ -22,7 +21,11 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** - * @author J. Brisbin + * Marks a field to be transient for the mapping framework. Thus the property will not be persisted and not further + * inspected by the mapping framework. + * + * @author Oliver Gierke + * @author Jon Brisbin */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/annotation/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/annotation/package-info.java new file mode 100644 index 000000000..01d4d0313 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/annotation/package-info.java @@ -0,0 +1,4 @@ +/** + * Core annotations being used by Spring Data. + */ +package org.springframework.data.annotation; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/authentication/UserCredentials.java b/spring-data-commons-core/src/main/java/org/springframework/data/authentication/UserCredentials.java index 46cc87b3e..9d8c638f6 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/authentication/UserCredentials.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/authentication/UserCredentials.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2011 by the original author(s). + * Copyright 2011-2012 the original author or authors. * * 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 + * 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, diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/authentication/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/authentication/package-info.java new file mode 100644 index 000000000..46a1ee551 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/authentication/package-info.java @@ -0,0 +1,4 @@ +/** + * Types to abstract authentication concepts. + */ +package org.springframework.data.authentication; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/convert/EntityConverter.java b/spring-data-commons-core/src/main/java/org/springframework/data/convert/EntityConverter.java index 14dbc474c..8e63458be 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/convert/EntityConverter.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/convert/EntityConverter.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2011 by the original author(s). + * Copyright 2011-2012 the original author or authors. * * 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 + * 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, @@ -21,6 +21,8 @@ import org.springframework.data.mapping.PersistentProperty; import org.springframework.data.mapping.context.MappingContext; /** + * Combined {@link EntityReader} and {@link EntityWriter} and add the ability to access a {@link MappingContext} and + * {@link ConversionService}. * * @param the concrete {@link PersistentEntity} implementation the converter is based on. * @param

the concrete {@link PersistentProperty} implementation the converter is based on. @@ -44,5 +46,4 @@ public interface EntityConverter, P extends Per * @return never {@literal null}. */ ConversionService getConversionService(); - } diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/convert/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/convert/package-info.java new file mode 100644 index 000000000..9868f2b3f --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/convert/package-info.java @@ -0,0 +1,6 @@ +/** + * General purpose conversion framework to read objects from a data store abstraction and write it back. + * + * @see org.springframework.data.convert.EntityConverter + */ +package org.springframework.data.convert; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/package-info.java new file mode 100644 index 000000000..f874dbaeb --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/crossstore/package-info.java @@ -0,0 +1,4 @@ +/** + * Support for cross-store persistence. + */ +package org.springframework.data.crossstore; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/history/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/history/package-info.java new file mode 100644 index 000000000..6d0af2eac --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/history/package-info.java @@ -0,0 +1,5 @@ +/** + * Basic interfaces and value objects for historiography API. + */ +package org.springframework.data.history; + diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/context/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/context/package-info.java new file mode 100644 index 000000000..8d05431bc --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/context/package-info.java @@ -0,0 +1,4 @@ +/** + * Mapping context API and implementation base classes. + */ +package org.springframework.data.mapping.context; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/event/MappingContextEvent.java b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/event/MappingContextEvent.java index 911b7cdd0..72e9a60a8 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/event/MappingContextEvent.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/event/MappingContextEvent.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2011 by the original author(s). + * Copyright 2011-2012 the original author or authors. * * 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 + * 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, @@ -13,34 +13,77 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.springframework.data.mapping.event; import org.springframework.context.ApplicationEvent; import org.springframework.data.mapping.PersistentEntity; import org.springframework.data.mapping.PersistentProperty; import org.springframework.data.util.TypeInformation; +import org.springframework.util.Assert; /** - * @author Jon Brisbin + * Base implementation of an {@link ApplicationEvent} refering to a {@link PersistentEntity}. + * + * @author Oliver Gierke + * @author Jon Brisbin + * @param the {@link PersistentEntity} the context was created for + * @param

the {@link PersistentProperty} the {@link PersistentEntity} consists of */ public class MappingContextEvent, P extends PersistentProperty

> extends ApplicationEvent { private static final long serialVersionUID = 1336466833846092490L; - private TypeInformation typeInformation; + private final TypeInformation typeInformation; + private final E source; + + /** + * Creates a new {@link MappingContextEvent} for the given {@link PersistentEntity}. + * + * @param source must not be {@literal null}. + */ + @SuppressWarnings("deprecation") + public MappingContextEvent(E source) { + this(source, source.getTypeInformation()); + } + + /** + * Creates a new {@link MappingContextEvent} for the given {@link PersistentEntity} and {@link TypeInformation}. + * + * @deprecated use {@link #MappingContextEvent(PersistentEntity)} instead. Will be removed for 1.3.GA. + * @param source must not be {@literal null}. + * @param typeInformation must not be {@literal null}. + */ + @Deprecated public MappingContextEvent(E source, TypeInformation typeInformation) { super(source); + + Assert.notNull(source); + Assert.notNull(typeInformation); + + this.source = source; this.typeInformation = typeInformation; } + /** + * The {@link TypeInformation} the event was created for (usually the one derived from the underlying + * {@link PersistentEntity}). + * + * @deprecated use the {@link TypeInformation} available from {@link #getPersistentEntity()} instead. Will be removed + * for 1.3.GA. + * @return + */ + @Deprecated public TypeInformation getTypeInformation() { return typeInformation; } - @SuppressWarnings("unchecked") + /** + * Returns the {@link PersistentEntity} the event was created for. + * + * @return + */ public E getPersistentEntity() { - return (E) source; + return source; } } diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/event/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/event/package-info.java new file mode 100644 index 000000000..e2d6753c5 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/event/package-info.java @@ -0,0 +1,4 @@ +/** + * + */ +package org.springframework.data.mapping.event; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/model/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/model/package-info.java new file mode 100644 index 000000000..255afe5b6 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/model/package-info.java @@ -0,0 +1,4 @@ +/** + * Core implementation of the mapping subsystem's model. + */ +package org.springframework.data.mapping.model; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/package-info.java new file mode 100644 index 000000000..471d0e38d --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/package-info.java @@ -0,0 +1,4 @@ +/** + * Base package for the mapping subsystem. + */ +package org.springframework.data.mapping; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/persistence/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/persistence/package-info.java new file mode 100644 index 000000000..8966054f3 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/persistence/package-info.java @@ -0,0 +1,6 @@ +/** + * Deprecated entity instantiation API. + * + * @deprecated Use entity instantation API around {@link org.springframework.data.convert.EntityInstantiator} instead. + */ +package org.springframework.data.persistence; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/querydsl/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/querydsl/package-info.java new file mode 100644 index 000000000..a072e17d5 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/querydsl/package-info.java @@ -0,0 +1,6 @@ +/** + * Querydsl integration support classes. + * + * @see http://www.querydsl.com + */ +package org.springframework.data.querydsl; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/repository/cdi/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/repository/cdi/package-info.java new file mode 100644 index 000000000..d8f695547 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/repository/cdi/package-info.java @@ -0,0 +1,5 @@ +/** + * Base classes to implement CDI support for repositories. + */ +package org.springframework.data.repository.cdi; + diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/repository/core/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/repository/core/package-info.java new file mode 100644 index 000000000..b869e32f5 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/repository/core/package-info.java @@ -0,0 +1,5 @@ +/** + * Core abstractions for repository implementation. + */ +package org.springframework.data.repository.core; + diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/repository/history/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/repository/history/package-info.java new file mode 100644 index 000000000..d3e9a74b8 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/repository/history/package-info.java @@ -0,0 +1,5 @@ +/** + * API for repositories using historiography. + */ +package org.springframework.data.repository.history; + diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/repository/history/support/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/repository/history/support/package-info.java new file mode 100644 index 000000000..d5735adc6 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/repository/history/support/package-info.java @@ -0,0 +1,5 @@ +/** + * Value objects to implement core repository interfaces for historiography. + */ +package org.springframework.data.repository.history.support; + diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/repository/support/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/repository/support/package-info.java new file mode 100644 index 000000000..875f15896 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/repository/support/package-info.java @@ -0,0 +1,4 @@ +/** + * Support classes for integration of the repository programming model with 3rd party frameworks. + */ +package org.springframework.data.repository.support; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/util/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/util/package-info.java new file mode 100644 index 000000000..8cc907d47 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/util/package-info.java @@ -0,0 +1,4 @@ +/** + * Core utility APIs such as a type information framework to resolve generic types. + */ +package org.springframework.data.util; \ No newline at end of file diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/web/package-info.java b/spring-data-commons-core/src/main/java/org/springframework/data/web/package-info.java new file mode 100644 index 000000000..01ea191d1 --- /dev/null +++ b/spring-data-commons-core/src/main/java/org/springframework/data/web/package-info.java @@ -0,0 +1,4 @@ +/** + * Integration with Spring MVC. + */ +package org.springframework.data.web; \ No newline at end of file diff --git a/spring-data-commons-core/src/test/java/org/springframework/data/mapping/model/AbstractPersistentPropertyUnitTests.java b/spring-data-commons-core/src/test/java/org/springframework/data/mapping/model/AbstractPersistentPropertyUnitTests.java index e2d3306e1..42a496a7f 100644 --- a/spring-data-commons-core/src/test/java/org/springframework/data/mapping/model/AbstractPersistentPropertyUnitTests.java +++ b/spring-data-commons-core/src/test/java/org/springframework/data/mapping/model/AbstractPersistentPropertyUnitTests.java @@ -1,7 +1,7 @@ package org.springframework.data.mapping.model; -import static org.junit.Assert.*; import static org.hamcrest.Matchers.*; +import static org.junit.Assert.*; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; @@ -54,6 +54,30 @@ public class AbstractPersistentPropertyUnitTests { assertThat(property.getPersistentEntityType().iterator().hasNext(), is(false)); } + @Test + public void foo() { + + Field field1 = ReflectionUtils.findField(Bar1.class, "field"); + Field field2 = ReflectionUtils.findField(Bar2.class, "field"); + assertThat(field1, is(field2)); + System.out.println(field1.getType()); + + System.out.println(ClassTypeInformation.from(Bar1.class).getProperty("field").getType()); + System.out.println(ClassTypeInformation.from(Bar2.class).getProperty("field").getType()); + } + + class Foo { + T field; + } + + class Bar1 extends Foo { + + } + + class Bar2 extends Foo { + + } + @SuppressWarnings("serial") class TestClassSet extends TreeSet { } diff --git a/spring-data-commons-parent/pom.xml b/spring-data-commons-parent/pom.xml index 1799534c9..127372768 100644 --- a/spring-data-commons-parent/pom.xml +++ b/spring-data-commons-parent/pom.xml @@ -210,6 +210,9 @@ spring-libs-release http://repo.springsource.org/libs-release + + false +