diff --git a/README.adoc b/README.adoc
index 66e7799f3..155660523 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1 +1,657 @@
-Spring Cloud Stream Binder for Apache Kafka
+// Do not edit this file (e.g. go instead to src/main/asciidoc)
+
+:jdkversion: 1.8
+:github-tag: master
+:github-repo: spring-cloud/spring-cloud-stream-binder-kafka
+
+:github-raw: https://raw.githubusercontent.com/{github-repo}/{github-tag}
+:github-code: https://github.com/{github-repo}/tree/{github-tag}
+
+image::https://circleci.com/gh/spring-cloud/spring-cloud-stream-binder-kafka.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-cloud/spring-cloud-stream-binder-kafka"]
+image::https://codecov.io/gh/spring-cloud/spring-cloud-stream-binder-kafka/branch/{github-tag}/graph/badge.svg["codecov", link="https://codecov.io/gh/spring-cloud/spring-cloud-stream-binder-kafka"]
+image::https://badges.gitter.im/spring-cloud/spring-cloud-stream-binder-kafka.svg[Gitter, link="https://gitter.im/spring-cloud/spring-cloud-stream-binder-kafka?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
+
+// ======================================================================================
+
+//= Overview
+[partintro]
+--
+This guide describes the Apache Kafka implementation of the Spring Cloud Stream Binder.
+It contains information about its design, usage, and configuration options, as well as information on how the Stream Cloud Stream concepts map onto Apache Kafka specific constructs.
+In addition, this guide explains the Kafka Streams binding capabilities of Spring Cloud Stream.
+--
+
+== Usage
+
+To use Apache Kafka binder, you need to add `spring-cloud-stream-binder-kafka` as a dependency to your Spring Cloud Stream application, as shown in the following example for Maven:
+
+[source,xml]
+----
+
+ org.springframework.cloud
+ spring-cloud-stream-binder-kafka
+
+----
+
+Alternatively, you can also use the Spring Cloud Stream Kafka Starter, as shown inn the following example for Maven:
+
+[source,xml]
+----
+
+ org.springframework.cloud
+ spring-cloud-starter-stream-kafka
+
+----
+
+== Apache Kafka Binder Overview
+
+The following image shows a simplified diagram of how the Apache Kafka binder operates:
+
+.Kafka Binder
+image::{github-raw}/docs/src/main/asciidoc/images/kafka-binder.png[width=300,scaledwidth="50%"]
+
+The Apache Kafka Binder implementation maps each destination to an Apache Kafka topic.
+The consumer group maps directly to the same Apache Kafka concept.
+Partitioning also maps directly to Apache Kafka partitions as well.
+
+The binder currently uses the Apache Kafka `kafka-clients` 1.0.0 jar and is designed to be used with a broker of at least that version.
+This client can communicate with older brokers (see the Kafka documentation), but certain features may not be available.
+For example, with versions earlier than 0.11.x.x, native headers are not supported.
+Also, 0.11.x.x does not support the `autoAddPartitions` property.
+
+== Configuration Options
+
+This section contains the configuration options used by the Apache Kafka binder.
+
+For common configuration options and properties pertaining to binder, see the <>.
+
+=== Kafka Binder Properties
+
+spring.cloud.stream.kafka.binder.brokers::
+A list of brokers to which the Kafka binder connects.
++
+Default: `localhost`.
+spring.cloud.stream.kafka.binder.defaultBrokerPort::
+`brokers` allows hosts specified with or without port information (for example, `host1,host2:port2`).
+This sets the default port when no port is configured in the broker list.
++
+Default: `9092`.
+spring.cloud.stream.kafka.binder.configuration::
+Key/Value map of client properties (both producers and consumer) passed to all clients created by the binder.
+Due to the fact that these properties are used by both producers and consumers, usage should be restricted to common properties -- for example, security settings.
+Unknown Kafka producer or consumer properties provided through this configuration are filtered out and not allowed to propagate.
+Properties here supersede any properties set in boot.
++
+Default: Empty map.
+spring.cloud.stream.kafka.binder.consumerProperties::
+Key/Value map of arbitrary Kafka client consumer properties.
+In addition to support known Kafka consumer properties, unknown consumer properties are allowed here as well.
+Properties here supersede any properties set in boot and in the `configuration` property above.
++
+Default: Empty map.
+spring.cloud.stream.kafka.binder.headers::
+The list of custom headers that are transported by the binder.
+Only required when communicating with older applications (<= 1.3.x) with a `kafka-clients` version < 0.11.0.0. Newer versions support headers natively.
++
+Default: empty.
+spring.cloud.stream.kafka.binder.healthTimeout::
+The time to wait to get partition information, in seconds.
+Health reports as down if this timer expires.
++
+Default: 10.
+spring.cloud.stream.kafka.binder.requiredAcks::
+The number of required acks on the broker.
+See the Kafka documentation for the producer `acks` property.
++
+Default: `1`.
+spring.cloud.stream.kafka.binder.minPartitionCount::
+Effective only if `autoCreateTopics` or `autoAddPartitions` is set.
+The global minimum number of partitions that the binder configures on topics on which it produces or consumes data.
+It can be superseded by the `partitionCount` setting of the producer or by the value of `instanceCount * concurrency` settings of the producer (if either is larger).
++
+Default: `1`.
+spring.cloud.stream.kafka.binder.producerProperties::
+Key/Value map of arbitrary Kafka client producer properties.
+In addition to support known Kafka producer properties, unknown producer properties are allowed here as well.
+Properties here supersede any properties set in boot and in the `configuration` property above.
++
+Default: Empty map.
+spring.cloud.stream.kafka.binder.replicationFactor::
+The replication factor of auto-created topics if `autoCreateTopics` is active.
+Can be overridden on each binding.
++
+Default: `1`.
+spring.cloud.stream.kafka.binder.autoCreateTopics::
+If set to `true`, the binder creates new topics automatically.
+If set to `false`, the binder relies on the topics being already configured.
+In the latter case, if the topics do not exist, the binder fails to start.
++
+NOTE: This setting is independent of the `auto.topic.create.enable` setting of the broker and does not influence it.
+If the server is set to auto-create topics, they may be created as part of the metadata retrieval request, with default broker settings.
++
+Default: `true`.
+spring.cloud.stream.kafka.binder.autoAddPartitions::
+If set to `true`, the binder creates new partitions if required.
+If set to `false`, the binder relies on the partition size of the topic being already configured.
+If the partition count of the target topic is smaller than the expected value, the binder fails to start.
++
+Default: `false`.
+spring.cloud.stream.kafka.binder.transaction.transactionIdPrefix::
+Enables transactions in the binder. See `transaction.id` in the Kafka documentation and https://docs.spring.io/spring-kafka/reference/html/_reference.html#transactions[Transactions] in the `spring-kafka` documentation.
+When transactions are enabled, individual `producer` properties are ignored and all producers use the `spring.cloud.stream.kafka.binder.transaction.producer.*` properties.
++
+Default `null` (no transactions)
+spring.cloud.stream.kafka.binder.transaction.producer.*::
+Global producer properties for producers in a transactional binder.
+See `spring.cloud.stream.kafka.binder.transaction.transactionIdPrefix` and <> and the general producer properties supported by all binders.
++
+Default: See individual producer properties.
+
+spring.cloud.stream.kafka.binder.headerMapperBeanName::
+The bean name of a `KafkaHeaderMapper` used for mapping `spring-messaging` headers to and from Kafka headers.
+Use this, for example, if you wish to customize the trusted packages in a `DefaultKafkaHeaderMapper` that uses JSON deserialization for the headers.
++
+Default: none.
+
+[[kafka-consumer-properties]]
+=== Kafka Consumer Properties
+
+The following properties are available for Kafka consumers only and
+must be prefixed with `spring.cloud.stream.kafka.bindings..consumer.`.
+
+admin.configuration::
+A `Map` of Kafka topic properties used when provisioning topics -- for example, `spring.cloud.stream.kafka.bindings.input.consumer.admin.configuration.message.format.version=0.9.0.0`
++
+Default: none.
+
+admin.replicas-assignment::
+A Map> of replica assignments, with the key being the partition and the value being the assignments.
+Used when provisioning new topics.
+See the `NewTopic` Javadocs in the `kafka-clients` jar.
++
+Default: none.
+
+admin.replication-factor::
+The replication factor to use when provisioning topics. Overrides the binder-wide setting.
+Ignored if `replicas-assignments` is present.
++
+Default: none (the binder-wide default of 1 is used).
+
+autoRebalanceEnabled::
+When `true`, topic partitions is automatically rebalanced between the members of a consumer group.
+When `false`, each consumer is assigned a fixed set of partitions based on `spring.cloud.stream.instanceCount` and `spring.cloud.stream.instanceIndex`.
+This requires both the `spring.cloud.stream.instanceCount` and `spring.cloud.stream.instanceIndex` properties to be set appropriately on each launched instance.
+The value of the `spring.cloud.stream.instanceCount` property must typically be greater than 1 in this case.
++
+Default: `true`.
+ackEachRecord::
+When `autoCommitOffset` is `true`, this setting dictates whether to commit the offset after each record is processed.
+By default, offsets are committed after all records in the batch of records returned by `consumer.poll()` have been processed.
+The number of records returned by a poll can be controlled with the `max.poll.records` Kafka property, which is set through the consumer `configuration` property.
+Setting this to `true` may cause a degradation in performance, but doing so reduces the likelihood of redelivered records when a failure occurs.
+Also, see the binder `requiredAcks` property, which also affects the performance of committing offsets.
++
+Default: `false`.
+autoCommitOffset::
+Whether to autocommit offsets when a message has been processed.
+If set to `false`, a header with the key `kafka_acknowledgment` of the type `org.springframework.kafka.support.Acknowledgment` header is present in the inbound message.
+Applications may use this header for acknowledging messages.
+See the examples section for details.
+When this property is set to `false`, Kafka binder sets the ack mode to `org.springframework.kafka.listener.AbstractMessageListenerContainer.AckMode.MANUAL` and the application is responsible for acknowledging records.
+Also see `ackEachRecord`.
++
+Default: `true`.
+autoCommitOnError::
+Effective only if `autoCommitOffset` is set to `true`.
+If set to `false`, it suppresses auto-commits for messages that result in errors and commits only for successful messages. It allows a stream to automatically replay from the last successfully processed message, in case of persistent failures.
+If set to `true`, it always auto-commits (if auto-commit is enabled).
+If not set (the default), it effectively has the same value as `enableDlq`, auto-committing erroneous messages if they are sent to a DLQ and not committing them otherwise.
++
+Default: not set.
+resetOffsets::
+Whether to reset offsets on the consumer to the value provided by startOffset.
++
+Default: `false`.
+startOffset::
+The starting offset for new groups.
+Allowed values: `earliest` and `latest`.
+If the consumer group is set explicitly for the consumer 'binding' (through `spring.cloud.stream.bindings..group`), 'startOffset' is set to `earliest`. Otherwise, it is set to `latest` for the `anonymous` consumer group.
+Also see `resetOffsets` (earlier in this list).
++
+Default: null (equivalent to `earliest`).
+enableDlq::
+When set to true, it enables DLQ behavior for the consumer.
+By default, messages that result in errors are forwarded to a topic named `error..`.
+The DLQ topic name can be configurable by setting the `dlqName` property.
+This provides an alternative option to the more common Kafka replay scenario for the case when the number of errors is relatively small and replaying the entire original topic may be too cumbersome.
+See <> processing for more information.
+Starting with version 2.0, messages sent to the DLQ topic are enhanced with the following headers: `x-original-topic`, `x-exception-message`, and `x-exception-stacktrace` as `byte[]`.
+**Not allowed when `destinationIsPattern` is `true`.**
++
+Default: `false`.
+configuration::
+Map with a key/value pair containing generic Kafka consumer properties.
+In addition to having Kafka consumer properties, other configuration properties can be passed here.
+For example some properties needed by the application such as `spring.cloud.stream.kafka.bindings.input.consumer.configuration.foo=bar`.
++
+Default: Empty map.
+dlqName::
+The name of the DLQ topic to receive the error messages.
++
+Default: null (If not specified, messages that result in errors are forwarded to a topic named `error..`).
+dlqProducerProperties::
+Using this, DLQ-specific producer properties can be set.
+All the properties available through kafka producer properties can be set through this property.
++
+Default: Default Kafka producer properties.
+standardHeaders::
+Indicates which standard headers are populated by the inbound channel adapter.
+Allowed values: `none`, `id`, `timestamp`, or `both`.
+Useful if using native deserialization and the first component to receive a message needs an `id` (such as an aggregator that is configured to use a JDBC message store).
++
+Default: `none`
+converterBeanName::
+The name of a bean that implements `RecordMessageConverter`. Used in the inbound channel adapter to replace the default `MessagingMessageConverter`.
++
+Default: `null`
+idleEventInterval::
+The interval, in milliseconds, between events indicating that no messages have recently been received.
+Use an `ApplicationListener` to receive these events.
+See <> for a usage example.
++
+Default: `30000`
+destinationIsPattern::
+When true, the destination is treated as a regular expression `Pattern` used to match topic names by the broker.
+When true, topics are not provisioned, and `enableDlq` is not allowed, because the binder does not know the topic names during the provisioning phase.
+Note, the time taken to detect new topics that match the pattern is controlled by the consumer property `metadata.max.age.ms`, which (at the time of writing) defaults to 300,000ms (5 minutes).
+This can be configured using the `configuration` property above.
++
+Default: `false`
+
+[[kafka-producer-properties]]
+=== Kafka Producer Properties
+
+The following properties are available for Kafka producers only and
+must be prefixed with `spring.cloud.stream.kafka.bindings..producer.`.
+
+admin.configuration::
+A `Map` of Kafka topic properties used when provisioning new topics -- for example, `spring.cloud.stream.kafka.bindings.input.consumer.admin.configuration.message.format.version=0.9.0.0`
++
+Default: none.
+
+admin.replicas-assignment::
+A Map> of replica assignments, with the key being the partition and the value being the assignments.
+Used when provisioning new topics.
+See `NewTopic` javadocs in the `kafka-clients` jar.
++
+Default: none.
+
+admin.replication-factor::
+The replication factor to use when provisioning new topics. Overrides the binder-wide setting.
+Ignored if `replicas-assignments` is present.
++
+Default: none (the binder-wide default of 1 is used).
+
+bufferSize::
+Upper limit, in bytes, of how much data the Kafka producer attempts to batch before sending.
++
+Default: `16384`.
+sync::
+Whether the producer is synchronous.
++
+Default: `false`.
+batchTimeout::
+How long the producer waits to allow more messages to accumulate in the same batch before sending the messages.
+(Normally, the producer does not wait at all and simply sends all the messages that accumulated while the previous send was in progress.) A non-zero value may increase throughput at the expense of latency.
++
+Default: `0`.
+messageKeyExpression::
+A SpEL expression evaluated against the outgoing message used to populate the key of the produced Kafka message -- for example, `headers['myKey']`.
+The payload cannot be used because, by the time this expression is evaluated, the payload is already in the form of a `byte[]`.
++
+Default: `none`.
+headerPatterns::
+A comma-delimited list of simple patterns to match Spring messaging headers to be mapped to the Kafka `Headers` in the `ProducerRecord`.
+Patterns can begin or end with the wildcard character (asterisk).
+Patterns can be negated by prefixing with `!`.
+Matching stops after the first match (positive or negative).
+For example `!ask,as*` will pass `ash` but not `ask`.
+`id` and `timestamp` are never mapped.
++
+Default: `*` (all headers - except the `id` and `timestamp`)
+configuration::
+Map with a key/value pair containing generic Kafka producer properties.
++
+Default: Empty map.
+
+NOTE: The Kafka binder uses the `partitionCount` setting of the producer as a hint to create a topic with the given partition count (in conjunction with the `minPartitionCount`, the maximum of the two being the value being used).
+Exercise caution when configuring both `minPartitionCount` for a binder and `partitionCount` for an application, as the larger value is used.
+If a topic already exists with a smaller partition count and `autoAddPartitions` is disabled (the default), the binder fails to start.
+If a topic already exists with a smaller partition count and `autoAddPartitions` is enabled, new partitions are added.
+If a topic already exists with a larger number of partitions than the maximum of (`minPartitionCount` or `partitionCount`), the existing partition count is used.
+
+=== Usage examples
+
+In this section, we show the use of the preceding properties for specific scenarios.
+
+==== Example: Setting `autoCommitOffset` to `false` and Relying on Manual Acking
+
+This example illustrates how one may manually acknowledge offsets in a consumer application.
+
+This example requires that `spring.cloud.stream.kafka.bindings.input.consumer.autoCommitOffset` be set to `false`.
+Use the corresponding input channel name for your example.
+
+[source]
+----
+@SpringBootApplication
+@EnableBinding(Sink.class)
+public class ManuallyAcknowdledgingConsumer {
+
+ public static void main(String[] args) {
+ SpringApplication.run(ManuallyAcknowdledgingConsumer.class, args);
+ }
+
+ @StreamListener(Sink.INPUT)
+ public void process(Message> message) {
+ Acknowledgment acknowledgment = message.getHeaders().get(KafkaHeaders.ACKNOWLEDGMENT, Acknowledgment.class);
+ if (acknowledgment != null) {
+ System.out.println("Acknowledgment provided");
+ acknowledgment.acknowledge();
+ }
+ }
+}
+----
+
+==== Example: Security Configuration
+
+Apache Kafka 0.9 supports secure connections between client and brokers.
+To take advantage of this feature, follow the guidelines in the http://kafka.apache.org/090/documentation.html#security_configclients[Apache Kafka Documentation] as well as the Kafka 0.9 http://docs.confluent.io/2.0.0/kafka/security.html[security guidelines from the Confluent documentation].
+Use the `spring.cloud.stream.kafka.binder.configuration` option to set security properties for all clients created by the binder.
+
+For example, to set `security.protocol` to `SASL_SSL`, set the following property:
+
+[source]
+----
+spring.cloud.stream.kafka.binder.configuration.security.protocol=SASL_SSL
+----
+
+All the other security properties can be set in a similar manner.
+
+When using Kerberos, follow the instructions in the http://kafka.apache.org/090/documentation.html#security_sasl_clientconfig[reference documentation] for creating and referencing the JAAS configuration.
+
+Spring Cloud Stream supports passing JAAS configuration information to the application by using a JAAS configuration file and using Spring Boot properties.
+
+===== Using JAAS Configuration Files
+
+The JAAS and (optionally) krb5 file locations can be set for Spring Cloud Stream applications by using system properties.
+The following example shows how to launch a Spring Cloud Stream application with SASL and Kerberos by using a JAAS configuration file:
+
+[source,bash]
+----
+ java -Djava.security.auth.login.config=/path.to/kafka_client_jaas.conf -jar log.jar \
+ --spring.cloud.stream.kafka.binder.brokers=secure.server:9092 \
+ --spring.cloud.stream.bindings.input.destination=stream.ticktock \
+ --spring.cloud.stream.kafka.binder.configuration.security.protocol=SASL_PLAINTEXT
+----
+
+===== Using Spring Boot Properties
+
+As an alternative to having a JAAS configuration file, Spring Cloud Stream provides a mechanism for setting up the JAAS configuration for Spring Cloud Stream applications by using Spring Boot properties.
+
+The following properties can be used to configure the login context of the Kafka client:
+
+spring.cloud.stream.kafka.binder.jaas.loginModule::
+The login module name. Not necessary to be set in normal cases.
++
+Default: `com.sun.security.auth.module.Krb5LoginModule`.
+spring.cloud.stream.kafka.binder.jaas.controlFlag::
+The control flag of the login module.
++
+Default: `required`.
+spring.cloud.stream.kafka.binder.jaas.options::
+Map with a key/value pair containing the login module options.
++
+Default: Empty map.
+
+The following example shows how to launch a Spring Cloud Stream application with SASL and Kerberos by using Spring Boot configuration properties:
+
+[source,bash]
+----
+ java --spring.cloud.stream.kafka.binder.brokers=secure.server:9092 \
+ --spring.cloud.stream.bindings.input.destination=stream.ticktock \
+ --spring.cloud.stream.kafka.binder.autoCreateTopics=false \
+ --spring.cloud.stream.kafka.binder.configuration.security.protocol=SASL_PLAINTEXT \
+ --spring.cloud.stream.kafka.binder.jaas.options.useKeyTab=true \
+ --spring.cloud.stream.kafka.binder.jaas.options.storeKey=true \
+ --spring.cloud.stream.kafka.binder.jaas.options.keyTab=/etc/security/keytabs/kafka_client.keytab \
+ --spring.cloud.stream.kafka.binder.jaas.options.principal=kafka-client-1@EXAMPLE.COM
+----
+
+The preceding example represents the equivalent of the following JAAS file:
+
+[source]
+----
+KafkaClient {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useKeyTab=true
+ storeKey=true
+ keyTab="/etc/security/keytabs/kafka_client.keytab"
+ principal="kafka-client-1@EXAMPLE.COM";
+};
+----
+
+If the topics required already exist on the broker or will be created by an administrator, autocreation can be turned off and only client JAAS properties need to be sent.
+
+NOTE: Do not mix JAAS configuration files and Spring Boot properties in the same application.
+If the `-Djava.security.auth.login.config` system property is already present, Spring Cloud Stream ignores the Spring Boot properties.
+
+NOTE: Be careful when using the `autoCreateTopics` and `autoAddPartitions` with Kerberos.
+Usually, applications may use principals that do not have administrative rights in Kafka and Zookeeper.
+Consequently, relying on Spring Cloud Stream to create/modify topics may fail.
+In secure environments, we strongly recommend creating topics and managing ACLs administratively by using Kafka tooling.
+
+[[pause-resume]]
+==== Example: Pausing and Resuming the Consumer
+
+If you wish to suspend consumption but not cause a partition rebalance, you can pause and resume the consumer.
+This is facilitated by adding the `Consumer` as a parameter to your `@StreamListener`.
+To resume, you need an `ApplicationListener` for `ListenerContainerIdleEvent` instances.
+The frequency at which events are published is controlled by the `idleEventInterval` property.
+Since the consumer is not thread-safe, you must call these methods on the calling thread.
+
+The following simple application shows how to pause and resume:
+
+[source, java]
+----
+@SpringBootApplication
+@EnableBinding(Sink.class)
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+
+ @StreamListener(Sink.INPUT)
+ public void in(String in, @Header(KafkaHeaders.CONSUMER) Consumer, ?> consumer) {
+ System.out.println(in);
+ consumer.pause(Collections.singleton(new TopicPartition("myTopic", 0)));
+ }
+
+ @Bean
+ public ApplicationListener idleListener() {
+ return event -> {
+ System.out.println(event);
+ if (event.getConsumer().paused().size() > 0) {
+ event.getConsumer().resume(event.getConsumer().paused());
+ }
+ };
+ }
+
+}
+----
+
+[[kafka-error-channels]]
+== Error Channels
+
+Starting with version 1.3, the binder unconditionally sends exceptions to an error channel for each consumer destination and can also be configured to send async producer send failures to an error channel.
+See <> for more information.
+
+The payload of the `ErrorMessage` for a send failure is a `KafkaSendFailureException` with properties:
+
+* `failedMessage`: The Spring Messaging `Message>` that failed to be sent.
+* `record`: The raw `ProducerRecord` that was created from the `failedMessage`
+
+There is no automatic handling of producer exceptions (such as sending to a <>).
+You can consume these exceptions with your own Spring Integration flow.
+
+[[kafka-metrics]]
+== Kafka Metrics
+
+Kafka binder module exposes the following metrics:
+
+`spring.cloud.stream.binder.kafka.offset`: This metric indicates how many messages have not been yet consumed from a given binder's topic by a given consumer group.
+The metrics provided are based on the Mircometer metrics library. The metric contains the consumer group information, topic and the actual lag in committed offset from the latest offset on the topic.
+This metric is particularly useful for providing auto-scaling feedback to a PaaS platform.
+
+[[kafka-tombstones]]
+== Tombstone Records (null record values)
+
+When using compacted topics, a record with a `null` value (also called a tombstone record) represents the deletion of a key.
+To receive such messages in a `@StreamListener` method, the parameter must be marked as not required to receive a `null` value argument.
+
+====
+[source, java]
+----
+@StreamListener(Sink.INPUT)
+public void in(@Header(KafkaHeaders.RECEIVED_MESSAGE_KEY) byte[] key,
+ @Payload(required = false) Customer customer) {
+ // customer is null if a tombstone record
+ ...
+}
+----
+====
+
+= Appendices
+[appendix]
+[[building]]
+== Building
+
+:jdkversion: 1.7
+
+=== Basic Compile and Test
+
+To build the source you will need to install JDK {jdkversion}.
+
+The build uses the Maven wrapper so you don't have to install a specific
+version of Maven. To enable the tests, you should have Kafka server 0.9 or above running
+before building. See below for more information on running the servers.
+
+The main build command is
+
+----
+$ ./mvnw clean install
+----
+
+You can also add '-DskipTests' if you like, to avoid running the tests.
+
+NOTE: You can also install Maven (>=3.3.3) yourself and run the `mvn` command
+in place of `./mvnw` in the examples below. If you do that you also
+might need to add `-P spring` if your local Maven settings do not
+contain repository declarations for spring pre-release artifacts.
+
+NOTE: Be aware that you might need to increase the amount of memory
+available to Maven by setting a `MAVEN_OPTS` environment variable with
+a value like `-Xmx512m -XX:MaxPermSize=128m`. We try to cover this in
+the `.mvn` configuration, so if you find you have to do it to make a
+build succeed, please raise a ticket to get the settings added to
+source control.
+
+
+The projects that require middleware generally include a
+`docker-compose.yml`, so consider using
+http://compose.docker.io/[Docker Compose] to run the middeware servers
+in Docker containers.
+
+=== Documentation
+
+There is a "full" profile that will generate documentation.
+
+=== Working with the code
+If you don't have an IDE preference we would recommend that you use
+http://www.springsource.com/developer/sts[Spring Tools Suite] or
+http://eclipse.org[Eclipse] when working with the code. We use the
+http://eclipse.org/m2e/[m2eclipe] eclipse plugin for maven support. Other IDEs and tools
+should also work without issue.
+
+==== Importing into eclipse with m2eclipse
+We recommend the http://eclipse.org/m2e/[m2eclipe] eclipse plugin when working with
+eclipse. If you don't already have m2eclipse installed it is available from the "eclipse
+marketplace".
+
+Unfortunately m2e does not yet support Maven 3.3, so once the projects
+are imported into Eclipse you will also need to tell m2eclipse to use
+the `.settings.xml` file for the projects. If you do not do this you
+may see many different errors related to the POMs in the
+projects. Open your Eclipse preferences, expand the Maven
+preferences, and select User Settings. In the User Settings field
+click Browse and navigate to the Spring Cloud project you imported
+selecting the `.settings.xml` file in that project. Click Apply and
+then OK to save the preference changes.
+
+NOTE: Alternatively you can copy the repository settings from https://github.com/spring-cloud/spring-cloud-build/blob/master/.settings.xml[`.settings.xml`] into your own `~/.m2/settings.xml`.
+
+==== Importing into eclipse without m2eclipse
+If you prefer not to use m2eclipse you can generate eclipse project metadata using the
+following command:
+
+[indent=0]
+----
+ $ ./mvnw eclipse:eclipse
+----
+
+The generated eclipse projects can be imported by selecting `import existing projects`
+from the `file` menu.
+[[contributing]
+== Contributing
+
+Spring Cloud is released under the non-restrictive Apache 2.0 license,
+and follows a very standard Github development process, using Github
+tracker for issues and merging pull requests into master. If you want
+to contribute even something trivial please do not hesitate, but
+follow the guidelines below.
+
+=== Sign the Contributor License Agreement
+Before we accept a non-trivial patch or pull request we will need you to sign the
+https://support.springsource.com/spring_committer_signup[contributor's agreement].
+Signing the contributor's agreement does not grant anyone commit rights to the main
+repository, but it does mean that we can accept your contributions, and you will get an
+author credit if we do. Active contributors might be asked to join the core team, and
+given the ability to merge pull requests.
+
+=== Code Conventions and Housekeeping
+None of these is essential for a pull request, but they will all help. They can also be
+added after the original pull request but before a merge.
+
+* Use the Spring Framework code format conventions. If you use Eclipse
+ you can import formatter settings using the
+ `eclipse-code-formatter.xml` file from the
+ https://github.com/spring-cloud/build/tree/master/eclipse-coding-conventions.xml[Spring
+ Cloud Build] project. If using IntelliJ, you can use the
+ http://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter
+ Plugin] to import the same file.
+* Make sure all new `.java` files to have a simple Javadoc class comment with at least an
+ `@author` tag identifying you, and preferably at least a paragraph on what the class is
+ for.
+* Add the ASF license header comment to all new `.java` files (copy from existing files
+ in the project)
+* Add yourself as an `@author` to the .java files that you modify substantially (more
+ than cosmetic changes).
+* Add some Javadocs and, if you change the namespace, some XSD doc elements.
+* A few unit tests would help a lot as well -- someone has to do it.
+* If no-one else is using your branch, please rebase it against the current master (or
+ other target branch in the main project).
+* When writing a commit message please follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions],
+ if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit
+ message (where XXXX is the issue number).
+
+// ======================================================================================
\ No newline at end of file
diff --git a/spring-cloud-stream-binder-kafka-docs/.jdk8 b/docs/.jdk8
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/.jdk8
rename to docs/.jdk8
diff --git a/docs/pom.xml b/docs/pom.xml
new file mode 100644
index 000000000..42e3c7272
--- /dev/null
+++ b/docs/pom.xml
@@ -0,0 +1,52 @@
+
+
+ 4.0.0
+ spring-cloud-stream-binder-kafka-docs
+
+ org.springframework.cloud
+ spring-cloud-stream-binder-kafka-parent
+ 2.1.0.BUILD-SNAPSHOT
+
+ pom
+ spring-cloud-stream-binder-kafka-docs
+ Spring Cloud Stream Kafka Binder Docs
+
+ spring-cloud-stream-binder-kafka
+ ${basedir}/..
+
+
+
+
+ docs
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ org.asciidoctor
+ asciidoctor-maven-plugin
+ false
+
+
+ com.agilejava.docbkx
+ docbkx-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ false
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ false
+
+
+
+
+
+
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/.gitignore b/docs/src/main/asciidoc/.gitignore
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/.gitignore
rename to docs/src/main/asciidoc/.gitignore
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/Guardfile b/docs/src/main/asciidoc/Guardfile
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/Guardfile
rename to docs/src/main/asciidoc/Guardfile
diff --git a/docs/src/main/asciidoc/README.adoc b/docs/src/main/asciidoc/README.adoc
new file mode 100644
index 000000000..b7b89c421
--- /dev/null
+++ b/docs/src/main/asciidoc/README.adoc
@@ -0,0 +1,22 @@
+:jdkversion: 1.8
+:github-tag: master
+:github-repo: spring-cloud/spring-cloud-stream-binder-kafka
+
+:github-raw: https://raw.githubusercontent.com/{github-repo}/{github-tag}
+:github-code: https://github.com/{github-repo}/tree/{github-tag}
+
+image::https://circleci.com/gh/spring-cloud/spring-cloud-stream-binder-kafka.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-cloud/spring-cloud-stream-binder-kafka"]
+image::https://codecov.io/gh/spring-cloud/spring-cloud-stream-binder-kafka/branch/{github-tag}/graph/badge.svg["codecov", link="https://codecov.io/gh/spring-cloud/spring-cloud-stream-binder-kafka"]
+image::https://badges.gitter.im/spring-cloud/spring-cloud-stream-binder-kafka.svg[Gitter, link="https://gitter.im/spring-cloud/spring-cloud-stream-binder-kafka?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
+
+// ======================================================================================
+
+//= Overview
+include::overview.adoc[]
+
+= Appendices
+[appendix]
+include::building.adoc[]
+include::contributing.adoc[]
+
+// ======================================================================================
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/appendix.adoc b/docs/src/main/asciidoc/appendix.adoc
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/appendix.adoc
rename to docs/src/main/asciidoc/appendix.adoc
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/building.adoc b/docs/src/main/asciidoc/building.adoc
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/building.adoc
rename to docs/src/main/asciidoc/building.adoc
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/contributing.adoc b/docs/src/main/asciidoc/contributing.adoc
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/contributing.adoc
rename to docs/src/main/asciidoc/contributing.adoc
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/dlq.adoc b/docs/src/main/asciidoc/dlq.adoc
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/dlq.adoc
rename to docs/src/main/asciidoc/dlq.adoc
diff --git a/docs/src/main/asciidoc/ghpages.sh b/docs/src/main/asciidoc/ghpages.sh
new file mode 100755
index 000000000..6795216e9
--- /dev/null
+++ b/docs/src/main/asciidoc/ghpages.sh
@@ -0,0 +1,330 @@
+#!/bin/bash -x
+
+set -e
+
+# Set default props like MAVEN_PATH, ROOT_FOLDER etc.
+function set_default_props() {
+ # The script should be executed from the root folder
+ ROOT_FOLDER=`pwd`
+ echo "Current folder is ${ROOT_FOLDER}"
+
+ if [[ ! -e "${ROOT_FOLDER}/.git" ]]; then
+ echo "You're not in the root folder of the project!"
+ exit 1
+ fi
+
+ # Prop that will let commit the changes
+ COMMIT_CHANGES="no"
+ MAVEN_PATH=${MAVEN_PATH:-}
+ echo "Path to Maven is [${MAVEN_PATH}]"
+ REPO_NAME=${PWD##*/}
+ echo "Repo name is [${REPO_NAME}]"
+ SPRING_CLOUD_STATIC_REPO=${SPRING_CLOUD_STATIC_REPO:-git@github.com:spring-cloud/spring-cloud-static.git}
+ echo "Spring Cloud Static repo is [${SPRING_CLOUD_STATIC_REPO}"
+}
+
+# Check if gh-pages exists and docs have been built
+function check_if_anything_to_sync() {
+ git remote set-url --push origin `git config remote.origin.url | sed -e 's/^git:/https:/'`
+
+ if ! (git remote set-branches --add origin gh-pages && git fetch -q); then
+ echo "No gh-pages, so not syncing"
+ exit 0
+ fi
+
+ if ! [ -d docs/target/generated-docs ] && ! [ "${BUILD}" == "yes" ]; then
+ echo "No gh-pages sources in docs/target/generated-docs, so not syncing"
+ exit 0
+ fi
+}
+
+function retrieve_current_branch() {
+ # Code getting the name of the current branch. For master we want to publish as we did until now
+ # http://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch
+ # If there is a branch already passed will reuse it - otherwise will try to find it
+ CURRENT_BRANCH=${BRANCH}
+ if [[ -z "${CURRENT_BRANCH}" ]] ; then
+ CURRENT_BRANCH=$(git symbolic-ref -q HEAD)
+ CURRENT_BRANCH=${CURRENT_BRANCH##refs/heads/}
+ CURRENT_BRANCH=${CURRENT_BRANCH:-HEAD}
+ fi
+ echo "Current branch is [${CURRENT_BRANCH}]"
+ git checkout ${CURRENT_BRANCH} || echo "Failed to check the branch... continuing with the script"
+}
+
+# Switches to the provided value of the release version. We always prefix it with `v`
+function switch_to_tag() {
+ git checkout v${VERSION}
+}
+
+# Build the docs if switch is on
+function build_docs_if_applicable() {
+ if [[ "${BUILD}" == "yes" ]] ; then
+ ./mvnw clean install -P docs -pl docs -DskipTests
+ fi
+}
+
+# Get the name of the `docs.main` property
+# Get whitelisted branches - assumes that a `docs` module is available under `docs` profile
+function retrieve_doc_properties() {
+ MAIN_ADOC_VALUE=$("${MAVEN_PATH}"mvn -q \
+ -Dexec.executable="echo" \
+ -Dexec.args='${docs.main}' \
+ --non-recursive \
+ org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
+ echo "Extracted 'main.adoc' from Maven build [${MAIN_ADOC_VALUE}]"
+
+
+ WHITELIST_PROPERTY=${WHITELIST_PROPERTY:-"docs.whitelisted.branches"}
+ WHITELISTED_BRANCHES_VALUE=$("${MAVEN_PATH}"mvn -q \
+ -Dexec.executable="echo" \
+ -Dexec.args="\${${WHITELIST_PROPERTY}}" \
+ org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \
+ -P docs \
+ -pl docs)
+ echo "Extracted '${WHITELIST_PROPERTY}' from Maven build [${WHITELISTED_BRANCHES_VALUE}]"
+}
+
+# Stash any outstanding changes
+function stash_changes() {
+ git diff-index --quiet HEAD && dirty=$? || (echo "Failed to check if the current repo is dirty. Assuming that it is." && dirty="1")
+ if [ "$dirty" != "0" ]; then git stash; fi
+}
+
+# Switch to gh-pages branch to sync it with current branch
+function add_docs_from_target() {
+ local DESTINATION_REPO_FOLDER
+ if [[ -z "${DESTINATION}" && -z "${CLONE}" ]] ; then
+ DESTINATION_REPO_FOLDER=${ROOT_FOLDER}
+ elif [[ "${CLONE}" == "yes" ]]; then
+ mkdir -p ${ROOT_FOLDER}/target
+ local clonedStatic=${ROOT_FOLDER}/target/spring-cloud-static
+ if [[ ! -e "${clonedStatic}/.git" ]]; then
+ echo "Cloning Spring Cloud Static to target"
+ git clone ${SPRING_CLOUD_STATIC_REPO} ${clonedStatic} && git checkout gh-pages
+ else
+ echo "Spring Cloud Static already cloned - will pull changes"
+ cd ${clonedStatic} && git checkout gh-pages && git pull origin gh-pages
+ fi
+ DESTINATION_REPO_FOLDER=${clonedStatic}/${REPO_NAME}
+ mkdir -p ${DESTINATION_REPO_FOLDER}
+ else
+ if [[ ! -e "${DESTINATION}/.git" ]]; then
+ echo "[${DESTINATION}] is not a git repository"
+ exit 1
+ fi
+ DESTINATION_REPO_FOLDER=${DESTINATION}/${REPO_NAME}
+ mkdir -p ${DESTINATION_REPO_FOLDER}
+ echo "Destination was provided [${DESTINATION}]"
+ fi
+ cd ${DESTINATION_REPO_FOLDER}
+ git checkout gh-pages
+ git pull origin gh-pages
+
+ # Add git branches
+ ###################################################################
+ if [[ -z "${VERSION}" ]] ; then
+ copy_docs_for_current_version
+ else
+ copy_docs_for_provided_version
+ fi
+ commit_changes_if_applicable
+}
+
+
+# Copies the docs by using the retrieved properties from Maven build
+function copy_docs_for_current_version() {
+ if [[ "${CURRENT_BRANCH}" == "master" ]] ; then
+ echo -e "Current branch is master - will copy the current docs only to the root folder"
+ for f in docs/target/generated-docs/*; do
+ file=${f#docs/target/generated-docs/*}
+ if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then
+ # Not ignored...
+ cp -rf $f ${ROOT_FOLDER}/
+ git add -A ${ROOT_FOLDER}/$file
+ fi
+ done
+ COMMIT_CHANGES="yes"
+ else
+ echo -e "Current branch is [${CURRENT_BRANCH}]"
+ # http://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin
+ if [[ ",${WHITELISTED_BRANCHES_VALUE}," = *",${CURRENT_BRANCH},"* ]] ; then
+ mkdir -p ${ROOT_FOLDER}/${CURRENT_BRANCH}
+ echo -e "Branch [${CURRENT_BRANCH}] is whitelisted! Will copy the current docs to the [${CURRENT_BRANCH}] folder"
+ for f in docs/target/generated-docs/*; do
+ file=${f#docs/target/generated-docs/*}
+ if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then
+ # Not ignored...
+ # We want users to access 2.0.0.BUILD-SNAPSHOT/ instead of 1.0.0.RELEASE/spring-cloud.sleuth.html
+ if [[ "${file}" == "${MAIN_ADOC_VALUE}.html" ]] ; then
+ # We don't want to copy the spring-cloud-sleuth.html
+ # we want it to be converted to index.html
+ cp -rf $f ${ROOT_FOLDER}/${CURRENT_BRANCH}/index.html
+ git add -A ${ROOT_FOLDER}/${CURRENT_BRANCH}/index.html
+ else
+ cp -rf $f ${ROOT_FOLDER}/${CURRENT_BRANCH}
+ git add -A ${ROOT_FOLDER}/${CURRENT_BRANCH}/$file
+ fi
+ fi
+ done
+ COMMIT_CHANGES="yes"
+ else
+ echo -e "Branch [${CURRENT_BRANCH}] is not on the white list! Check out the Maven [${WHITELIST_PROPERTY}] property in
+ [docs] module available under [docs] profile. Won't commit any changes to gh-pages for this branch."
+ fi
+ fi
+}
+
+# Copies the docs by using the explicitly provided version
+function copy_docs_for_provided_version() {
+ local FOLDER=${DESTINATION_REPO_FOLDER}/${VERSION}
+ mkdir -p ${FOLDER}
+ echo -e "Current tag is [v${VERSION}] Will copy the current docs to the [${FOLDER}] folder"
+ for f in ${ROOT_FOLDER}/docs/target/generated-docs/*; do
+ file=${f#${ROOT_FOLDER}/docs/target/generated-docs/*}
+ copy_docs_for_branch ${file} ${FOLDER}
+ done
+ COMMIT_CHANGES="yes"
+ CURRENT_BRANCH="v${VERSION}"
+}
+
+# Copies the docs from target to the provided destination
+# Params:
+# $1 - file from target
+# $2 - destination to which copy the files
+function copy_docs_for_branch() {
+ local file=$1
+ local destination=$2
+ if ! git ls-files -i -o --exclude-standard --directory | grep -q ^${file}$; then
+ # Not ignored...
+ # We want users to access 2.0.0.BUILD-SNAPSHOT/ instead of 1.0.0.RELEASE/spring-cloud.sleuth.html
+ if [[ ("${file}" == "${MAIN_ADOC_VALUE}.html") || ("${file}" == "${REPO_NAME}.html") ]] ; then
+ # We don't want to copy the spring-cloud-sleuth.html
+ # we want it to be converted to index.html
+ cp -rf $f ${destination}/index.html
+ git add -A ${destination}/index.html
+ else
+ cp -rf $f ${destination}
+ git add -A ${destination}/$file
+ fi
+ fi
+}
+
+function commit_changes_if_applicable() {
+ if [[ "${COMMIT_CHANGES}" == "yes" ]] ; then
+ COMMIT_SUCCESSFUL="no"
+ git commit -a -m "Sync docs from ${CURRENT_BRANCH} to gh-pages" && COMMIT_SUCCESSFUL="yes" || echo "Failed to commit changes"
+
+ # Uncomment the following push if you want to auto push to
+ # the gh-pages branch whenever you commit to master locally.
+ # This is a little extreme. Use with care!
+ ###################################################################
+ if [[ "${COMMIT_SUCCESSFUL}" == "yes" ]] ; then
+ git push origin gh-pages
+ fi
+ fi
+}
+
+# Switch back to the previous branch and exit block
+function checkout_previous_branch() {
+ # If -version was provided we need to come back to root project
+ cd ${ROOT_FOLDER}
+ git checkout ${CURRENT_BRANCH} || echo "Failed to check the branch... continuing with the script"
+ if [ "$dirty" != "0" ]; then git stash pop; fi
+ exit 0
+}
+
+# Assert if properties have been properly passed
+function assert_properties() {
+echo "VERSION [${VERSION}], DESTINATION [${DESTINATION}], CLONE [${CLONE}]"
+if [[ "${VERSION}" != "" && (-z "${DESTINATION}" && -z "${CLONE}") ]] ; then echo "Version was set but destination / clone was not!"; exit 1;fi
+if [[ ("${DESTINATION}" != "" && "${CLONE}" != "") && -z "${VERSION}" ]] ; then echo "Destination / clone was set but version was not!"; exit 1;fi
+if [[ "${DESTINATION}" != "" && "${CLONE}" == "yes" ]] ; then echo "Destination and clone was set. Pick one!"; exit 1;fi
+}
+
+# Prints the usage
+function print_usage() {
+cat </`
+- if the destination switch is passed (-d) then the script will check if the provided dir is a git repo and then will
+ switch to gh-pages of that repo and copy the generated docs to `docs//`
+
+USAGE:
+
+You can use the following options:
+
+-v|--version - the script will apply the whole procedure for a particular library version
+-d|--destination - the root of destination folder where the docs should be copied. You have to use the full path.
+ E.g. point to spring-cloud-static folder. Can't be used with (-c)
+-b|--build - will run the standard build process after checking out the branch
+-c|--clone - will automatically clone the spring-cloud-static repo instead of providing the destination.
+ Obviously can't be used with (-d)
+
+EOF
+}
+
+
+# ==========================================
+# ____ ____ _____ _____ _____ _______
+# / ____|/ ____| __ \|_ _| __ \__ __|
+# | (___ | | | |__) | | | | |__) | | |
+# \___ \| | | _ / | | | ___/ | |
+# ____) | |____| | \ \ _| |_| | | |
+# |_____/ \_____|_| \_\_____|_| |_|
+#
+# ==========================================
+
+while [[ $# > 0 ]]
+do
+key="$1"
+case ${key} in
+ -v|--version)
+ VERSION="$2"
+ shift # past argument
+ ;;
+ -d|--destination)
+ DESTINATION="$2"
+ shift # past argument
+ ;;
+ -b|--build)
+ BUILD="yes"
+ ;;
+ -c|--clone)
+ CLONE="yes"
+ ;;
+ -h|--help)
+ print_usage
+ exit 0
+ ;;
+ *)
+ echo "Invalid option: [$1]"
+ print_usage
+ exit 1
+ ;;
+esac
+shift # past argument or value
+done
+
+assert_properties
+set_default_props
+check_if_anything_to_sync
+if [[ -z "${VERSION}" ]] ; then
+ retrieve_current_branch
+else
+ switch_to_tag
+fi
+build_docs_if_applicable
+retrieve_doc_properties
+stash_changes
+add_docs_from_target
+checkout_previous_branch
\ No newline at end of file
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/images/kafka-binder.png b/docs/src/main/asciidoc/images/kafka-binder.png
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/images/kafka-binder.png
rename to docs/src/main/asciidoc/images/kafka-binder.png
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/images/kafka-streams-initializr.png b/docs/src/main/asciidoc/images/kafka-streams-initializr.png
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/images/kafka-streams-initializr.png
rename to docs/src/main/asciidoc/images/kafka-streams-initializr.png
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/index-docinfo.xml b/docs/src/main/asciidoc/index-docinfo.xml
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/index-docinfo.xml
rename to docs/src/main/asciidoc/index-docinfo.xml
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/kafka-streams.adoc b/docs/src/main/asciidoc/kafka-streams.adoc
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/kafka-streams.adoc
rename to docs/src/main/asciidoc/kafka-streams.adoc
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/overview.adoc b/docs/src/main/asciidoc/overview.adoc
similarity index 99%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/overview.adoc
rename to docs/src/main/asciidoc/overview.adoc
index d166c8931..3e3342fe3 100644
--- a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/overview.adoc
+++ b/docs/src/main/asciidoc/overview.adoc
@@ -32,7 +32,7 @@ Alternatively, you can also use the Spring Cloud Stream Kafka Starter, as shown
The following image shows a simplified diagram of how the Apache Kafka binder operates:
.Kafka Binder
-image::images/kafka-binder.png[width=300,scaledwidth="50%"]
+image::{github-raw}/docs/src/main/asciidoc/images/kafka-binder.png[width=300,scaledwidth="50%"]
The Apache Kafka Binder implementation maps each destination to an Apache Kafka topic.
The consumer group maps directly to the same Apache Kafka concept.
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/partitions.adoc b/docs/src/main/asciidoc/partitions.adoc
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/partitions.adoc
rename to docs/src/main/asciidoc/partitions.adoc
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/spring-cloud-stream-binder-kafka-aggregate.adoc b/docs/src/main/asciidoc/spring-cloud-stream-binder-kafka-aggregate.adoc
similarity index 100%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/spring-cloud-stream-binder-kafka-aggregate.adoc
rename to docs/src/main/asciidoc/spring-cloud-stream-binder-kafka-aggregate.adoc
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/index.adoc b/docs/src/main/asciidoc/spring-cloud-stream-binder-kafka.adoc
similarity index 84%
rename from spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/index.adoc
rename to docs/src/main/asciidoc/spring-cloud-stream-binder-kafka.adoc
index ca28384a6..0826663f4 100644
--- a/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/index.adoc
+++ b/docs/src/main/asciidoc/spring-cloud-stream-binder-kafka.adoc
@@ -1,3 +1,13 @@
+:github-tag: master
+:github-repo: spring-cloud/spring-cloud-stream-binder-kafka
+:github-raw: https://raw.githubusercontent.com/{github-repo}/{github-tag}
+:github-code: https://github.com/{github-repo}/tree/{github-tag}
+:toc: left
+:toclevels: 8
+:nofooter:
+:sectlinks: true
+
+
[[spring-cloud-stream-binder-kafka-reference]]
= Spring Cloud Stream Kafka Binder Reference Guide
Sabby Anandan, Marius Bogoevici, Eric Bottard, Mark Fisher, Ilayaperumal Gopinathan, Gunnar Hillert, Mark Pollack, Patrick Peralta, Glenn Renfro, Thomas Risberg, Dave Syer, David Turanski, Janne Valkealahti, Benjamin Klein, Henryk Konsek, Gary Russell
diff --git a/docs/src/main/ruby/generate_readme.sh b/docs/src/main/ruby/generate_readme.sh
new file mode 100755
index 000000000..6d0ce9dc5
--- /dev/null
+++ b/docs/src/main/ruby/generate_readme.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env ruby
+
+base_dir = File.join(File.dirname(__FILE__),'../../..')
+src_dir = File.join(base_dir, "/src/main/asciidoc")
+require 'asciidoctor'
+require 'optparse'
+
+options = {}
+file = "#{src_dir}/README.adoc"
+
+OptionParser.new do |o|
+ o.on('-o OUTPUT_FILE', 'Output file (default is stdout)') { |file| options[:to_file] = file unless file=='-' }
+ o.on('-h', '--help') { puts o; exit }
+ o.parse!
+end
+
+file = ARGV[0] if ARGV.length>0
+
+# Copied from https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/scripts/asciidoc-coalescer.rb
+doc = Asciidoctor.load_file file, safe: :unsafe, header_only: true, attributes: options[:attributes]
+header_attr_names = (doc.instance_variable_get :@attributes_modified).to_a
+header_attr_names.each {|k| doc.attributes[%(#{k}!)] = '' unless doc.attr? k }
+attrs = doc.attributes
+attrs['allow-uri-read'] = true
+puts attrs
+
+out = "// Do not edit this file (e.g. go instead to src/main/asciidoc)\n\n"
+doc = Asciidoctor.load_file file, safe: :unsafe, parse: false, attributes: attrs
+out << doc.reader.read
+
+unless options[:to_file]
+ puts out
+else
+ File.open(options[:to_file],'w+') do |file|
+ file.write(out)
+ end
+end
diff --git a/pom.xml b/pom.xml
index a8d6060fb..4d307ab15 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,9 +20,9 @@
spring-cloud-stream-binder-kafkaspring-cloud-starter-stream-kafka
- spring-cloud-stream-binder-kafka-docsspring-cloud-stream-binder-kafka-corespring-cloud-stream-binder-kafka-streams
+ docs
diff --git a/spring-cloud-stream-binder-kafka-docs/pom.xml b/spring-cloud-stream-binder-kafka-docs/pom.xml
deleted file mode 100644
index 07cbdc10d..000000000
--- a/spring-cloud-stream-binder-kafka-docs/pom.xml
+++ /dev/null
@@ -1,337 +0,0 @@
-
-
- 4.0.0
-
-
- org.springframework.cloud
- spring-cloud-stream-binder-kafka-parent
- 2.1.0.BUILD-SNAPSHOT
-
-
- spring-cloud-stream-binder-kafka-docs
- spring-cloud-stream-binder-kafka-docs
- Spring Cloud Stream Kafka Binder Docs
-
- ${basedir}/..
-
-
-
- org.springframework.cloud
- spring-cloud-stream-binder-kafka
- ${project.version}
-
-
-
-
- full
-
-
-
- org.codehaus.mojo
- xml-maven-plugin
- 1.0
-
-
-
- transform
-
-
-
-
-
-
- ${project.build.directory}/external-resources
- src/main/xslt/dependencyVersions.xsl
-
-
- .adoc
-
-
- ${project.build.directory}/generated-resources
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
-
-
- attach-javadocs
-
- jar
-
- prepare-package
-
- true
-
- ${project.groupId}:*
-
- false
- true
- ${basedir}/src/main/javadoc/spring-javadoc.css
-
- http://docs.spring.io/spring-framework/docs/${spring.version}/javadoc-api/
- http://docs.spring.io/spring-shell/docs/current/api/
-
-
-
-
-
-
- org.asciidoctor
- asciidoctor-maven-plugin
- 1.5.0
-
-
- generate-docbook
- generate-resources
-
- process-asciidoc
-
-
- index.adoc
- docbook5
- book
-
- true
- ${project.version}
- ${project.version}
- ${github-tag}
-
-
-
-
-
-
- com.agilejava.docbkx
- docbkx-maven-plugin
- 2.0.15
-
- ${basedir}/target/generated-docs
- index.xml
- true
- false
- ${basedir}/src/main/docbook/xsl/pdf.xsl
- 1
- 1
- ${basedir}/src/main/docbook/xsl/xslthl-config.xml
-
-
-
- net.sf.xslthl
- xslthl
- 2.1.0
-
-
- net.sf.docbook
- docbook-xml
- 5.0-all
- resources
- zip
- runtime
-
-
-
-
- html-single
-
- generate-html
-
- generate-resources
-
- ${basedir}/src/main/docbook/xsl/html-singlepage.xsl
- ${basedir}/target/docbook/htmlsingle
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- html
-
- generate-html
-
- generate-resources
-
- ${basedir}/src/main/docbook/xsl/html-multipage.xsl
- ${basedir}/target/docbook/html
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- pdf
-
- generate-pdf
-
- generate-resources
-
- ${basedir}/src/main/docbook/xsl/pdf.xsl
- ${basedir}/target/docbook/pdf
-
-
-
-
-
-
-
-
-
-
-
- epub
-
- generate-epub3
-
- generate-resources
-
- ${basedir}/src/main/docbook/xsl/epub.xsl
- ${basedir}/target/docbook/epub
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
-
-
- ant-contrib
- ant-contrib
- 1.0b3
-
-
- ant
- ant
-
-
-
-
- org.apache.ant
- ant-nodeps
- 1.8.1
-
-
- org.tigris.antelope
- antelopetasks
- 3.2.10
-
-
-
-
- package-and-attach-docs-zip
- package
-
- run
-
-
-
-
-
-
-
-
-
-
-
- setup-maven-properties
- validate
-
- run
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
-
-
- attach-zip
-
- attach-artifact
-
-
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}.zip
- zip;zip.type=docs;zip.deployed=false
-
-
-
-
-
-
-
-
-
-
-
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/highlight.css b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/highlight.css
deleted file mode 100644
index ffefef72d..000000000
--- a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/highlight.css
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- code highlight CSS resemblign the Eclipse IDE default color schema
- @author Costin Leau
-*/
-
-.hl-keyword {
- color: #7F0055;
- font-weight: bold;
-}
-
-.hl-comment {
- color: #3F5F5F;
- font-style: italic;
-}
-
-.hl-multiline-comment {
- color: #3F5FBF;
- font-style: italic;
-}
-
-.hl-tag {
- color: #3F7F7F;
-}
-
-.hl-attribute {
- color: #7F007F;
-}
-
-.hl-value {
- color: #2A00FF;
-}
-
-.hl-string {
- color: #2A00FF;
-}
\ No newline at end of file
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/manual-multipage.css b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/manual-multipage.css
deleted file mode 100644
index 0c484531c..000000000
--- a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/manual-multipage.css
+++ /dev/null
@@ -1,9 +0,0 @@
-@IMPORT url("manual.css");
-
-body.firstpage {
- background: url("../images/background.png") no-repeat center top;
-}
-
-div.part h1 {
- border-top: none;
-}
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/manual-singlepage.css b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/manual-singlepage.css
deleted file mode 100644
index 4a7fd1400..000000000
--- a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/manual-singlepage.css
+++ /dev/null
@@ -1,6 +0,0 @@
-@IMPORT url("manual.css");
-
-body {
- background: url("../images/background.png") no-repeat center top;
-}
-
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/manual.css b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/manual.css
deleted file mode 100644
index 0ecbe2e88..000000000
--- a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/css/manual.css
+++ /dev/null
@@ -1,344 +0,0 @@
-@IMPORT url("highlight.css");
-
-html {
- padding: 0pt;
- margin: 0pt;
-}
-
-body {
- color: #333333;
- margin: 15px 30px;
- font-family: Helvetica, Arial, Freesans, Clean, Sans-serif;
- line-height: 1.6;
- -webkit-font-smoothing: antialiased;
-}
-
-code {
- font-size: 16px;
- font-family: Consolas, "Liberation Mono", Courier, monospace;
-}
-
-:not(a)>code {
- color: #6D180B;
-}
-
-:not(pre)>code {
- background-color: #F2F2F2;
- border: 1px solid #CCCCCC;
- border-radius: 4px;
- padding: 1px 3px 0;
- text-shadow: none;
- white-space: nowrap;
-}
-
-body>*:first-child {
- margin-top: 0 !important;
-}
-
-div {
- margin: 0pt;
-}
-
-hr {
- border: 1px solid #CCCCCC;
- background: #CCCCCC;
-}
-
-h1,h2,h3,h4,h5,h6 {
- color: #000000;
- cursor: text;
- font-weight: bold;
- margin: 30px 0 10px;
- padding: 0;
-}
-
-h1,h2,h3 {
- margin: 40px 0 10px;
-}
-
-h1 {
- margin: 70px 0 30px;
- padding-top: 20px;
-}
-
-div.part h1 {
- border-top: 1px dotted #CCCCCC;
-}
-
-h1,h1 code {
- font-size: 32px;
-}
-
-h2,h2 code {
- font-size: 24px;
-}
-
-h3,h3 code {
- font-size: 20px;
-}
-
-h4,h1 code,h5,h5 code,h6,h6 code {
- font-size: 18px;
-}
-
-div.book,div.chapter,div.appendix,div.part,div.preface {
- min-width: 300px;
- max-width: 1200px;
- margin: 0 auto;
-}
-
-p.releaseinfo {
- font-weight: bold;
- margin-bottom: 40px;
- margin-top: 40px;
-}
-
-div.authorgroup {
- line-height: 1;
-}
-
-p.copyright {
- line-height: 1;
- margin-bottom: -5px;
-}
-
-.legalnotice p {
- font-style: italic;
- font-size: 14px;
- line-height: 1;
-}
-
-div.titlepage+p,div.titlepage+p {
- margin-top: 0;
-}
-
-pre {
- line-height: 1.0;
- color: black;
-}
-
-a {
- color: #4183C4;
- text-decoration: none;
-}
-
-p {
- margin: 15px 0;
- text-align: left;
-}
-
-ul,ol {
- padding-left: 30px;
-}
-
-li p {
- margin: 0;
-}
-
-div.table {
- margin: 1em;
- padding: 0.5em;
- text-align: center;
-}
-
-div.table table,div.informaltable table {
- display: table;
- width: 100%;
-}
-
-div.table td {
- padding-left: 7px;
- padding-right: 7px;
-}
-
-.sidebar {
- line-height: 1.4;
- padding: 0 20px;
- background-color: #F8F8F8;
- border: 1px solid #CCCCCC;
- border-radius: 3px 3px 3px 3px;
-}
-
-.sidebar p.title {
- color: #6D180B;
-}
-
-pre.programlisting,pre.screen {
- font-size: 15px;
- padding: 6px 10px;
- background-color: #F8F8F8;
- border: 1px solid #CCCCCC;
- border-radius: 3px 3px 3px 3px;
- clear: both;
- overflow: auto;
- line-height: 1.4;
- font-family: Consolas, "Liberation Mono", Courier, monospace;
-}
-
-table {
- border-collapse: collapse;
- border-spacing: 0;
- border: 1px solid #DDDDDD !important;
- border-radius: 4px !important;
- border-collapse: separate !important;
- line-height: 1.6;
-}
-
-table thead {
- background: #F5F5F5;
-}
-
-table tr {
- border: none;
- border-bottom: none;
-}
-
-table th {
- font-weight: bold;
-}
-
-table th,table td {
- border: none !important;
- padding: 6px 13px;
-}
-
-table tr:nth-child(2n) {
- background-color: #F8F8F8;
-}
-
-td p {
- margin: 0 0 15px 0;
-}
-
-div.table-contents td p {
- margin: 0;
-}
-
-div.important *,div.note *,div.tip *,div.warning *,div.navheader *,div.navfooter *,div.calloutlist *
- {
- border: none !important;
- background: none !important;
- margin: 0;
-}
-
-div.important p,div.note p,div.tip p,div.warning p {
- color: #6F6F6F;
- line-height: 1.6;
-}
-
-div.important code,div.note code,div.tip code,div.warning code {
- background-color: #F2F2F2 !important;
- border: 1px solid #CCCCCC !important;
- border-radius: 4px !important;
- padding: 1px 3px 0 !important;
- text-shadow: none !important;
- white-space: nowrap !important;
-}
-
-.note th,.tip th,.warning th {
- display: none;
-}
-
-.note tr:first-child td,.tip tr:first-child td,.warning tr:first-child td
- {
- border-right: 1px solid #CCCCCC !important;
- padding-top: 10px;
-}
-
-div.calloutlist p,div.calloutlist td {
- padding: 0;
- margin: 0;
-}
-
-div.calloutlist>table>tbody>tr>td:first-child {
- padding-left: 10px;
- width: 30px !important;
-}
-
-div.important,div.note,div.tip,div.warning {
- margin-left: 0px !important;
- margin-right: 20px !important;
- margin-top: 20px;
- margin-bottom: 20px;
- padding-top: 10px;
- padding-bottom: 10px;
-}
-
-div.toc {
- line-height: 1.2;
-}
-
-dl,dt {
- margin-top: 1px;
- margin-bottom: 0;
-}
-
-div.toc>dl>dt {
- font-size: 32px;
- font-weight: bold;
- margin: 30px 0 10px 0;
- display: block;
-}
-
-div.toc>dl>dd>dl>dt {
- font-size: 24px;
- font-weight: bold;
- margin: 20px 0 10px 0;
- display: block;
-}
-
-div.toc>dl>dd>dl>dd>dl>dt {
- font-weight: bold;
- font-size: 20px;
- margin: 10px 0 0 0;
-}
-
-tbody.footnotes * {
- border: none !important;
-}
-
-div.footnote p {
- margin: 0;
- line-height: 1;
-}
-
-div.footnote p sup {
- margin-right: 6px;
- vertical-align: middle;
-}
-
-div.navheader {
- border-bottom: 1px solid #CCCCCC;
-}
-
-div.navfooter {
- border-top: 1px solid #CCCCCC;
-}
-
-.title {
- margin-left: -1em;
- padding-left: 1em;
-}
-
-.title>a {
- position: absolute;
- visibility: hidden;
- display: block;
- font-size: 0.85em;
- margin-top: 0.05em;
- margin-left: -1em;
- vertical-align: text-top;
- color: black;
-}
-
-.title>a:before {
- content: "\00A7";
-}
-
-.title:hover>a,.title>a:hover,.title:hover>a:hover {
- visibility: visible;
-}
-
-.title:focus>a,.title>a:focus,.title:focus>a:focus {
- outline: 0;
-}
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/background.png b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/background.png
deleted file mode 100644
index d4195e5b3..000000000
Binary files a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/background.png and /dev/null differ
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/caution.png b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/caution.png
deleted file mode 100644
index 8a5e4fca0..000000000
Binary files a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/caution.png and /dev/null differ
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/important.png b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/important.png
deleted file mode 100644
index ec54df65c..000000000
Binary files a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/important.png and /dev/null differ
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/logo.png b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/logo.png
deleted file mode 100644
index 45f1978f3..000000000
Binary files a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/logo.png and /dev/null differ
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/note.png b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/note.png
deleted file mode 100644
index 88d997b17..000000000
Binary files a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/note.png and /dev/null differ
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/tip.png b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/tip.png
deleted file mode 100644
index 6530abb4b..000000000
Binary files a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/tip.png and /dev/null differ
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/warning.png b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/warning.png
deleted file mode 100644
index 0d5b52446..000000000
Binary files a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/images/warning.png and /dev/null differ
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/common.xsl b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/common.xsl
deleted file mode 100644
index 157bf9d85..000000000
--- a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/common.xsl
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
- 1
- 0
- 1
-
-
-
- images/
- .png
-
-
- book toc,title
- 3
-
-
-
-
-
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/epub.xsl b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/epub.xsl
deleted file mode 100644
index 031406ca4..000000000
--- a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/epub.xsl
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/html-multipage.xsl b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/html-multipage.xsl
deleted file mode 100644
index be9cc52de..000000000
--- a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/html-multipage.xsl
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
- css/manual-multipage.css
-
- '5'
- '1'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- firstpage
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/html-singlepage.xsl b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/html-singlepage.xsl
deleted file mode 100644
index 6bd4ac819..000000000
--- a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/html-singlepage.xsl
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
- css/manual-singlepage.css
-
-
diff --git a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/html.xsl b/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/html.xsl
deleted file mode 100644
index fd96f9a70..000000000
--- a/spring-cloud-stream-binder-kafka-docs/src/main/docbook/xsl/html.xsl
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- 1
-
-
- 1
-
-
-
- 120
- images/callouts/
- .png
-
-
- text/css
-
- text-align: left
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ,
-
-
-
-
-
-
-
-