private void createDataSource(@Nonnull DataSourceDefinitions dsDefs) { for (DataSourceDefinition dsDef : dsDefs.value()) { createDataSource(dsDef); if (ds != null) { return; } } }
public void findDataSourceDefinitions(@Observes @WithAnnotations(DataSourceDefinitions.class) ProcessAnnotatedType<?> pat) { DataSourceDefinitions annotation = pat.getAnnotatedType().getJavaClass().getAnnotation(DataSourceDefinitions.class); dataSourceDefinitions.addAll(asList(annotation.value())); }
protected HandlerProcessingResult processAnnotation(AnnotationInfo ainfo, ResourceContainerContext[] rcContexts) throws AnnotationProcessorException { DataSourceDefinitions defns = (DataSourceDefinitions) ainfo.getAnnotation(); DataSourceDefinition values[] = defns.value(); Set duplicates = new HashSet(); if(values != null && values.length >0){ for(DataSourceDefinition defn : values){ String defnName = DataSourceDefinitionDescriptor.getJavaName(defn.name()); if(duplicates.contains(defnName)){ String localString = localStrings.getLocalString( "enterprise.deployment.annotation.handlers.datasourcedefinitionsduplicates", "@DataSourceDefinitions cannot have multiple definitions with same name : '{0}'", defnName); throw new IllegalStateException(localString); /* //TODO V3 should we throw exception or return failure result ? return getFailureResult(ainfo, "@DataSourceDefinitions cannot have multiple" + " definitions with same name [ "+defnName+" ]", true ); */ }else{ duplicates.add(defnName); } DataSourceDefinitionHandler handler = new DataSourceDefinitionHandler(); handler.processAnnotation(defn, ainfo, rcContexts); } duplicates.clear(); } return getDefaultProcessedResult(); }
public void buildNaming(JndiConsumer specDD, XmlObject plan, Module module, Map<EARContext.Key, Object> sharedContext) throws DeploymentException { // step 1: process annotations and update deployment descriptor if ((module != null) && (module.getClassFinder() != null)) { List<Class<?>> classes; classes = module.getClassFinder().findAnnotatedClasses(DataSourceDefinitions.class); if (classes != null) { for (Class<?> clazz : classes) { DataSourceDefinitions dsDefinitions = clazz.getAnnotation(DataSourceDefinitions.class); for (DataSourceDefinition dsDefinition : dsDefinitions.value()) { processDefinition(dsDefinition, specDD); } } } classes = module.getClassFinder().findAnnotatedClasses(DataSourceDefinition.class); if (classes != null) { for (Class<?> clazz : classes) { DataSourceDefinition dsDefinition = clazz.getAnnotation(DataSourceDefinition.class); processDefinition(dsDefinition, specDD); } } } // step 2: bind all defined data sources into jndi Collection<DataSource> dataSources = specDD.getDataSource(); if (dataSources != null) { for (DataSource dataSource: dataSources) { addDataSourceGBean(module, sharedContext, dataSource); } } }
for (final DataSourceDefinition definition : defs.value()) { buildDataSourceDefinition(consumer, definition);
for (final DataSourceDefinition definition : defs.value()) { buildDataSourceDefinition(consumer, definition);