Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2011-2014 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
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.springframework.data.mongodb.repository.cdi;
 
 import java.util.Map;
 import java.util.Set;
 
 
CDI extension to export Mongo repositories.

Author(s):
Oliver Gierke
 
 
 	private static final Logger LOG = LoggerFactory.getLogger(MongoRepositoryExtension.class);
 
 
 		.info("Activating CDI extension for Spring Data MongoDB repositories.");
 	}
 
 	@SuppressWarnings("unchecked")
 	<X> void processBean(@Observes ProcessBean<X> processBean) {
 
 		Bean<X> bean = processBean.getBean();
 
 		for (Type type : bean.getTypes()) {
 			if (type instanceof Class<?> && MongoOperations.class.isAssignableFrom((Class<?>) type)) {
 				if (.isDebugEnabled()) {
 					.debug(String.format("Discovered %s with qualifiers %s."MongoOperations.class.getName(),
 							bean.getQualifiers()));
 				}
 
 				// Store the EntityManager bean using its qualifiers.
 			}
 		}
 	}
 
 	void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscoveryBeanManager beanManager) {
 
 		for (Entry<Class<?>, Set<Annotation>> entry : getRepositoryTypes()) {
 
 			Class<?> repositoryType = entry.getKey();
 			Set<Annotationqualifiers = entry.getValue();
 
 			// Create the bean representing the repository.
 			CdiRepositoryBean<?> repositoryBean = createRepositoryBean(repositoryTypequalifiersbeanManager);
 
 			if (.isInfoEnabled()) {
 				.info(String.format("Registering bean for %s with qualifiers %s."repositoryType.getName(), qualifiers));
 			}
 
 			// Register the bean to the container.
 			registerBean(repositoryBean);
 			afterBeanDiscovery.addBean(repositoryBean);
 		}
 	}

Creates a org.springframework.data.repository.cdi.CdiRepositoryBean for the repository of the given type.

Parameters:
<T> the type of the repository.
repositoryType the class representing the repository.
qualifiers the qualifiers to be applied to the bean.
beanManager the BeanManager instance.
Returns:
	private <T> CdiRepositoryBean<T> createRepositoryBean(Class<T> repositoryTypeSet<Annotationqualifiers,
			BeanManager beanManager) {
		// Determine the MongoOperations bean which matches the qualifiers of the repository.
		Bean<MongoOperationsmongoOperations = this..get(qualifiers);
		if (mongoOperations == null) {
			throw new UnsatisfiedResolutionException(String.format("Unable to resolve a bean for '%s' with qualifiers %s.",
					MongoOperations.class.getName(), qualifiers));
		}
		// Construct and return the repository bean.
		return new MongoRepositoryBean<T>(mongoOperationsqualifiersrepositoryTypebeanManager);
	}
New to GrepCode? Check out our FAQ X