@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { addOptionalPropertyReference(builder, "session", element, "session-ref", DefaultCqlBeanNames.SESSION); } }
/** * 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); } }
/** * Convenience method delegating to * {@link #addProperty(BeanDefinitionBuilder, String, String, String, boolean, boolean)}. */ public static void addRequiredPropertyReference(BeanDefinitionBuilder builder, String propertyName, String value) { addProperty(builder, propertyName, value, null, true, true); }
/** * 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); }
.genericBeanDefinition(PoolingOptionsFactoryBean.class); addOptionalPropertyReference(poolingOptionsBuilder, "initializationExecutor", element, "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"); builder.addPropertyValue("poolingOptions", getSourceBeanDefinition(poolingOptionsBuilder, parserContext, element)); builder.addPropertyValue("startupScripts", startupScripts); builder.addPropertyValue("shutdownScripts", shutdownScripts);
addOptionalPropertyReference(builder, "addressTranslator", element, "address-translator-ref"); addOptionalPropertyReference(builder, "authProvider", element, "auth-info-provider-ref"); addOptionalPropertyReference(builder, "clusterBuilderConfigurer", element, "cluster-builder-configurer-ref"); addOptionalPropertyReference(builder, "hostStateListener", element, "host-state-listener-ref"); addOptionalPropertyReference(builder, "latencyTracker", element, "latency-tracker-ref"); addOptionalPropertyReference(builder, "loadBalancingPolicy", element, "load-balancing-policy-ref"); addOptionalPropertyReference(builder, "nettyOptions", element, "netty-options-ref"); addOptionalPropertyReference(builder, "reconnectionPolicy", element, "reconnection-policy-ref"); addOptionalPropertyReference(builder, "retryPolicy", element, "retry-policy-ref"); addOptionalPropertyReference(builder, "speculativeExecutionPolicy", element, "speculative-execution-policy-ref"); addOptionalPropertyReference(builder, "sslOptions", element, "ssl-options-ref"); 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");
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { CassandraMappingXmlBeanFactoryPostProcessorRegistrar.ensureRegistration(element, parserContext); super.doParse(element, parserContext, builder); if (StringUtils.hasText(element.getAttribute("cql-template-ref"))) { addRequiredPropertyReference(builder, "cqlOperations", element, "cql-template-ref"); } else { addOptionalPropertyReference(builder, "session", element, "session-ref", DefaultBeanNames.SESSION); } addOptionalPropertyReference(builder, "converter", element, "cassandra-converter-ref", DefaultBeanNames.CONVERTER); } }
@Override protected void setDefaultProperties(BeanDefinitionBuilder builder) { super.setDefaultProperties(builder); addRequiredPropertyValue(builder, "schemaAction", SchemaAction.NONE.name()); addRequiredPropertyReference(builder, "converter", DefaultBeanNames.CONVERTER); } }
private void parseSessionAttributes(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { NamedNodeMap attributes = element.getAttributes(); int length = attributes.getLength(); for (int i = 0; i < length; i++) { Attr attribute = (Attr) attributes.item(i); if ("id".equals(attribute.getName())) { continue; } String name = attribute.getName(); if ("keyspace-name".equals(name)) { addRequiredPropertyValue(builder, "keyspaceName", attribute); } else if ("cluster-ref".equals(name)) { addOptionalPropertyReference(builder, "cluster", attribute, DefaultCqlBeanNames.CLUSTER); } else { parseUnhandledSessionElementAttribute(attribute, parserContext, builder); } } }
/** * 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); }
protected void setDefaultProperties(BeanDefinitionBuilder builder) { addRequiredPropertyReference(builder, "cluster", DefaultCqlBeanNames.CLUSTER); }
/** * Returns a {@link BeanDefinition} built from the given {@link BeanDefinitionBuilder} enriched with source meta-data * derived from the given {@link Element}. * * @param builder {@link BeanDefinitionBuilder} used to build the {@link BeanDefinition}. * @param parserContext {@link ParserContext} used to track state during the parsing operation. * @param element DOM {@link Element} defining the meta-data that is the source of the {@link BeanDefinition}s * configuration. * @return the {@link BeanDefinition} built by the given {@link BeanDefinitionBuilder}. * @throws IllegalArgumentException if the {@link BeanDefinitionBuilder} or {@link ParserContext} are null. */ public static AbstractBeanDefinition getSourceBeanDefinition(BeanDefinitionBuilder builder, ParserContext parserContext, Element element) { Assert.notNull(parserContext, "ParserContext must not be null"); return getSourceBeanDefinition(builder, parserContext.extractSource(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 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); }
/** * Convenience method delegating to * {@link #addProperty(BeanDefinitionBuilder, String, String, String, boolean, boolean)}. */ public static void addRequiredPropertyValue(BeanDefinitionBuilder builder, String propertyName, String value) { addProperty(builder, propertyName, value, null, true, false); }
/** * 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); }
/** * Convenience method delegating to * {@link #addProperty(BeanDefinitionBuilder, String, String, String, boolean, boolean)}. */ public static void addOptionalPropertyReference(BeanDefinitionBuilder builder, String propertyName, Attr attribute, String defaultValue) { addProperty(builder, propertyName, attribute.getValue(), defaultValue, false, true); }
/** * Convenience method delegating to * {@link #addProperty(BeanDefinitionBuilder, String, String, String, boolean, boolean)}. */ public static void addOptionalPropertyValue(BeanDefinitionBuilder builder, String propertyName, Element element, String attributeName) { addProperty(builder, propertyName, element.getAttribute(attributeName), null, false, false); }
/** * Convenience method delegating to * {@link #addProperty(BeanDefinitionBuilder, String, String, String, boolean, boolean)}. */ public static void addOptionalPropertyValue(BeanDefinitionBuilder builder, String propertyName, Attr attribute, String defaultValue) { addProperty(builder, propertyName, attribute.getValue(), defaultValue, false, false); }
/** * Convenience method delegating to * {@link #addProperty(BeanDefinitionBuilder, String, String, String, boolean, boolean)}. */ public static void addRequiredPropertyReference(BeanDefinitionBuilder builder, String propertyName, Element element, String attributeName) { addProperty(builder, propertyName, element.getAttribute(attributeName), null, true, true); }