@Override protected ResourceDefinitionInjectionSource processAnnotation(AnnotationInstance annotationInstance, PropertyReplacer propertyReplacer) throws DeploymentUnitProcessingException { final MailSessionMetaData metaData = new MailSessionMetaData(); metaData.setName(AnnotationElement.asRequiredString(annotationInstance, AnnotationElement.NAME)); metaData.setTransportProtocol(AnnotationElement.asOptionalString(annotationInstance, "transportProtocol")); metaData.setStoreProtocol(AnnotationElement.asOptionalString(annotationInstance, "storeProtocol")); metaData.setHost(AnnotationElement.asOptionalString(annotationInstance, "host")); metaData.setUser(AnnotationElement.asOptionalString(annotationInstance, "user")); metaData.setPassword(AnnotationElement.asOptionalString(annotationInstance, "password")); metaData.setFrom(AnnotationElement.asOptionalString(annotationInstance, "from")); final PropertiesMetaData properties = new PropertiesMetaData(); for (String fullProp : AnnotationElement.asOptionalStringArray(annotationInstance, AnnotationElement.PROPERTIES)) { PropertyMetaData p = new PropertyMetaData(); String[] prop = fullProp.split("=", 2); p.setName(prop[0]); p.setValue(prop[1]); properties.add(p); } metaData.setProperties(properties); final SessionProvider provider = SessionProviderFactory.create(metaData); return new MailSessionDefinitionInjectionSource(metaData.getName(), provider); }
protected PersistenceContextReferenceMetaData createPC(E element, PersistenceContext annotation) { PersistenceContextReferenceMetaData ref = new PersistenceContextReferenceMetaData(); String name = annotation.name(); if(name.length() == 0) name = ProcessorUtils.getName(element); ref.setPersistenceContextRefName(name); if(annotation.unitName().length() > 0) ref.setPersistenceUnitName(annotation.unitName()); PersistenceContextType type = annotation.type(); ref.setPersistenceContextType(type); PersistenceProperty[] properties = annotation.properties(); if(properties.length > 0 ) { PropertiesMetaData refProperties = new PropertiesMetaData(); for(PersistenceProperty p : properties) { PropertyMetaData pmd = new PropertyMetaData(); pmd.setName(p.name()); pmd.setValue(p.value()); refProperties.add(pmd); } ref.setProperties(refProperties); } Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(name, element); if(injectionTargets != null) ref.setInjectionTargets(injectionTargets); return ref; }
for(PersistenceProperty p : properties) PropertyMetaData pmd = new PropertyMetaData(); pmd.setName(p.name()); pmd.setValue(p.value());