Replace Java EE 8 javax package imports with Jakarta EE 9 jakarta package.

Resolves gh-539.
This commit is contained in:
John Blum
2021-09-27 11:12:53 -07:00
parent ec119465e4
commit 564b3b140f
11 changed files with 79 additions and 87 deletions

View File

@@ -14,7 +14,6 @@ package org.springframework.data.gemfire.function.execution;
import java.lang.reflect.Method;
/**
* @author David Turanski
*
@@ -22,18 +21,19 @@ import java.lang.reflect.Method;
class DefaultFunctionExecutionMethodMetadata extends FunctionExecutionMethodMetadata<MethodMetadata> {
/**
* @param serviceInterface
* Constructs a new instance of {@link DefaultFunctionExecutionMethodMetadata} initialized with
* the {@link org.apache.geode.cache.execute.Function} {@link org.apache.geode.cache.execute.Execution}
* {@link Class interface}.
*
* @param serviceInterface {@link org.apache.geode.cache.execute.Function}
* {@link org.apache.geode.cache.execute.Execution} {@link Class interface}.
*/
public DefaultFunctionExecutionMethodMetadata(Class<?> serviceInterface) {
super(serviceInterface);
}
/* (non-Javadoc)
* @see org.springframework.data.gemfire.function.config.FunctionExecutionMethodMetadata#newMetadataInstance(java.lang.reflect.Method)
*/
@Override
protected MethodMetadata newMetadataInstance(Method method) {
return new MethodMetadata(method);
}
}

View File

