Search in sources :

Example 1 with PropertiesMetaData

use of org.jboss.metadata.javaee.spec.PropertiesMetaData in project wildfly by wildfly.

the class PersistenceRefProcessor method getPersistenceContextRefs.

/**
 * Resolves persistence-unit-ref
 *
 * @param environment               The environment to resolve the elements for
 * @param classLoader               The deployment class loader
 * @param deploymentReflectionIndex The reflection index
 * @return The bindings for the environment entries
 */
private List<BindingConfiguration> getPersistenceContextRefs(DeploymentUnit deploymentUnit, DeploymentDescriptorEnvironment environment, ClassLoader classLoader, DeploymentReflectionIndex deploymentReflectionIndex, ResourceInjectionTarget resourceInjectionTarget) throws DeploymentUnitProcessingException {
    List<BindingConfiguration> bindingConfigurations = new ArrayList<BindingConfiguration>();
    final RemoteEnvironment remoteEnvironment = environment.getEnvironment();
    if (remoteEnvironment == null) {
        return bindingConfigurations;
    }
    if (remoteEnvironment instanceof Environment) {
        PersistenceContextReferencesMetaData persistenceUnitRefs = ((Environment) remoteEnvironment).getPersistenceContextRefs();
        if (persistenceUnitRefs != null) {
            for (PersistenceContextReferenceMetaData puRef : persistenceUnitRefs) {
                String name = puRef.getName();
                String persistenceUnitName = puRef.getPersistenceUnitName();
                String lookup = puRef.getLookupName();
                if (!isEmpty(lookup) && !isEmpty(persistenceUnitName)) {
                    throw JpaLogger.ROOT_LOGGER.cannotSpecifyBoth("<lookup-name>", lookup, "persistence-unit-name", persistenceUnitName, "<persistence-context-ref/>", resourceInjectionTarget);
                }
                if (!name.startsWith("java:")) {
                    name = environment.getDefaultContext() + name;
                }
                // our injection (source) comes from the local (ENC) lookup, no matter what.
                LookupInjectionSource injectionSource = new LookupInjectionSource(name);
                // add any injection targets
                processInjectionTargets(resourceInjectionTarget, injectionSource, classLoader, deploymentReflectionIndex, puRef, EntityManager.class);
                BindingConfiguration bindingConfiguration = null;
                if (!isEmpty(lookup)) {
                    bindingConfiguration = new BindingConfiguration(name, new LookupInjectionSource(lookup));
                } else {
                    PropertiesMetaData properties = puRef.getProperties();
                    Map<String, String> map = new HashMap<>();
                    if (properties != null) {
                        for (PropertyMetaData prop : properties) {
                            map.put(prop.getKey(), prop.getValue());
                        }
                    }
                    PersistenceContextType type = (puRef.getPersistenceContextType() == null || puRef.getPersistenceContextType() == PersistenceContextTypeDescription.TRANSACTION) ? PersistenceContextType.TRANSACTION : PersistenceContextType.EXTENDED;
                    SynchronizationType synchronizationType = (puRef.getPersistenceContextSynchronization() == null || PersistenceContextSynchronizationType.Synchronized.equals(puRef.getPersistenceContextSynchronization())) ? SynchronizationType.SYNCHRONIZED : SynchronizationType.UNSYNCHRONIZED;
                    InjectionSource pcBindingSource = this.getPersistenceContextBindingSource(deploymentUnit, persistenceUnitName, type, synchronizationType, map);
                    bindingConfiguration = new BindingConfiguration(name, pcBindingSource);
                }
                bindingConfigurations.add(bindingConfiguration);
            }
        }
    }
    return bindingConfigurations;
}
Also used : RemoteEnvironment(org.jboss.metadata.javaee.spec.RemoteEnvironment) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) PersistenceContextType(javax.persistence.PersistenceContextType) PropertyMetaData(org.jboss.metadata.javaee.spec.PropertyMetaData) PropertiesMetaData(org.jboss.metadata.javaee.spec.PropertiesMetaData) PersistenceContextSynchronizationType(org.jboss.metadata.javaee.spec.PersistenceContextSynchronizationType) SynchronizationType(javax.persistence.SynchronizationType) PersistenceContextReferenceMetaData(org.jboss.metadata.javaee.spec.PersistenceContextReferenceMetaData) LookupInjectionSource(org.jboss.as.ee.component.LookupInjectionSource) InjectionSource(org.jboss.as.ee.component.InjectionSource) PersistenceContextInjectionSource(org.jboss.as.jpa.injectors.PersistenceContextInjectionSource) PersistenceUnitInjectionSource(org.jboss.as.jpa.injectors.PersistenceUnitInjectionSource) RemoteEnvironment(org.jboss.metadata.javaee.spec.RemoteEnvironment) DeploymentDescriptorEnvironment(org.jboss.as.ee.component.DeploymentDescriptorEnvironment) Environment(org.jboss.metadata.javaee.spec.Environment) BindingConfiguration(org.jboss.as.ee.component.BindingConfiguration) PersistenceContextReferencesMetaData(org.jboss.metadata.javaee.spec.PersistenceContextReferencesMetaData) LookupInjectionSource(org.jboss.as.ee.component.LookupInjectionSource)

Example 2 with PropertiesMetaData

use of org.jboss.metadata.javaee.spec.PropertiesMetaData in project wildfly by wildfly.

the class MailSessionDefinitionAnnotationProcessor method processAnnotation.

@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);
}
Also used : MailSessionMetaData(org.jboss.metadata.javaee.spec.MailSessionMetaData) PropertyMetaData(org.jboss.metadata.javaee.spec.PropertyMetaData) PropertiesMetaData(org.jboss.metadata.javaee.spec.PropertiesMetaData)

Aggregations

PropertiesMetaData (org.jboss.metadata.javaee.spec.PropertiesMetaData)2 PropertyMetaData (org.jboss.metadata.javaee.spec.PropertyMetaData)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 PersistenceContextType (javax.persistence.PersistenceContextType)1 SynchronizationType (javax.persistence.SynchronizationType)1 BindingConfiguration (org.jboss.as.ee.component.BindingConfiguration)1 DeploymentDescriptorEnvironment (org.jboss.as.ee.component.DeploymentDescriptorEnvironment)1 InjectionSource (org.jboss.as.ee.component.InjectionSource)1 LookupInjectionSource (org.jboss.as.ee.component.LookupInjectionSource)1 PersistenceContextInjectionSource (org.jboss.as.jpa.injectors.PersistenceContextInjectionSource)1 PersistenceUnitInjectionSource (org.jboss.as.jpa.injectors.PersistenceUnitInjectionSource)1 Environment (org.jboss.metadata.javaee.spec.Environment)1 MailSessionMetaData (org.jboss.metadata.javaee.spec.MailSessionMetaData)1 PersistenceContextReferenceMetaData (org.jboss.metadata.javaee.spec.PersistenceContextReferenceMetaData)1 PersistenceContextReferencesMetaData (org.jboss.metadata.javaee.spec.PersistenceContextReferencesMetaData)1 PersistenceContextSynchronizationType (org.jboss.metadata.javaee.spec.PersistenceContextSynchronizationType)1 RemoteEnvironment (org.jboss.metadata.javaee.spec.RemoteEnvironment)1