/** * Parses local pooling options. * * @param element {@link Element} to parse. * @param builder {@link BeanDefinitionBuilder} used to build a {@link PoolingOptions} {@link BeanDefinition}. */ void parseLocalPoolingOptions(Element element, BeanDefinitionBuilder builder) { addOptionalPropertyValue(builder, "localCoreConnections", element, "core-connections", null); addOptionalPropertyValue(builder, "localMaxConnections", element, "max-connections", null); addOptionalPropertyValue(builder, "localMaxSimultaneousRequests", element, "max-simultaneous-requests", null); addOptionalPropertyValue(builder, "localMinSimultaneousRequests", element, "min-simultaneous-requests", null); }
/** * Parses remote pooling options. * * @param element {@link Element} to parse. * @param builder {@link BeanDefinitionBuilder} used to build a {@link PoolingOptions} {@link BeanDefinition}. */ void parseRemotePoolingOptions(Element element, BeanDefinitionBuilder builder) { addOptionalPropertyValue(builder, "remoteCoreConnections", element, "core-connections", null); addOptionalPropertyValue(builder, "remoteMaxConnections", element, "max-connections", null); addOptionalPropertyValue(builder, "remoteMaxSimultaneousRequests", element, "max-simultaneous-requests", null); addOptionalPropertyValue(builder, "remoteMinSimultaneousRequests", element, "min-simultaneous-requests", null); }
/** * Returns a {@link BeanDefinition} for a {@link SocketOptions} object. * * @param element {@link Element} to parse. * @param parserContext XML parser context and state. * @return {@link BeanDefinition} for {@link SocketOptionsFactoryBean}. */ BeanDefinition newSocketOptionsBeanDefinition(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(SocketOptionsFactoryBean.class); addOptionalPropertyValue(builder, "connectTimeoutMillis", element, "connect-timeout-millis"); addOptionalPropertyValue(builder, "keepAlive", element, "keep-alive"); addOptionalPropertyValue(builder, "readTimeoutMillis", element, "read-timeout-millis"); addOptionalPropertyValue(builder, "receiveBufferSize", element, "receive-buffer-size"); addOptionalPropertyValue(builder, "reuseAddress", element, "reuse-address"); addOptionalPropertyValue(builder, "sendBufferSize", element, "send-buffer-size"); addOptionalPropertyValue(builder, "soLinger", element, "so-linger"); addOptionalPropertyValue(builder, "tcpNoDelay", element, "tcp-no-delay"); return getSourceBeanDefinition(builder, parserContext, element); } }
@Override protected void parseUnhandledSessionElementAttribute(Attr attribute, ParserContext parserContext, BeanDefinitionBuilder builder) { String name = attribute.getName(); if ("cassandra-converter-ref".equals(name)) { addOptionalPropertyReference(builder, "converter", attribute, DefaultBeanNames.CONVERTER); } else if ("schema-action".equals(name)) { addOptionalPropertyValue(builder, "schemaAction", attribute, SchemaAction.NONE.name()); } else { super.parseUnhandledSessionElementAttribute(attribute, parserContext, builder); } }
/** * Parses the keyspace replication options and adds them to the supplied {@link BeanDefinitionBuilder}. * * @param element {@link Element} to parse. * @param builder The {@link BeanDefinitionBuilder} to add the replication to */ private void parseReplication(@Nullable Element element, BeanDefinitionBuilder builder) { ManagedList<String> networkTopologyDataCenters = new ManagedList<>(); ManagedList<String> networkTopologyReplicationFactors = new ManagedList<>(); if (element != null) { addOptionalPropertyValue(builder, "replicationStrategy", element, "class", KeyspaceAttributes.DEFAULT_REPLICATION_STRATEGY.name()); addOptionalPropertyValue(builder, "replicationFactor", element, "replication-factor", String.valueOf(KeyspaceAttributes.DEFAULT_REPLICATION_FACTOR)); // DataCenters only apply to NetworkTopologyStrategy for (Element dataCenter : DomUtils.getChildElementsByTagName(element, "data-center")) { networkTopologyDataCenters.add(dataCenter.getAttribute("name")); networkTopologyReplicationFactors.add(dataCenter.getAttribute("replication-factor")); } } builder.addPropertyValue("networkTopologyDataCenters", networkTopologyDataCenters); builder.addPropertyValue("networkTopologyReplicationFactors", networkTopologyReplicationFactors); }
addOptionalPropertyReference(builder, "timestampGenerator", element, "timestamp-generator-ref"); addOptionalPropertyValue(builder, "clusterName", element, "cluster-name"); addOptionalPropertyValue(builder, "contactPoints", element, "contact-points"); addOptionalPropertyValue(builder, "compressionType", element, "compression"); addOptionalPropertyValue(builder, "jmxReportingEnabled", element, "jmx-reporting-enabled"); addOptionalPropertyValue(builder, "maxSchemaAgreementWaitSeconds", element, "max-schema-agreement-wait-seconds"); addOptionalPropertyValue(builder, "metricsEnabled", element, "metrics-enabled"); addOptionalPropertyValue(builder, "password", element, "password"); addOptionalPropertyValue(builder, "port", element, "port"); addOptionalPropertyValue(builder, "sslEnabled", element, "ssl-enabled"); addOptionalPropertyValue(builder, "username", element, "username");
"initialization-executor-ref"); addOptionalPropertyValue(poolingOptionsBuilder, "heartbeatIntervalSeconds", element, "heartbeat-interval-seconds"); addOptionalPropertyValue(poolingOptionsBuilder, "idleTimeoutSeconds", element, "idle-timeout-seconds"); addOptionalPropertyValue(poolingOptionsBuilder, "poolTimeoutMilliseconds", element, "pool-timeout-milliseconds"); addOptionalPropertyValue(poolingOptionsBuilder, "maxQueueSize", element, "max-queue-size");
/** * Returns a {@link BeanDefinition} for a {@link KeyspaceActionSpecification} object. * * @param element Element being parsed. * @param parserContext XML parser context and state. * @return the {@link BeanDefinition} or {@literal null} if action is not given. */ private BeanDefinition newKeyspaceActionSpecificationBeanDefinition(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder .genericBeanDefinition(KeyspaceActionSpecificationFactoryBean.class); // add required replication defaults addRequiredPropertyValue(builder, "replicationStrategy", KeyspaceAttributes.DEFAULT_REPLICATION_STRATEGY.name()); addRequiredPropertyValue(builder, "replicationFactor", String.valueOf(KeyspaceAttributes.DEFAULT_REPLICATION_FACTOR)); addRequiredPropertyValue(builder, "name", element, "name"); addOptionalPropertyValue(builder, "durableWrites", element, "durable-writes", "false"); addRequiredPropertyValue(builder, "action", element, "action"); parseReplication(DomUtils.getChildElementByTagName(element, "replication"), builder); return getSourceBeanDefinition(builder, parserContext, element); }