@@ -14,7 +14,6 @@
* limitations under the License.
*
*/
package org.springframework.data.gemfire.repository.cdi;
import java.lang.annotation.Annotation;
@@ -24,9 +23,9 @@ import java.util.HashSet;
import java.util.Optional;
import java.util.Set;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import jakarta.enterprise.context.spi.CreationalContext;
import jakarta.enterprise.inject.spi.Bean;
import jakarta.enterprise.inject.spi.BeanManager;
import org.apache.geode.cache.Region;
@@ -51,6 +50,7 @@ import org.springframework.data.repository.config.CustomRepositoryImplementation
* @see org.apache.geode.cache.Region
* @since 1.8.0
*/
@SuppressWarnings("rawtypes")
class GemfireRepositoryBean<T> extends CdiRepositoryBean<T> {
static final GemfireMappingContext DEFAULT_GEMFIRE_MAPPING_CONTEXT = new GemfireMappingContext();
@@ -61,8 +61,6 @@ class GemfireRepositoryBean<T> extends CdiRepositoryBean<T> {
private final Set<Bean<Region>> regionBeans;
/* (non-Javadoc) */
@SuppressWarnings("unchecked")
GemfireRepositoryBean(BeanManager beanManager, Class<T> repositoryType, Set<Annotation> qualifiers,
CustomRepositoryImplementationDetector detector, Bean<GemfireMappingContext> gemfireMappingContextBean,
Set<Bean<Region>> regionBeans) {
@@ -77,17 +75,17 @@ class GemfireRepositoryBean<T> extends CdiRepositoryBean<T> {
/**
* Returns an instance of the given {@link Bean} from the container.
*
* @param <S> the actual class type of the {@link Bean}.
* @param <S> the actual {@link Type class type} of the {@link Bean}.
* @param bean the {@link Bean} defining the instance to create.
* @param type the expected component type of the instance created from the {@link Bean}.
* @return an instance of the given {@link Bean}.
* @see javax.enterprise.inject.spi.BeanManager#getReference(Bean, Type, CreationalContext)
* @see javax.enterprise.inject.spi.BeanManager#getReference(javax.enterprise.inject.spi.Bean, Type, javax.enterprise.context.spi.CreationalContext)
* @see javax.enterprise.inject.spi.Bean
* @see java.lang.reflect.Type
*/
@SuppressWarnings("unchecked")
protected <S> S getDependencyInstance(Bean<S> bean, Type type) {
return (S) beanManager.getReference(bean, type, beanManager.createCreationalContext(bean));
return (S) this.beanManager.getReference(bean, type, this.beanManager.createCreationalContext(bean));
}
/**
@@ -101,12 +99,13 @@ class GemfireRepositoryBean<T> extends CdiRepositoryBean<T> {
* @see javax.enterprise.inject.spi.Bean#getTypes()
* @see java.lang.Class
*/
@SuppressWarnings("unchecked")
protected <S> Type resolveType(Bean<S> bean, Class<S> targetType) {
for (Type type : bean.getTypes()) {
Type assignableType = (type instanceof ParameterizedType ? ((ParameterizedType) type).getRawType() : type);
if (assignableType instanceof Class && targetType.isAssignableFrom((Class) assignableType)) {
if (assignableType instanceof Class && targetType.isAssignableFrom((Class<?>) assignableType)) {
return type;
}
}
@@ -116,9 +115,9 @@ class GemfireRepositoryBean<T> extends CdiRepositoryBean<T> {
targetType, bean));
}
/* (non-Javadoc) */
Iterable<Region<?, ?>> resolveGemfireRegions() {
Set<Region<?, ?>> regions = new HashSet<Region<?, ?>>(regionBeans.size());
Set<Region<?, ?>> regions = new HashSet<>(regionBeans.size());
for (Bean<Region> regionBean : regionBeans) {
regions.add(getDependencyInstance(regionBean, resolveType(regionBean, Region.class)));
@@ -127,14 +126,12 @@ class GemfireRepositoryBean<T> extends CdiRepositoryBean<T> {
return regions;
}
/* (non-Javadoc) */
GemfireMappingContext resolveGemfireMappingContext() {
return (gemfireMappingContextBean != null
? getDependencyInstance(gemfireMappingContextBean, GemfireMappingContext.class)
: DEFAULT_GEMFIRE_MAPPING_CONTEXT);
}
/* (non-Javadoc) */
GemfireRepositoryFactory newGemfireRepositoryFactory() {
return new GemfireRepositoryFactory(resolveGemfireRegions(), resolveGemfireMappingContext());
}

View File

@@ -14,7 +14,6 @@
* limitations under the License.
*
*/
package org.springframework.data.gemfire.repository.cdi;
import java.lang.annotation.Annotation;
@@ -25,21 +24,21 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.ProcessBean;
import jakarta.enterprise.event.Observes;
import jakarta.enterprise.inject.spi.AfterBeanDiscovery;
import jakarta.enterprise.inject.spi.Bean;
import jakarta.enterprise.inject.spi.BeanManager;
import jakarta.enterprise.inject.spi.ProcessBean;
import org.apache.geode.cache.Region;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.gemfire.mapping.GemfireMappingContext;
import org.springframework.data.repository.cdi.CdiRepositoryBean;
import org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The GemfireRepositoryExtension class...
*
@@ -47,18 +46,17 @@ import org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport;
* @see org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport
* @since 1.8.0
*/
@SuppressWarnings("unused")
@SuppressWarnings({ "rawtypes", "unused" })
public class GemfireRepositoryExtension extends CdiRepositoryExtensionSupport {
protected final Logger logger = LoggerFactory.getLogger(getClass());
private final Logger logger = LoggerFactory.getLogger(getClass());
final Map<Set<Annotation>, Bean<GemfireMappingContext>> mappingContexts = new HashMap<>();
final Set<Bean<Region>> regionBeans = new HashSet<>();
/* (non-Javadoc) */
public GemfireRepositoryExtension() {
logger.info("Activating CDI extension for Spring Data GemFire Repositories");
logger.info("Activating CDI extension for Spring Data Geode Repositories");
}
/**
@@ -67,8 +65,8 @@ public class GemfireRepositoryExtension extends CdiRepositoryExtensionSupport {
*
* @param <X> class type of the bean instance.
* @param processBean annotated type as defined by CDI.
* @see javax.enterprise.inject.spi.ProcessBean
* @see javax.enterprise.event.Observes
* @see jakarta.enterprise.inject.spi.ProcessBean
* @see jakarta.enterprise.event.Observes
*/
@SuppressWarnings("unchecked")
<X> void processBean(@Observes ProcessBean<X> processBean) {
@@ -107,9 +105,9 @@ public class GemfireRepositoryExtension extends CdiRepositoryExtensionSupport {
* Repository beans are associated to the appropriate GemfireMappingContexts based on their qualifiers.
*
* @param beanManager the BeanManager instance.
* @see javax.enterprise.inject.spi.AfterBeanDiscovery
* @see javax.enterprise.inject.spi.BeanManager
* @see javax.enterprise.event.Observes
* @see jakarta.enterprise.inject.spi.AfterBeanDiscovery
* @see jakarta.enterprise.inject.spi.BeanManager
* @see jakarta.enterprise.event.Observes
*/
void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager) {
@@ -130,15 +128,14 @@ public class GemfireRepositoryExtension extends CdiRepositoryExtensionSupport {
}
}
/* (non-Javadoc) */
<T> CdiRepositoryBean<T> createRepositoryBean(BeanManager beanManager, Class<T> repositoryType,
Set<Annotation> qualifiers) {
// Determine the GemfireMappingContext bean that matches the qualifiers of the Repository.
Bean<GemfireMappingContext> gemfireMappingContextBean = mappingContexts.get(qualifiers);
// Determine the GemfireMappingContext bean matching the qualifiers of the Repository.
Bean<GemfireMappingContext> gemfireMappingContextBean = this.mappingContexts.get(qualifiers);
// Construct and return a GemFire Repository bean.
return new GemfireRepositoryBean<T>(beanManager, repositoryType, qualifiers, getCustomImplementationDetector(),
gemfireMappingContextBean, regionBeans);
// Construct and return a GemfireRepositoryBean.
return new GemfireRepositoryBean<>(beanManager, repositoryType, qualifiers, getCustomImplementationDetector(),
gemfireMappingContextBean, this.regionBeans);
}
}

View File

@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.gemfire.serialization;
import org.apache.geode.DataSerializable;
@@ -28,25 +27,23 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.wiring.BeanConfigurerSupport;
/**
* Instantiator that performs instance wiring using the Spring IoC container, allowing common properties
* to be injected before the object is hydrated/deserialized. The newly created instances can be configured
* either by relying on an existing bean definition (which acts as a template) or by providing an embedded
* configuration through annotations.
* Apache Geode {@link Instantiator} that performs instance wiring using the Spring IoC container, allowing common
* properties to be injected before the object is hydrated/deserialized. The newly created instances can be configured
* either by relying on an existing bean definition (which acts as a template) or by providing an embedded configuration
* through annotations.
*
* Can reuse existing instantiators to optimize instance creation. If one is not provided, it will fallback
* to reflection invocation.
* Can reuse existing {@link Instantiator Instantiators} to optimize instance creation. If one is not provided,
* it will fallback to reflection invocation.
*
* By default, on initialization, the class will register itself as an {@link Instantiator} through
* {@link #register(Instantiator)}. This behaviour can be disabled through {@link #setAutoRegister(boolean)}.
* Additionally, the instantiator registration is not distributed by default, to allow the application context
* to be reused. This can be changed through {@link #setDistribute(boolean)}.
*
* @author Costin Leau
* @see org.springframework.beans.factory.wiring.BeanConfigurerSupport
* @see org.springframework.beans.factory.wiring.BeanWiringInfoResolver
* @see org.springframework.beans.factory.annotation.Autowired
* @see javax.annotation.Resource
*
* @author Costin Leau
*/
public class WiringInstantiator extends Instantiator implements BeanFactoryAware, InitializingBean, DisposableBean {

View File

@@ -14,15 +14,13 @@
* limitations under the License.
*
*/
package org.springframework.data.gemfire.cache;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import jakarta.annotation.PostConstruct;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -30,6 +28,7 @@ import org.junit.runner.RunWith;
import org.apache.geode.cache.Region;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.gemfire.tests.integration.IntegrationTestsSupport;
import org.springframework.test.context.ActiveProfiles;
@@ -60,11 +59,12 @@ public class CachingWithGemFireIntegrationTests extends IntegrationTestsSupport
@Autowired
private NamedNumbersService namedNumbersService;
@Resource(name = "NamedNumbersRegion")
@Autowired
@Qualifier("NamedNumbersRegion")
private Region<String, Integer> namedNumbersRegion;
@Test(expected = NullPointerException.class)
public void testRegionCacheHit() {
public void regionCacheHitIsCorrect() {
assertThat(namedNumbersRegion.get("eleven")).isNull();
assertThat(namedNumbersRegion.containsKey("eleven")).isFalse();
@@ -87,7 +87,7 @@ public class CachingWithGemFireIntegrationTests extends IntegrationTestsSupport
}
@Test
public void testRegionCaching() {
public void regionCachingIsCorrect() {
assertThat(namedNumbersService.wasCacheMiss()).isFalse();
assertThat(namedNumbersService.get("one").intValue()).isEqualTo(1);

View File

@@ -28,7 +28,7 @@ import java.util.Properties;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import javax.annotation.PostConstruct;
import jakarta.annotation.PostConstruct;
import org.junit.AfterClass;
import org.junit.BeforeClass;

View File

@@ -18,8 +18,8 @@ package org.springframework.data.gemfire.repository.cdi;
import static org.assertj.core.api.Assertions.assertThat;
import javax.enterprise.inject.se.SeContainer;
import javax.enterprise.inject.se.SeContainerInitializer;
import jakarta.enterprise.inject.se.SeContainer;
import jakarta.enterprise.inject.se.SeContainerInitializer;
import org.junit.AfterClass;
import org.junit.BeforeClass;

View File

@@ -14,14 +14,14 @@
* limitations under the License.
*
*/
package org.springframework.data.gemfire.repository.cdi;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Produces;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.cache.GemFireCache;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.RegionFactory;
import org.apache.geode.cache.RegionShortcut;
@@ -30,14 +30,15 @@ import org.springframework.data.gemfire.repository.sample.Person;
import org.springframework.util.Assert;
/**
* The GemfireCacheRegionProducer class is an application scoped CDI context bean that is responsible
* for creating the GemFire Cache "People" Region used to store {@link Person} instances.
* The {@link GemfireCacheRegionProducer} class is an application scoped CDI context bean that is responsible
* for creating the {@link GemFireCache} {@literal People} {@link Region} used to store {@link Person} instances.
*
* @author John Blum
* @see javax.enterprise.context.ApplicationScoped
* @see javax.enterprise.inject.Produces
* @see jakarta.enterprise.context.ApplicationScoped
* @see jakarta.enterprise.inject.Produces
* @see org.apache.geode.cache.Cache
* @see org.apache.geode.cache.CacheFactory
* @see org.apache.geode.cache.GemFireCache
* @see org.apache.geode.cache.Region
* @see org.apache.geode.cache.RegionFactory
* @since 1.8.0

View File

@@ -34,9 +34,9 @@ import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import jakarta.enterprise.context.spi.CreationalContext;
import jakarta.enterprise.inject.spi.Bean;
import jakarta.enterprise.inject.spi.BeanManager;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -278,7 +278,7 @@ public class GemfireRepositoryBeanTest {
final AtomicBoolean repositoryProxyPostProcessed = new AtomicBoolean(false);
GemfireRepositoryBean<PersonRepository> repositoryBean =
new GemfireRepositoryBean<PersonRepository>(this.mockBeanManager, PersonRepository.class,
new GemfireRepositoryBean<>(this.mockBeanManager, PersonRepository.class,
Collections.emptySet(), newCustomRepositoryImplementationDetector(), null,
CollectionUtils.asSet(mockRegionBean))
{

View File

@@ -31,11 +31,11 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.ProcessBean;
import javax.inject.Qualifier;
import jakarta.enterprise.inject.spi.AfterBeanDiscovery;
import jakarta.enterprise.inject.spi.Bean;
import jakarta.enterprise.inject.spi.BeanManager;
import jakarta.enterprise.inject.spi.ProcessBean;
import jakarta.inject.Qualifier;
import org.junit.Before;
import org.junit.Test;
@@ -47,13 +47,14 @@ import org.springframework.data.gemfire.mapping.GemfireMappingContext;
import org.springframework.data.gemfire.repository.GemfireRepository;
/**
* The GemfireRepositoryExtensionTest class is a test suite of unit tests testing the contract and proper functionality
* of the {@link GemfireRepositoryExtension} class in a Java EE CDI context.
* Integration Tests for the {@link GemfireRepositoryExtension} class and functionality in a Java EE CDI context.
*
* @author John Blum
* @see javax.enterprise.inject.spi.Bean
* @see jakarta.enterprise.inject.spi.Bean
* @see jakarta.enterprise.inject.spi.BeanManager
* @see org.junit.Test
* @see org.mockito.Mockito
* @see org.apache.geode.cache.Region
* @see org.springframework.data.gemfire.mapping.GemfireMappingContext
* @see org.springframework.data.gemfire.repository.GemfireRepository
* @see org.springframework.data.gemfire.repository.cdi.GemfireRepositoryExtension

View File

@@ -14,21 +14,20 @@
* limitations under the License.
*
*/
package org.springframework.data.gemfire.repository.cdi;
import java.util.concurrent.atomic.AtomicLong;
import javax.inject.Inject;
import jakarta.inject.Inject;
import org.springframework.data.gemfire.repository.sample.Person;
import org.springframework.util.Assert;
/**
* The RepositoryClient class is a user/consumer of the {@link SamplePersonRepository} bean in a CDI context.
* {@link RepositoryClient} is a user/consumer of the {@link SamplePersonRepository} bean in a CDI context.
*
* @author John Blum
* @see javax.inject.Inject
* @see jakarta.inject.Inject
* @see org.springframework.data.gemfire.repository.cdi.SamplePersonRepository
* @since 1.8.0
*/