Java Code Examples for org.springframework.beans.BeanWrapper#isWritableProperty()
The following examples show how to use
org.springframework.beans.BeanWrapper#isWritableProperty() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TilesConfigurer.java From spring4-understanding with Apache License 2.0 | 6 votes |
@Override protected DefinitionsFactory createDefinitionsFactory(ApplicationContext applicationContext, LocaleResolver resolver) { if (definitionsFactoryClass != null) { DefinitionsFactory factory = BeanUtils.instantiate(definitionsFactoryClass); if (factory instanceof ApplicationContextAware) { ((ApplicationContextAware) factory).setApplicationContext(applicationContext); } BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(factory); if (bw.isWritableProperty("localeResolver")) { bw.setPropertyValue("localeResolver", resolver); } if (bw.isWritableProperty("definitionDAO")) { bw.setPropertyValue("definitionDAO", createLocaleDefinitionDao(applicationContext, resolver)); } return factory; } else { return super.createDefinitionsFactory(applicationContext, resolver); } }
Example 2
Source File: BeanRowMapper.java From onetwo with Apache License 2.0 | 6 votes |
protected void setBeanProperty(BeanWrapper bw, String name, Object value){ if(!bw.isWritableProperty(name)) return ; /*if(value!=null && (!String.class.isInstance(value) || !ExcelUtils.isBlank((String)value))) bw.setPropertyValue(name, value);*/ if(value==null){ return ; } if(value instanceof String){ if(ExcelUtils.isBlank((String)value)){ return ; } if(cleanUnvisibleUnicode){ value = StringUtils.cleanInvisibleUnicode(value.toString()); } } bw.setPropertyValue(name, value); }
Example 3
Source File: AnnotationBeanUtils.java From lams with GNU General Public License v2.0 | 6 votes |
/** * Copy the properties of the supplied {@link Annotation} to the supplied target bean. * Any properties defined in {@code excludedProperties} will not be copied. * <p>A specified value resolver may resolve placeholders in property values, for example. * @param ann the annotation to copy from * @param bean the bean instance to copy to * @param valueResolver a resolve to post-process String property values (may be {@code null}) * @param excludedProperties the names of excluded properties, if any * @see org.springframework.beans.BeanWrapper */ public static void copyPropertiesToBean(Annotation ann, Object bean, StringValueResolver valueResolver, String... excludedProperties) { Set<String> excluded = new HashSet<String>(Arrays.asList(excludedProperties)); Method[] annotationProperties = ann.annotationType().getDeclaredMethods(); BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(bean); for (Method annotationProperty : annotationProperties) { String propertyName = annotationProperty.getName(); if (!excluded.contains(propertyName) && bw.isWritableProperty(propertyName)) { Object value = ReflectionUtils.invokeMethod(annotationProperty, ann); if (valueResolver != null && value instanceof String) { value = valueResolver.resolveStringValue((String) value); } bw.setPropertyValue(propertyName, value); } } }
Example 4
Source File: TilesConfigurer.java From lams with GNU General Public License v2.0 | 6 votes |
@Override protected DefinitionsFactory createDefinitionsFactory(TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory, LocaleResolver resolver) { if (definitionsFactoryClass != null) { DefinitionsFactory factory = BeanUtils.instantiate(definitionsFactoryClass); if (factory instanceof TilesApplicationContextAware) { ((TilesApplicationContextAware) factory).setApplicationContext(applicationContext); } BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(factory); if (bw.isWritableProperty("localeResolver")) { bw.setPropertyValue("localeResolver", resolver); } if (bw.isWritableProperty("definitionDAO")) { bw.setPropertyValue("definitionDAO", createLocaleDefinitionDao(applicationContext, contextFactory, resolver)); } if (factory instanceof Refreshable) { ((Refreshable) factory).refresh(); } return factory; } else { return super.createDefinitionsFactory(applicationContext, contextFactory, resolver); } }
Example 5
Source File: StandardJmsActivationSpecFactory.java From spring-analysis-note with MIT License | 6 votes |
/** * Apply the specified acknowledge mode to the ActivationSpec object. * <p>This implementation applies the standard JCA 1.5 acknowledge modes * "Auto-acknowledge" and "Dups-ok-acknowledge". It throws an exception in * case of {@code CLIENT_ACKNOWLEDGE} or {@code SESSION_TRANSACTED} * having been requested. * @param bw the BeanWrapper wrapping the ActivationSpec object * @param ackMode the configured acknowledge mode * (according to the constants in {@link javax.jms.Session} * @see javax.jms.Session#AUTO_ACKNOWLEDGE * @see javax.jms.Session#DUPS_OK_ACKNOWLEDGE * @see javax.jms.Session#CLIENT_ACKNOWLEDGE * @see javax.jms.Session#SESSION_TRANSACTED */ protected void applyAcknowledgeMode(BeanWrapper bw, int ackMode) { if (ackMode == Session.SESSION_TRANSACTED) { throw new IllegalArgumentException("No support for SESSION_TRANSACTED: Only \"Auto-acknowledge\" " + "and \"Dups-ok-acknowledge\" supported in standard JCA 1.5"); } else if (ackMode == Session.CLIENT_ACKNOWLEDGE) { throw new IllegalArgumentException("No support for CLIENT_ACKNOWLEDGE: Only \"Auto-acknowledge\" " + "and \"Dups-ok-acknowledge\" supported in standard JCA 1.5"); } else if (bw.isWritableProperty("acknowledgeMode")) { bw.setPropertyValue("acknowledgeMode", ackMode == Session.DUPS_OK_ACKNOWLEDGE ? "Dups-ok-acknowledge" : "Auto-acknowledge"); } else if (ackMode == Session.DUPS_OK_ACKNOWLEDGE) { // Standard JCA 1.5 "acknowledgeMode" apparently not supported (e.g. WebSphere MQ 6.0.2.1) throw new IllegalArgumentException("Dups-ok-acknowledge not supported by underlying provider"); } }
Example 6
Source File: AnnotationBeanUtils.java From spring-analysis-note with MIT License | 6 votes |
/** * Copy the properties of the supplied {@link Annotation} to the supplied target bean. * Any properties defined in {@code excludedProperties} will not be copied. * <p>A specified value resolver may resolve placeholders in property values, for example. * @param ann the annotation to copy from * @param bean the bean instance to copy to * @param valueResolver a resolve to post-process String property values (may be {@code null}) * @param excludedProperties the names of excluded properties, if any * @see org.springframework.beans.BeanWrapper */ public static void copyPropertiesToBean(Annotation ann, Object bean, @Nullable StringValueResolver valueResolver, String... excludedProperties) { Set<String> excluded = (excludedProperties.length == 0 ? Collections.emptySet() : new HashSet<>(Arrays.asList(excludedProperties))); Method[] annotationProperties = ann.annotationType().getDeclaredMethods(); BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(bean); for (Method annotationProperty : annotationProperties) { String propertyName = annotationProperty.getName(); if (!excluded.contains(propertyName) && bw.isWritableProperty(propertyName)) { Object value = ReflectionUtils.invokeMethod(annotationProperty, ann); if (valueResolver != null && value instanceof String) { value = valueResolver.resolveStringValue((String) value); } bw.setPropertyValue(propertyName, value); } } }
Example 7
Source File: TilesConfigurer.java From java-technology-stack with MIT License | 6 votes |
@Override protected DefinitionsFactory createDefinitionsFactory(ApplicationContext applicationContext, LocaleResolver resolver) { if (definitionsFactoryClass != null) { DefinitionsFactory factory = BeanUtils.instantiateClass(definitionsFactoryClass); if (factory instanceof ApplicationContextAware) { ((ApplicationContextAware) factory).setApplicationContext(applicationContext); } BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(factory); if (bw.isWritableProperty("localeResolver")) { bw.setPropertyValue("localeResolver", resolver); } if (bw.isWritableProperty("definitionDAO")) { bw.setPropertyValue("definitionDAO", createLocaleDefinitionDao(applicationContext, resolver)); } return factory; } else { return super.createDefinitionsFactory(applicationContext, resolver); } }
Example 8
Source File: AnnotationBeanUtils.java From spring4-understanding with Apache License 2.0 | 6 votes |
/** * Copy the properties of the supplied {@link Annotation} to the supplied target bean. * Any properties defined in {@code excludedProperties} will not be copied. * <p>A specified value resolver may resolve placeholders in property values, for example. * @param ann the annotation to copy from * @param bean the bean instance to copy to * @param valueResolver a resolve to post-process String property values (may be {@code null}) * @param excludedProperties the names of excluded properties, if any * @see org.springframework.beans.BeanWrapper */ public static void copyPropertiesToBean(Annotation ann, Object bean, StringValueResolver valueResolver, String... excludedProperties) { Set<String> excluded = new HashSet<String>(Arrays.asList(excludedProperties)); Method[] annotationProperties = ann.annotationType().getDeclaredMethods(); BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(bean); for (Method annotationProperty : annotationProperties) { String propertyName = annotationProperty.getName(); if (!excluded.contains(propertyName) && bw.isWritableProperty(propertyName)) { Object value = ReflectionUtils.invokeMethod(annotationProperty, ann); if (valueResolver != null && value instanceof String) { value = valueResolver.resolveStringValue((String) value); } bw.setPropertyValue(propertyName, value); } } }
Example 9
Source File: TilesConfigurer.java From spring4-understanding with Apache License 2.0 | 6 votes |
@Override protected DefinitionsFactory createDefinitionsFactory(TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory, LocaleResolver resolver) { if (definitionsFactoryClass != null) { DefinitionsFactory factory = BeanUtils.instantiate(definitionsFactoryClass); if (factory instanceof TilesApplicationContextAware) { ((TilesApplicationContextAware) factory).setApplicationContext(applicationContext); } BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(factory); if (bw.isWritableProperty("localeResolver")) { bw.setPropertyValue("localeResolver", resolver); } if (bw.isWritableProperty("definitionDAO")) { bw.setPropertyValue("definitionDAO", createLocaleDefinitionDao(applicationContext, contextFactory, resolver)); } if (factory instanceof Refreshable) { ((Refreshable) factory).refresh(); } return factory; } else { return super.createDefinitionsFactory(applicationContext, contextFactory, resolver); } }
Example 10
Source File: TilesConfigurer.java From spring-analysis-note with MIT License | 6 votes |
@Override protected DefinitionsFactory createDefinitionsFactory(ApplicationContext applicationContext, LocaleResolver resolver) { if (definitionsFactoryClass != null) { DefinitionsFactory factory = BeanUtils.instantiateClass(definitionsFactoryClass); if (factory instanceof ApplicationContextAware) { ((ApplicationContextAware) factory).setApplicationContext(applicationContext); } BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(factory); if (bw.isWritableProperty("localeResolver")) { bw.setPropertyValue("localeResolver", resolver); } if (bw.isWritableProperty("definitionDAO")) { bw.setPropertyValue("definitionDAO", createLocaleDefinitionDao(applicationContext, resolver)); } return factory; } else { return super.createDefinitionsFactory(applicationContext, resolver); } }
Example 11
Source File: AutowiringSpringBeanJobFactory.java From syncope with Apache License 2.0 | 6 votes |
@Override protected Object createJobInstance(final TriggerFiredBundle bundle) throws Exception { Object job = beanFactory.getBean(bundle.getJobDetail().getKey().getName()); if (isEligibleForPropertyPopulation(job)) { BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(job); MutablePropertyValues pvs = new MutablePropertyValues(); if (this.schedulerContext != null) { pvs.addPropertyValues(this.schedulerContext); } pvs.addPropertyValues(bundle.getJobDetail().getJobDataMap()); pvs.addPropertyValues(bundle.getTrigger().getJobDataMap()); if (this.ignoredUnknownProperties != null) { for (String propName : this.ignoredUnknownProperties) { if (pvs.contains(propName) && !bw.isWritableProperty(propName)) { pvs.removePropertyValue(propName); } } bw.setPropertyValues(pvs); } else { bw.setPropertyValues(pvs, true); } } return job; }
Example 12
Source File: StandardJmsActivationSpecFactory.java From java-technology-stack with MIT License | 6 votes |
/** * Apply the specified acknowledge mode to the ActivationSpec object. * <p>This implementation applies the standard JCA 1.5 acknowledge modes * "Auto-acknowledge" and "Dups-ok-acknowledge". It throws an exception in * case of {@code CLIENT_ACKNOWLEDGE} or {@code SESSION_TRANSACTED} * having been requested. * @param bw the BeanWrapper wrapping the ActivationSpec object * @param ackMode the configured acknowledge mode * (according to the constants in {@link javax.jms.Session} * @see javax.jms.Session#AUTO_ACKNOWLEDGE * @see javax.jms.Session#DUPS_OK_ACKNOWLEDGE * @see javax.jms.Session#CLIENT_ACKNOWLEDGE * @see javax.jms.Session#SESSION_TRANSACTED */ protected void applyAcknowledgeMode(BeanWrapper bw, int ackMode) { if (ackMode == Session.SESSION_TRANSACTED) { throw new IllegalArgumentException("No support for SESSION_TRANSACTED: Only \"Auto-acknowledge\" " + "and \"Dups-ok-acknowledge\" supported in standard JCA 1.5"); } else if (ackMode == Session.CLIENT_ACKNOWLEDGE) { throw new IllegalArgumentException("No support for CLIENT_ACKNOWLEDGE: Only \"Auto-acknowledge\" " + "and \"Dups-ok-acknowledge\" supported in standard JCA 1.5"); } else if (bw.isWritableProperty("acknowledgeMode")) { bw.setPropertyValue("acknowledgeMode", ackMode == Session.DUPS_OK_ACKNOWLEDGE ? "Dups-ok-acknowledge" : "Auto-acknowledge"); } else if (ackMode == Session.DUPS_OK_ACKNOWLEDGE) { // Standard JCA 1.5 "acknowledgeMode" apparently not supported (e.g. WebSphere MQ 6.0.2.1) throw new IllegalArgumentException("Dups-ok-acknowledge not supported by underlying provider"); } }
Example 13
Source File: SpringBeanJobFactory.java From spring4-understanding with Apache License 2.0 | 6 votes |
/** * Create the job instance, populating it with property values taken * from the scheduler context, job data map and trigger data map. */ @Override protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception { Object job = super.createJobInstance(bundle); BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(job); if (isEligibleForPropertyPopulation(bw.getWrappedInstance())) { MutablePropertyValues pvs = new MutablePropertyValues(); if (this.schedulerContext != null) { pvs.addPropertyValues(this.schedulerContext); } pvs.addPropertyValues(bundle.getJobDetail().getJobDataMap()); pvs.addPropertyValues(bundle.getTrigger().getJobDataMap()); if (this.ignoredUnknownProperties != null) { for (String propName : this.ignoredUnknownProperties) { if (pvs.contains(propName) && !bw.isWritableProperty(propName)) { pvs.removePropertyValue(propName); } } bw.setPropertyValues(pvs); } else { bw.setPropertyValues(pvs, true); } } return job; }
Example 14
Source File: SpringBeanJobFactory.java From lams with GNU General Public License v2.0 | 6 votes |
/** * Create the job instance, populating it with property values taken * from the scheduler context, job data map and trigger data map. */ @Override protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception { Object job = super.createJobInstance(bundle); if (isEligibleForPropertyPopulation(job)) { BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(job); MutablePropertyValues pvs = new MutablePropertyValues(); if (this.schedulerContext != null) { pvs.addPropertyValues(this.schedulerContext); } pvs.addPropertyValues(bundle.getJobDetail().getJobDataMap()); pvs.addPropertyValues(bundle.getTrigger().getJobDataMap()); if (this.ignoredUnknownProperties != null) { for (String propName : this.ignoredUnknownProperties) { if (pvs.contains(propName) && !bw.isWritableProperty(propName)) { pvs.removePropertyValue(propName); } } bw.setPropertyValues(pvs); } else { bw.setPropertyValues(pvs, true); } } return job; }
Example 15
Source File: DefaultJmsActivationSpecFactory.java From java-technology-stack with MIT License | 5 votes |
/** * This implementation maps {@code SESSION_TRANSACTED} onto an * ActivationSpec property named "useRAManagedTransaction", if available * (following ActiveMQ's naming conventions). */ @Override protected void applyAcknowledgeMode(BeanWrapper bw, int ackMode) { if (ackMode == Session.SESSION_TRANSACTED && bw.isWritableProperty("useRAManagedTransaction")) { // ActiveMQ bw.setPropertyValue("useRAManagedTransaction", "true"); } else { super.applyAcknowledgeMode(bw, ackMode); } }
Example 16
Source File: SpringBeanJobFactory.java From java-technology-stack with MIT License | 5 votes |
/** * Create the job instance, populating it with property values taken * from the scheduler context, job data map and trigger data map. */ @Override protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception { Object job = (this.applicationContext != null ? this.applicationContext.getAutowireCapableBeanFactory().createBean( bundle.getJobDetail().getJobClass(), AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, false) : super.createJobInstance(bundle)); if (isEligibleForPropertyPopulation(job)) { BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(job); MutablePropertyValues pvs = new MutablePropertyValues(); if (this.schedulerContext != null) { pvs.addPropertyValues(this.schedulerContext); } pvs.addPropertyValues(bundle.getJobDetail().getJobDataMap()); pvs.addPropertyValues(bundle.getTrigger().getJobDataMap()); if (this.ignoredUnknownProperties != null) { for (String propName : this.ignoredUnknownProperties) { if (pvs.contains(propName) && !bw.isWritableProperty(propName)) { pvs.removePropertyValue(propName); } } bw.setPropertyValues(pvs); } else { bw.setPropertyValues(pvs, true); } } return job; }
Example 17
Source File: DefaultJmsActivationSpecFactory.java From spring-analysis-note with MIT License | 5 votes |
/** * This implementation maps {@code SESSION_TRANSACTED} onto an * ActivationSpec property named "useRAManagedTransaction", if available * (following ActiveMQ's naming conventions). */ @Override protected void applyAcknowledgeMode(BeanWrapper bw, int ackMode) { if (ackMode == Session.SESSION_TRANSACTED && bw.isWritableProperty("useRAManagedTransaction")) { // ActiveMQ bw.setPropertyValue("useRAManagedTransaction", "true"); } else { super.applyAcknowledgeMode(bw, ackMode); } }
Example 18
Source File: DefaultJmsActivationSpecFactory.java From spring-analysis-note with MIT License | 5 votes |
/** * This implementation supports Spring's extended "maxConcurrency" * and "prefetchSize" settings through detecting corresponding * ActivationSpec properties: "maxSessions"/"maxNumberOfWorks" and * "maxMessagesPerSessions"/"maxMessages", respectively * (following ActiveMQ's and JORAM's naming conventions). */ @Override protected void populateActivationSpecProperties(BeanWrapper bw, JmsActivationSpecConfig config) { super.populateActivationSpecProperties(bw, config); if (config.getMaxConcurrency() > 0) { if (bw.isWritableProperty("maxSessions")) { // ActiveMQ bw.setPropertyValue("maxSessions", Integer.toString(config.getMaxConcurrency())); } else if (bw.isWritableProperty("maxNumberOfWorks")) { // JORAM bw.setPropertyValue("maxNumberOfWorks", Integer.toString(config.getMaxConcurrency())); } else if (bw.isWritableProperty("maxConcurrency")){ // WebSphere bw.setPropertyValue("maxConcurrency", Integer.toString(config.getMaxConcurrency())); } } if (config.getPrefetchSize() > 0) { if (bw.isWritableProperty("maxMessagesPerSessions")) { // ActiveMQ bw.setPropertyValue("maxMessagesPerSessions", Integer.toString(config.getPrefetchSize())); } else if (bw.isWritableProperty("maxMessages")) { // JORAM bw.setPropertyValue("maxMessages", Integer.toString(config.getPrefetchSize())); } else if (bw.isWritableProperty("maxBatchSize")){ // WebSphere bw.setPropertyValue("maxBatchSize", Integer.toString(config.getPrefetchSize())); } } }
Example 19
Source File: BeanConversionService.java From data-prep with Apache License 2.0 | 5 votes |
private static List<String> getDiscardedProperties(Object source, Object converted) { final String cacheKey = source.getClass().getName() + " to " + converted.getClass().getName(); if (discardedPropertiesCache.containsKey(cacheKey)) { return discardedPropertiesCache.get(cacheKey); } final List<String> discardedProperties = new LinkedList<>(); final BeanWrapper sourceBean = new BeanWrapperImpl(source); final BeanWrapper targetBean = new BeanWrapperImpl(converted); final PropertyDescriptor[] sourceProperties = sourceBean.getPropertyDescriptors(); for (PropertyDescriptor sourceProperty : sourceProperties) { if (targetBean.isWritableProperty(sourceProperty.getName())) { final PropertyDescriptor targetProperty = targetBean.getPropertyDescriptor(sourceProperty.getName()); final Class<?> sourcePropertyType = sourceProperty.getPropertyType(); final Class<?> targetPropertyType = targetProperty.getPropertyType(); final Method readMethod = sourceProperty.getReadMethod(); if (readMethod != null) { final Type sourceReturnType = readMethod.getGenericReturnType(); final Method targetPropertyWriteMethod = targetProperty.getWriteMethod(); if (targetPropertyWriteMethod != null) { final Type targetReturnType = targetPropertyWriteMethod.getParameters()[0].getParameterizedType(); boolean valid = Object.class.equals(targetPropertyType) || sourcePropertyType.equals(targetPropertyType) && sourceReturnType.equals(targetReturnType); if (!valid) { discardedProperties.add(sourceProperty.getName()); } } } else { discardedProperties.add(sourceProperty.getName()); } } } discardedPropertiesCache.put(cacheKey, unmodifiableList(discardedProperties)); return discardedProperties; }
Example 20
Source File: StandardJmsActivationSpecFactory.java From spring-analysis-note with MIT License | 4 votes |
/** * Populate the given ApplicationSpec object with the settings * defined in the given configuration object. * <p>This implementation applies all standard JMS settings, but ignores * "maxConcurrency" and "prefetchSize" - not supported in standard JCA 1.5. * @param bw the BeanWrapper wrapping the ActivationSpec object * @param config the configured object holding common JMS settings */ protected void populateActivationSpecProperties(BeanWrapper bw, JmsActivationSpecConfig config) { String destinationName = config.getDestinationName(); if (destinationName != null) { boolean pubSubDomain = config.isPubSubDomain(); Object destination = destinationName; if (this.destinationResolver != null) { try { destination = this.destinationResolver.resolveDestinationName(null, destinationName, pubSubDomain); } catch (JMSException ex) { throw new DestinationResolutionException( "Cannot resolve destination name [" + destinationName + "]", ex); } } bw.setPropertyValue("destination", destination); bw.setPropertyValue("destinationType", pubSubDomain ? Topic.class.getName() : Queue.class.getName()); } if (bw.isWritableProperty("subscriptionDurability")) { bw.setPropertyValue("subscriptionDurability", config.isSubscriptionDurable() ? "Durable" : "NonDurable"); } else if (config.isSubscriptionDurable()) { // Standard JCA 1.5 "subscriptionDurability" apparently not supported... throw new IllegalArgumentException("Durable subscriptions not supported by underlying provider"); } if (config.isSubscriptionShared()) { throw new IllegalArgumentException("Shared subscriptions not supported for JCA-driven endpoints"); } if (config.getSubscriptionName() != null) { bw.setPropertyValue("subscriptionName", config.getSubscriptionName()); } if (config.getClientId() != null) { bw.setPropertyValue("clientId", config.getClientId()); } if (config.getMessageSelector() != null) { bw.setPropertyValue("messageSelector", config.getMessageSelector()); } applyAcknowledgeMode(bw, config.getAcknowledgeMode()); }