├── spring-cloud-dataflow-server-mesos-docs ├── src │ └── main │ │ ├── asciidoc │ │ ├── .gitignore │ │ ├── images │ │ │ └── placeholder.txt │ │ ├── appendix.adoc │ │ ├── introduction.adoc │ │ ├── Guardfile │ │ ├── index-docinfo.xml │ │ ├── configuration.adoc │ │ ├── index.adoc │ │ ├── appendix-test-cluster.adoc │ │ ├── overview.adoc │ │ └── getting-started.adoc │ │ ├── docbook │ │ ├── css │ │ │ ├── manual-singlepage.css │ │ │ ├── manual-multipage.css │ │ │ ├── highlight.css │ │ │ └── manual.css │ │ ├── images │ │ │ ├── logo.png │ │ │ ├── note.png │ │ │ ├── tip.png │ │ │ ├── caution.png │ │ │ ├── cover.png │ │ │ ├── warning.png │ │ │ ├── important.png │ │ │ ├── background.png │ │ │ └── logo.svg │ │ └── xsl │ │ │ ├── xslthl │ │ │ ├── json-hl.xml │ │ │ ├── asciidoc-hl.xml │ │ │ ├── yaml-hl.xml │ │ │ ├── properties-hl.xml │ │ │ ├── ini-hl.xml │ │ │ ├── bourne-hl.xml │ │ │ ├── python-hl.xml │ │ │ ├── ruby-hl.xml │ │ │ ├── java-hl.xml │ │ │ ├── c-hl.xml │ │ │ ├── perl-hl.xml │ │ │ ├── html-hl.xml │ │ │ ├── javascript-hl.xml │ │ │ ├── cpp-hl.xml │ │ │ ├── php-hl.xml │ │ │ ├── csharp-hl.xml │ │ │ └── css-hl.xml │ │ │ ├── html-singlepage.xsl │ │ │ ├── epub.xsl │ │ │ ├── xslthl-config.xml │ │ │ ├── common.xsl │ │ │ ├── html-multipage.xsl │ │ │ └── html.xsl │ │ └── javadoc │ │ └── spring-javadoc.css └── pom.xml ├── .mvn ├── jvm.config ├── maven.config └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── src ├── eclipse │ └── eclipse.importorder ├── etc │ └── marathon │ │ ├── redis.json │ │ ├── rabbitmq.json │ │ ├── mysql.json │ │ └── scdf-server.json └── checkstyle │ ├── checkstyle-header.txt │ └── checkstyle.xml ├── spring-cloud-dataflow-server-mesos-autoconfig ├── src │ └── main │ │ ├── resources │ │ └── META-INF │ │ │ └── spring.factories │ │ └── java │ │ └── org │ │ └── springframework │ │ └── cloud │ │ └── dataflow │ │ └── autoconfigure │ │ └── mesos │ │ └── MesosDataFlowServerAutoConfiguration.java └── pom.xml ├── .travis.yml ├── .gitignore ├── NOTICE ├── spring-cloud-dataflow-server-mesos ├── src │ ├── main │ │ ├── docker │ │ │ └── assembly.xml │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── dataflow │ │ │ │ └── server │ │ │ │ └── mesos │ │ │ │ └── MesosDataFlowServer.java │ │ └── resources │ │ │ └── dataflow-server.yml │ └── test │ │ └── java │ │ └── org │ │ └── springframework │ │ └── cloud │ │ └── dataflow │ │ └── server │ │ └── mesos │ │ ├── ContextLoadsTests.java │ │ └── TestUtils.java └── pom.xml ├── README.adoc ├── .settings.xml ├── pom.xml ├── mvnw.cmd ├── mvnw └── LICENSE /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | *.css 3 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/images/placeholder.txt: -------------------------------------------------------------------------------- 1 | Placeholder -------------------------------------------------------------------------------- /.mvn/jvm.config: -------------------------------------------------------------------------------- 1 | -Xmx1024m -XX:CICompilerCount=1 -XX:TieredStopAtLevel=1 -Djava.security.egd=file:/dev/./urandom -------------------------------------------------------------------------------- /.mvn/maven.config: -------------------------------------------------------------------------------- 1 | -DaltSnapshotDeploymentRepository=repo.spring.io::default::https://repo.spring.io/libs-snapshot-local -P spring 2 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-dataflow-server-mesos/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip -------------------------------------------------------------------------------- /src/eclipse/eclipse.importorder: -------------------------------------------------------------------------------- 1 | #Organize Import Order 2 | #Wed Apr 26 12:53:22 EDT 2017 3 | 4=\# 4 | 3=org.springframework 5 | 2= 6 | 1=javax 7 | 0=java 8 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/css/manual-singlepage.css: -------------------------------------------------------------------------------- 1 | @IMPORT url("manual.css"); 2 | 3 | body { 4 | background: url("../images/background.png") no-repeat center top; 5 | } 6 | 7 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-dataflow-server-mesos/HEAD/spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/logo.png -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-dataflow-server-mesos/HEAD/spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/note.png -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-dataflow-server-mesos/HEAD/spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/tip.png -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-dataflow-server-mesos/HEAD/spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/caution.png -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-dataflow-server-mesos/HEAD/spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/cover.png -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-dataflow-server-mesos/HEAD/spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/warning.png -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/important.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-dataflow-server-mesos/HEAD/spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/important.png -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-dataflow-server-mesos/HEAD/spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/background.png -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-autoconfig/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.springframework.cloud.dataflow.autoconfigure.mesos.MesosDataFlowServerAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/css/manual-multipage.css: -------------------------------------------------------------------------------- 1 | @IMPORT url("manual.css"); 2 | 3 | body.firstpage { 4 | background: url("../images/background.png") no-repeat center top; 5 | } 6 | 7 | div.part h1 { 8 | border-top: none; 9 | } 10 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/appendix.adoc: -------------------------------------------------------------------------------- 1 | [[appendix]] 2 | = Appendices 3 | 4 | include::{dataflow-asciidoc}/appendix-migration-guide.adoc[] 5 | include::appendix-test-cluster.adoc[] 6 | include::{dataflow-asciidoc}/appendix-building.adoc[] 7 | include::{dataflow-asciidoc}/appendix-contributing.adoc[] 8 | -------------------------------------------------------------------------------- /src/etc/marathon/redis.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "/redis", 3 | "cpus": 0.5, 4 | "mem": 64.0, 5 | "instances": 1, 6 | "container": { 7 | "type": "DOCKER", 8 | "docker": { 9 | "image": "redis", 10 | "network": "BRIDGE", 11 | "portMappings": [ 12 | { "containerPort": 6379 } 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/introduction.adoc: -------------------------------------------------------------------------------- 1 | [[introduction]] 2 | = Introduction 3 | 4 | [[dataflow-mesos-intro]] 5 | == Introducing Spring Cloud Data Flow Server for Apache Mesos 6 | 7 | This project provides support for orchestrating long-running (_streaming_) and short-lived (_task/batch_) data microservices on Apache Mesos with Marathon and Chronos. 8 | -------------------------------------------------------------------------------- /src/etc/marathon/rabbitmq.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "/rabbitmq", 3 | "cpus": 1.0, 4 | "mem": 512.0, 5 | "instances": 1, 6 | "container": { 7 | "type": "DOCKER", 8 | "docker": { 9 | "image": "rabbitmq", 10 | "name": "rabbitmq", 11 | "network": "BRIDGE", 12 | "portMappings": [ 13 | { "containerPort": 5672 } 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | cache: 3 | directories: 4 | - $HOME/.m2 5 | language: java 6 | jdk: 7 | - oraclejdk8 8 | services: 9 | - redis-server 10 | install: true 11 | script: 12 | script: 13 | - '[ "${TRAVIS_PULL_REQUEST}" != "false" ] || ./mvnw package -Pfull -U -Dmaven.test.redirectTestOutputToFile=false' 14 | - '[ "${TRAVIS_PULL_REQUEST}" = "false" ] || ./mvnw package -DskipTests -U -Dmaven.test.redirectTestOutputToFile=false' 15 | 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .#* 3 | *# 4 | *.sw* 5 | _site/ 6 | .factorypath 7 | .gradletasknamecache 8 | .DS_Store 9 | /application.yml 10 | /application.properties 11 | asciidoctor.css 12 | atlassian-ide-plugin.xml 13 | bin/ 14 | build/ 15 | dump.rdb 16 | out 17 | spring-shell.log 18 | target/ 19 | test-output 20 | 21 | # Eclipse artifacts, including WTP generated manifests 22 | .classpath 23 | .project 24 | .settings/ 25 | .springBeans 26 | spring-*/src/main/java/META-INF/MANIFEST.MF 27 | 28 | # IDEA artifacts and output dirs 29 | *.iml 30 | *.ipr 31 | *.iws 32 | .idea/* 33 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/Guardfile: -------------------------------------------------------------------------------- 1 | require 'asciidoctor' 2 | require 'erb' 3 | 4 | guard 'shell' do 5 | watch(/.*\.adoc$/) {|m| 6 | Asciidoctor.render_file('index.adoc', \ 7 | :in_place => true, \ 8 | :safe => Asciidoctor::SafeMode::UNSAFE, \ 9 | :attributes=> { \ 10 | 'source-highlighter' => 'prettify', \ 11 | 'icons' => 'font', \ 12 | 'linkcss'=> 'true', \ 13 | 'copycss' => 'true', \ 14 | 'doctype' => 'book'}) 15 | } 16 | end 17 | 18 | guard 'livereload' do 19 | watch(%r{^.+\.(css|js|html)$}) 20 | end 21 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/css/highlight.css: -------------------------------------------------------------------------------- 1 | /* 2 | code highlight CSS resemblign the Eclipse IDE default color schema 3 | @author Costin Leau 4 | */ 5 | 6 | .hl-keyword { 7 | color: #7F0055; 8 | font-weight: bold; 9 | } 10 | 11 | .hl-comment { 12 | color: #3F5F5F; 13 | font-style: italic; 14 | } 15 | 16 | .hl-multiline-comment { 17 | color: #3F5FBF; 18 | font-style: italic; 19 | } 20 | 21 | .hl-tag { 22 | color: #3F7F7F; 23 | } 24 | 25 | .hl-attribute { 26 | color: #7F007F; 27 | } 28 | 29 | .hl-value { 30 | color: #2A00FF; 31 | } 32 | 33 | .hl-string { 34 | color: #2A00FF; 35 | } -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | spring-cloud-dataflow-server-mesos 2 | 3 | Copyright (c) 2016-Present Pivotal Software, Inc. All Rights Reserved. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. -------------------------------------------------------------------------------- /src/checkstyle/checkstyle-header.txt: -------------------------------------------------------------------------------- 1 | ^\Q/*\E$ 2 | ^\Q * Copyright \E(20\d\d\-)?20\d\d\Q the original author or authors.\E$ 3 | ^\Q *\E$ 4 | ^\Q * Licensed under the Apache License, Version 2.0 (the "License");\E$ 5 | ^\Q * you may not use this file except in compliance with the License.\E$ 6 | ^\Q * You may obtain a copy of the License at\E$ 7 | ^\Q *\E$ 8 | ^\Q * http://www.apache.org/licenses/LICENSE-2.0\E$ 9 | ^\Q *\E$ 10 | ^\Q * Unless required by applicable law or agreed to in writing, software\E$ 11 | ^\Q * distributed under the License is distributed on an "AS IS" BASIS,\E$ 12 | ^\Q * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\E$ 13 | ^\Q * See the License for the specific language governing permissions and\E$ 14 | ^\Q * limitations under the License.\E$ 15 | ^\Q */\E$ 16 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos/src/main/docker/assembly.xml: -------------------------------------------------------------------------------- 1 | 5 | spring-cloud-dataflow-server-mesos 6 | 7 | 8 | 9 | org.springframework.cloud:spring-cloud-dataflow-server-mesos 10 | 11 | . 12 | spring-cloud-dataflow-server-mesos.jar 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/index-docinfo.xml: -------------------------------------------------------------------------------- 1 | Spring Cloud Data Flow 2 | {project-version} 3 | 4 | 2013-2017 5 | Pivotal Software, Inc. 6 | 7 | 8 | 9 | Copies of this document may be made for your own use and for distribution to 10 | others, provided that you do not charge any fee for such copies and further 11 | provided that each copy contains this Copyright Notice, whether distributed in 12 | print or electronically. 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | Pivotal Software, Inc. 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /README.adoc: -------------------------------------------------------------------------------- 1 | # spring-cloud-dataflow-server-mesos is no longer actively maintained by VMware, Inc. 2 | 3 | # Spring Cloud Dataflow Server for Apache Mesos 4 | 5 | This project provides support for deploying https://github.com/spring-cloud/spring-cloud-dataflow[Spring Cloud Data Flow]'s streaming data pipelines to Apache Mesos using Marathon and Chronos. It includes an implementation of Spring Cloud Data Flow’s https://github.com/spring-cloud/spring-cloud-deployer[Deployer SPI] using Marathon for stream apps and Chronos for task apps. 6 | 7 | 8 | The Spring Cloud Data Flow team have been happy stewards of this project, but now feel that TrustedChoice.com will be a better home, and we are donating the project to them to carry it forward. 9 | 10 | Please see https://github.com/trustedchoice/spring-cloud-dataflow-server-mesos[the new github repository] for the latest on this project as the Spring Cloud Data Flow team will no longer maintain it. 11 | 12 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/json-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 4 | 5 | " 6 | \ 7 | 8 | 9 | ' 10 | \ 11 | 12 | 13 | @ 14 | ( 15 | ) 16 | 17 | 18 | . 19 | e 20 | f 21 | d 22 | l 23 | 24 | 25 | 26 | true 27 | false 28 | 29 | 30 | { 31 | } 32 | , 33 | [ 34 | ] 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/etc/marathon/mysql.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "/mysql", 3 | "cpus": 1, 4 | "mem": 512, 5 | "disk": 0, 6 | "instances": 1, 7 | "container": { 8 | "type": "DOCKER", 9 | "volumes": [ 10 | { 11 | "containerPath": "mysqldata", 12 | "mode": "RW", 13 | "persistent": { 14 | "size": 1000 15 | } 16 | }, 17 | { 18 | "containerPath": "/var/lib/mysql", 19 | "hostPath": "mysqldata", 20 | "mode": "RW" 21 | } 22 | ], 23 | "docker": { 24 | "image": "mysql", 25 | "network": "BRIDGE", 26 | "portMappings": [ 27 | { 28 | "containerPort": 3306, 29 | "hostPort": 0, 30 | "servicePort": 10000, 31 | "protocol": "tcp" 32 | } 33 | ], 34 | "forcePullImage": false 35 | } 36 | }, 37 | "env": { 38 | "MYSQL_USER": "spring", 39 | "MYSQL_PASSWORD": "secret", 40 | "MYSQL_ROOT_PASSWORD": "supersecret", 41 | "MYSQL_DATABASE": "test" 42 | }, 43 | "upgradeStrategy": { 44 | "minimumHealthCapacity": 0, 45 | "maximumOverCapacity": 0 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/html-singlepage.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | css/manual-singlepage.css 29 | 30 | 31 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/epub.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 22 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/asciidoc-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | //// 10 | //// 11 | 12 | 13 | // 14 | 15 | 16 | 17 | ^(={1,6} .+)$ 18 | 19 | MULTILINE 20 | 21 | 22 | ^(\.[^\.\s].+)$ 23 | 24 | MULTILINE 25 | 26 | 27 | ^(:!?\w.*?:) 28 | 29 | MULTILINE 30 | 31 | 32 | ^(-|\*{1,5}|\d*\.{1,5})(?= .+$) 33 | 34 | MULTILINE 35 | 36 | 37 | ^(\[.+\])$ 38 | 39 | MULTILINE 40 | 41 | 42 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-autoconfig/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | spring-cloud-dataflow-server-mesos-autoconfig 6 | 1.1.0.BUILD-SNAPSHOT 7 | jar 8 | spring-cloud-dataflow-server-mesos-autoconfig 9 | 10 | 11 | org.springframework.cloud 12 | spring-cloud-dataflow-server-mesos-parent 13 | 1.1.0.BUILD-SNAPSHOT 14 | 15 | 16 | 17 | 18 | org.springframework.cloud 19 | spring-cloud-deployer-mesos 20 | 21 | 22 | org.springframework.cloud 23 | spring-cloud-dataflow-server-core 24 | 25 | 26 | 27 | 28 | 29 | org.apache.maven.plugins 30 | maven-resources-plugin 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/yaml-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 4 | 5 | " 6 | \ 7 | 8 | 9 | ' 10 | \ 11 | 12 | 13 | @ 14 | ( 15 | ) 16 | 17 | 18 | . 19 | e 20 | f 21 | d 22 | l 23 | 24 | 25 | 26 | true 27 | false 28 | 29 | 30 | { 31 | } 32 | , 33 | [ 34 | ] 35 | 36 | 37 | 38 | ^(---)$ 39 | 40 | MULTILINE 41 | 42 | 43 | ^(.+?)(?==|:) 44 | 45 | MULTILINE 46 | 47 | 48 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos/src/main/java/org/springframework/cloud/dataflow/server/mesos/MesosDataFlowServer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.dataflow.server.mesos; 18 | 19 | import org.springframework.boot.SpringApplication; 20 | import org.springframework.boot.autoconfigure.SpringBootApplication; 21 | import org.springframework.cloud.dataflow.server.EnableDataFlowServer; 22 | 23 | /** 24 | * Bootstrap class for the Mesos Spring Cloud Data Flow Server. 25 | * 26 | * @author Thomas Risberg 27 | */ 28 | @SpringBootApplication 29 | @EnableDataFlowServer 30 | public class MesosDataFlowServer { 31 | 32 | public static void main(String[] args) { 33 | SpringApplication.run(MesosDataFlowServer.class, args); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/properties-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | # 33 | 34 | ^(.+?)(?==|:) 35 | 36 | MULTILINE 37 | 38 | 39 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos/src/main/resources/dataflow-server.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9393 3 | management: 4 | contextPath: /management 5 | info: 6 | app: 7 | name: "@project.artifactId@" 8 | description: "@project.name@" 9 | version: "@project.version@" 10 | security: 11 | basic: 12 | enabled: false 13 | 14 | spring: 15 | application: 16 | name: spring-cloud-dataflow-server-mesos 17 | cloud: 18 | config: 19 | uri: http://localhost:8888 20 | dataflow: 21 | features: 22 | tasksEnabled: true 23 | 24 | --- 25 | # Configuration options when using Kafka binder: 26 | spring: 27 | cloud: 28 | deployer: 29 | mesos: 30 | marathon: 31 | environmentVariables: 'SPRING_CLOUD_STREAM_KAFKA_BINDER_BROKERS=192.168.33.10:31000,SPRING_CLOUD_STREAM_KAFKA_BINDER_ZK_NODES=192.168.33.10:2181' 32 | 33 | # Configuration options when using RabbitMQ binder: 34 | #spring: 35 | # cloud: 36 | # deployer: 37 | # mesos: 38 | # marathon: 39 | # environmentVariables: 'SPRING_RABBITMQ_HOST=192.168.33.10,SPRING_RABBITMQ_PORT=31193' 40 | 41 | # If you prefer to use Eureka to locate the Config Server, you can do that by setting 42 | # spring.cloud.config.discovery.enabled=true (default "false"). The net result of that is 43 | # that client apps all need a bootstrap.yml (or an environment variable) with the Eureka 44 | # server address, e.g. in eureka.client.serviceUrl.defaultZone 45 | #--- 46 | #spring: 47 | # cloud: 48 | # config: 49 | # discovery: 50 | # enabled: true 51 | #eureka: 52 | # client: 53 | # serviceUrl: 54 | # defaultZone: http://localhost:8761/eureka/ 55 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/configuration.adoc: -------------------------------------------------------------------------------- 1 | [[configuration]] 2 | = Server Configuration 3 | 4 | [partintro] 5 | -- 6 | In this section you will learn how to configure Spring Cloud Data Flow server's features such as the relational database to use and security. 7 | -- 8 | 9 | [[enable-disable-specific-features]] 10 | == Feature Toggles 11 | 12 | Data Flow server offers specific set of features that can be enabled/disabled when launching. These features include all the lifecycle operations, REST endpoints (server, client implementations including Shell and the UI) for: 13 | 14 | . Streams 15 | . Tasks 16 | . Analytics 17 | 18 | You can enable or disable these features by setting the following boolean environment variables when launching the Data Flow server: 19 | 20 | * `SPRING_CLOUD_DATAFLOW_FEATURES_STREAMS_ENABLED` 21 | * `SPRING_CLOUD_DATAFLOW_FEATURES_TASKS_ENABLED` 22 | * `SPRING_CLOUD_DATAFLOW_FEATURES_ANALYTICS_ENABLED` 23 | 24 | By default, all the features are enabled. 25 | 26 | NOTE: Since analytics feature is enabled by default, the Data Flow server is expected to have a valid Redis store available as analytic repository as we provide a default implementation of analytics based on Redis. This also means that the Data Flow server's `health` depends on the redis store availability as well. If you do not want to enabled HTTP endpoints to read analytics data written to Redis, then disable the analytics feature using the property mentioned above. 27 | 28 | The REST endpoint `/features` provides information on the features enabled/disabled. 29 | 30 | [[configuration-general]] 31 | == General Configuration 32 | 33 | *TODO:* _Add more config coverage_ 34 | 35 | -------------------------------------------------------------------------------- /.settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | repo.spring.io 6 | ${env.CI_DEPLOY_USERNAME} 7 | ${env.CI_DEPLOY_PASSWORD} 8 | 9 | 10 | 11 | 12 | spring 13 | true 14 | 15 | 16 | spring-snapshots 17 | Spring Snapshots 18 | http://repo.spring.io/libs-snapshot-local 19 | 20 | true 21 | 22 | 23 | 24 | spring-milestones 25 | Spring Milestones 26 | http://repo.spring.io/libs-milestone-local 27 | 28 | false 29 | 30 | 31 | 32 | spring-releases 33 | Spring Releases 34 | http://repo.spring.io/release 35 | 36 | false 37 | 38 | 39 | 40 | 41 | 42 | spring-snapshots 43 | Spring Snapshots 44 | http://repo.spring.io/libs-snapshot-local 45 | 46 | true 47 | 48 | 49 | 50 | spring-milestones 51 | Spring Milestones 52 | http://repo.spring.io/libs-milestone-local 53 | 54 | false 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/ini-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | ; 33 | 34 | 35 | ^(\[.+\]\s*)$ 36 | 37 | MULTILINE 38 | 39 | 40 | 41 | ^(.+)(?==) 42 | 43 | MULTILINE 44 | 45 | 46 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/common.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 22 | 27 | 28 | 29 | 1 30 | 0 31 | 1 32 | 33 | 34 | 35 | images/ 36 | .png 37 | 38 | 39 | book toc,title 40 | 3 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/etc/marathon/scdf-server.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "/spring-cloud-data-flow", 3 | "cpus": 0.5, 4 | "mem": 512.0, 5 | "instances": 1, 6 | "container": { 7 | "type": "DOCKER", 8 | "docker": { 9 | "image": "springcloud/spring-cloud-dataflow-server-mesos", 10 | "network": "BRIDGE", 11 | "portMappings": [ 12 | { "containerPort": 9393 } 13 | ] 14 | } 15 | }, 16 | "env": { 17 | "MESOS_MARATHON_URI": "http://m1.dcos/service/marathon", 18 | "MESOS_CHRONOS_URI": "http://m1.dcos/service/chronos", 19 | "JDBC_URL": "jdbc:mysql://192.168.65.111:5769/test", 20 | "JDBC_DRIVER": "org.mariadb.jdbc.Driver", 21 | "JDBC_USERNAME": "spring", 22 | "JDBC_PASSWORD": "secret", 23 | "RABBITMQ_HOST": "192.168.65.121", 24 | "RABBITMQ_PORT": "5261", 25 | "REDIS_HOST": "192.168.65.111", 26 | "REDIS_PORT": "19902", 27 | "SPRING_APPLICATION_JSON": "{\"spring.cloud.deployer.mesos.marathon.apiEndpoint\":\"${MESOS_MARATHON_URI}\",\"spring.cloud.deployer.mesos.chronos.apiEndpoint\":\"${MESOS_CHRONOS_URI}\",\"spring.datasource.url\":\"${JDBC_URL}\",\"spring.datasource.driverClassName\":\"${JDBC_DRIVER}\",\"spring.datasource.username\":\"${JDBC_USERNAME}\",\"spring.datasource.password\":\"${JDBC_PASSWORD}\",\"spring.datasource.testOnBorrow\":true,\"spring.datasource.validationQuery\":\"SELECT 1\",\"spring.redis.host\":\"${REDIS_HOST}\",\"spring.redis.port\":\"${REDIS_PORT}\",\"spring.cloud.deployer.mesos.marathon.environmentVariables\":\"SPRING_RABBITMQ_HOST=${RABBITMQ_HOST},SPRING_RABBITMQ_PORT=${RABBITMQ_PORT}\"}" 28 | }, 29 | "healthChecks": [ 30 | { 31 | "path": "/management/health", 32 | "portIndex": 0, 33 | "protocol": "HTTP", 34 | "ignoreHttp1xx": false, 35 | "gracePeriodSeconds": 120, 36 | "intervalSeconds": 60, 37 | "timeoutSeconds": 20, 38 | "maxConsecutiveFailures": 0 39 | } 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-autoconfig/src/main/java/org/springframework/cloud/dataflow/autoconfigure/mesos/MesosDataFlowServerAutoConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.dataflow.autoconfigure.mesos; 18 | 19 | import java.util.HashMap; 20 | import java.util.Map; 21 | 22 | import org.springframework.boot.autoconfigure.AutoConfigureOrder; 23 | import org.springframework.cloud.deployer.resource.docker.DockerResourceLoader; 24 | import org.springframework.cloud.deployer.resource.support.DelegatingResourceLoader; 25 | import org.springframework.context.annotation.Bean; 26 | import org.springframework.context.annotation.Configuration; 27 | import org.springframework.core.Ordered; 28 | import org.springframework.core.io.ResourceLoader; 29 | 30 | /** 31 | * AutoConfiguration for the {@link MesosDataFlowServer} 32 | * 33 | * @author Thomas Risberg 34 | */ 35 | @Configuration 36 | @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE) 37 | public class MesosDataFlowServerAutoConfiguration { 38 | 39 | @Bean 40 | public DelegatingResourceLoader delegatingResourceLoader() { 41 | DockerResourceLoader dockerLoader = new DockerResourceLoader(); 42 | Map loaders = new HashMap<>(); 43 | loaders.put("docker", dockerLoader); 44 | return new DelegatingResourceLoader(loaders); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/index.adoc: -------------------------------------------------------------------------------- 1 | = Spring Cloud Data Flow Server for Apache Mesos 2 | Sabby Anandan, Artem Bilan, Marius Bogoevici, Eric Bottard, Mark Fisher, Ilayaperumal Gopinathan, Gunnar Hillert, Mark Pollack, Patrick Peralta, Glenn Renfro, Gary Russell, Thomas Risberg, David Turanski, Janne Valkealahti 3 | :doctype: book 4 | :toc: 5 | :toclevels: 4 6 | :source-highlighter: prettify 7 | :numbered: 8 | :icons: font 9 | :hide-uri-scheme: 10 | 11 | // Since the core projects will be at different release cadences, the following tokens need changed at the time of every release 12 | // any git link should be the tag for a release and the branch for build snapshots 13 | :scdf-core-version: {dataflow-project-version} 14 | :scdf-core-git: master 15 | :scde-mesos-version: 1.1.0.BUILD-SNAPSHOT 16 | :scde-mesos-git: master 17 | :scst-core-version: Camden.RELEASE 18 | :sct-core-version: 1.2.0.RELEASE 19 | :scst-starters-core-version: 1.2.0.RELEASE 20 | :sct-starters-core-version: 1.2.0.RELEASE 21 | 22 | :dataflow-asciidoc: https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/{scdf-core-git}/spring-cloud-dataflow-docs/src/main/asciidoc 23 | 24 | // the following tags used for links don't have to exists during build but must exist once docs are published 25 | :git-branch-tag: master 26 | :docker-tag: latest 27 | 28 | ifdef::backend-html5[] 29 | 30 | Version {project-version} 31 | 32 | (C) 2012-2017 Pivotal Software, Inc. 33 | 34 | _Copies of this document may be made for your own use and for distribution to 35 | others, provided that you do not charge any fee for such copies and further 36 | provided that each copy contains this Copyright Notice, whether distributed in 37 | print or electronically._ 38 | 39 | endif::backend-html5[] 40 | 41 | // ====================================================================================== 42 | 43 | include::introduction.adoc[] 44 | 45 | include::overview.adoc[] 46 | 47 | include::{dataflow-asciidoc}/architecture.adoc[] 48 | 49 | include::getting-started.adoc[] 50 | 51 | include::configuration.adoc[] 52 | 53 | include::{dataflow-asciidoc}/streams.adoc[] 54 | 55 | include::{dataflow-asciidoc}/tasks.adoc[] 56 | 57 | include::{dataflow-asciidoc}/dashboard.adoc[] 58 | 59 | include::appendix.adoc[] 60 | 61 | 62 | // ====================================================================================== 63 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos/src/test/java/org/springframework/cloud/dataflow/server/mesos/ContextLoadsTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2016 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package org.springframework.cloud.dataflow.server.mesos; 17 | 18 | import java.util.Map; 19 | 20 | import org.junit.Test; 21 | import org.junit.runner.RunWith; 22 | 23 | import org.springframework.beans.factory.annotation.Autowired; 24 | import org.springframework.boot.test.context.SpringBootTest; 25 | import org.springframework.cloud.deployer.resource.docker.DockerResourceLoader; 26 | import org.springframework.cloud.deployer.resource.support.DelegatingResourceLoader; 27 | import org.springframework.context.ApplicationContext; 28 | import org.springframework.core.io.ResourceLoader; 29 | import org.springframework.test.context.junit4.SpringRunner; 30 | 31 | import static org.hamcrest.Matchers.instanceOf; 32 | import static org.hamcrest.Matchers.is; 33 | import static org.hamcrest.Matchers.notNullValue; 34 | import static org.junit.Assert.assertThat; 35 | 36 | @RunWith(SpringRunner.class) 37 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = MesosDataFlowServer.class) 38 | public class ContextLoadsTests { 39 | 40 | @Autowired 41 | private ApplicationContext context; 42 | 43 | @Test 44 | public void contextLoads() throws Exception { 45 | assertThat(context.containsBean("delegatingResourceLoader"), is(true)); 46 | DelegatingResourceLoader delegatingResourceLoader = context.getBean(DelegatingResourceLoader.class); 47 | Map loaders = TestUtils.readField("loaders", delegatingResourceLoader); 48 | assertThat(loaders.get("docker"), notNullValue()); 49 | ResourceLoader resourceLoader = loaders.get("docker"); 50 | assertThat(resourceLoader, instanceOf(DockerResourceLoader.class)); 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | spring-cloud-dataflow-server-mesos 5 | jar 6 | Mesos Data Flow Server 7 | 8 | org.springframework.cloud 9 | spring-cloud-dataflow-server-mesos-parent 10 | 1.1.0.BUILD-SNAPSHOT 11 | 12 | 13 | org.springframework.cloud.dataflow.server.mesos.MesosDataFlowServer 14 | 15 | 16 | 17 | org.springframework.cloud 18 | spring-cloud-dataflow-server-mesos-autoconfig 19 | 1.1.0.BUILD-SNAPSHOT 20 | 21 | 22 | 23 | 24 | 25 | src/main/resources 26 | true 27 | 28 | META-INF/*.properties 29 | META-INF/spring.factories 30 | dataflow-server.yml 31 | 32 | 33 | 34 | 35 | 36 | org.apache.maven.plugins 37 | maven-resources-plugin 38 | 39 | 40 | org.springframework.boot 41 | spring-boot-maven-plugin 42 | 43 | 44 | io.fabric8 45 | docker-maven-plugin 46 | 0.14.2 47 | 48 | 49 | 50 | springcloud/${project.artifactId} 51 | 52 | java:8-alpine 53 | 54 | /tmp 55 | 56 | 57 | 58 | java 59 | -jar 60 | /maven/spring-cloud-dataflow-server-mesos.jar 61 | 62 | 63 | 64 | assembly.xml 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/appendix-test-cluster.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | [[test-cluster]] 3 | 4 | == Test Cluster 5 | Here are brief setup instructions for setting up a local Vagrant DC/OS Mesos cluster. The DC/OS Dashboard endpoint will be http://m1.dcos[http://m1.dcos], the Mesos endpoint will be http://m1.dcos/mesos[http://m1.dcos/mesos], the Marathon endpoint will be http://m1.dcos/marathon[http://m1.dcos/marathon] and the Chronos endpoint will be http://m1.dcos/service/chronos[http://m1.dcos/service/chronos]. 6 | 7 | Detailed installation instructions are here: https://github.com/dcos/dcos-vagrant[https://github.com/dcos/dcos-vagrant] 8 | 9 | === Clone and Download files 10 | 11 | First clone the `dcos-vagrant` project: 12 | 13 | git clone https://github.com/dcos/dcos-vagrant.git 14 | 15 | Copy the config file you'd like to use (the best file to use for our purposes is `VagrantConfig-1m-3a-1p.yaml`). From the root directory of the `dcos-vagrant` project execute: 16 | 17 | cp VagrantConfig-1m-3a-1p.yaml VagrantConfig.yaml 18 | 19 | Copy the `etc/config-1.8.yaml` file to `etc/config.yaml` and then add a line with 20 | 21 | `oauth_enabled: 'false'` 22 | 23 | to the end of this file and save it. This will disable any security for the cluster. 24 | 25 | === Start Vagrant VMs for the Mesos cluster 26 | 27 | You need to install VirtualBox, Vagrant and Vagrant Host Manager Plugin. See https://github.com/dcos/dcos-vagrant#quick-start[Quick Start]. 28 | 29 | Download the DC/OS version you want to use, we used version 1.8.8 from https://dcos.io/releases/1.8.8/[https://dcos.io/releases/1.8.8/], and place this `dcos_generate_config.sh` file in the root directory of the cloned `dcos-project`. 30 | 31 | Before we start the cluster we should define the config files we want to use: 32 | 33 | export DCOS_CONFIG_PATH=etc/config.yaml 34 | export DCOS_GENERATE_CONFIG_PATH=dcos_generate_config.sh 35 | 36 | Now we are ready to start the Vagrant VMs. You can select different cluster configurations depending on your needs. We have tested using a single master, two private agents and one bootstrap node using this command: 37 | 38 | vagrant up m1 a1 a2 boot 39 | 40 | When you are done with the Mesos cluster you can destroy it using: 41 | 42 | vagrant destroy -f 43 | 44 | === Install Chronos as a Service running in Marathon 45 | 46 | You can install Chronos by using the following `dcos` command. This requires that you install the https://docs.mesosphere.com/1.8/usage/cli/install/[DC/OS CLI]. 47 | 48 | dcos package install chronos 49 | 50 | NOTE: The more recent DC/OS versions include Marathon version 3.0 which has changed the API endpoints. The 1.2 version of Spring Cloud Deployer for Mesos now support this Chronos 3.0 version but it is no longer compatible with older Chronos versions. 51 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/html-multipage.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | css/manual-multipage.css 29 | 30 | '5' 31 | '1' 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | firstpage 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/bourne-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 27 | 28 | # 29 | 30 | << 31 | ' 32 | " 33 | - 34 | 35 | 36 | 37 | 38 | " 39 | \ 40 | 41 | 42 | ' 43 | \ 44 | 45 | 46 | 47 | 0x 48 | 49 | 50 | 51 | . 52 | 53 | 54 | 55 | 56 | 57 | if 58 | then 59 | else 60 | elif 61 | fi 62 | case 63 | esac 64 | for 65 | while 66 | until 67 | do 68 | done 69 | 70 | exec 71 | shift 72 | exit 73 | times 74 | break 75 | export 76 | trap 77 | continue 78 | readonly 79 | wait 80 | eval 81 | return 82 | 83 | cd 84 | echo 85 | hash 86 | pwd 87 | read 88 | set 89 | test 90 | type 91 | ulimit 92 | umask 93 | unset 94 | 95 | 96 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.springframework.cloud 5 | spring-cloud-dataflow-server-mesos-parent 6 | 1.1.0.BUILD-SNAPSHOT 7 | pom 8 | 9 | 10 | org.springframework.cloud 11 | spring-cloud-dataflow-parent 12 | 1.2.0.BUILD-SNAPSHOT 13 | 14 | 15 | 16 | 17 | spring-cloud-dataflow-server-mesos-docs 18 | spring-cloud-dataflow-server-mesos 19 | spring-cloud-dataflow-server-mesos-autoconfig 20 | 21 | 22 | 23 | 1.2.0.BUILD-SNAPSHOT 24 | 1.1.0.BUILD-SNAPSHOT 25 | 26 | 27 | 28 | 29 | 30 | org.springframework.cloud 31 | spring-cloud-deployer-mesos 32 | ${spring-cloud-deployer-mesos.version} 33 | 34 | 35 | org.springframework.cloud 36 | spring-cloud-dataflow-server-core 37 | ${spring-cloud-dataflow.version} 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | spring 46 | 47 | 48 | spring-snapshots 49 | Spring Snapshots 50 | http://repo.spring.io/libs-snapshot-local 51 | 52 | true 53 | 54 | 55 | 56 | spring-milestones 57 | Spring Milestones 58 | http://repo.spring.io/libs-milestone-local 59 | 60 | false 61 | 62 | 63 | 64 | spring-releases 65 | Spring Releases 66 | http://repo.spring.io/release 67 | 68 | false 69 | 70 | 71 | 72 | 73 | 74 | spring-snapshots 75 | Spring Snapshots 76 | http://repo.spring.io/libs-snapshot-local 77 | 78 | true 79 | 80 | 81 | 82 | spring-milestones 83 | Spring Milestones 84 | http://repo.spring.io/libs-milestone-local 85 | 86 | false 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos/src/test/java/org/springframework/cloud/dataflow/server/mesos/TestUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.dataflow.server.mesos; 18 | 19 | import java.lang.reflect.Field; 20 | import java.lang.reflect.Method; 21 | 22 | import org.springframework.util.ReflectionUtils; 23 | 24 | /** 25 | * Utils for tests. 26 | * 27 | * @author Janne Valkealahti 28 | * 29 | */ 30 | public class TestUtils { 31 | 32 | @SuppressWarnings("unchecked") 33 | public static T readField(String name, Object target) throws Exception { 34 | Field field = null; 35 | Class> clazz = target.getClass(); 36 | do { 37 | try { 38 | field = clazz.getDeclaredField(name); 39 | } catch (Exception ex) { 40 | } 41 | 42 | clazz = clazz.getSuperclass(); 43 | } while (field == null && !clazz.equals(Object.class)); 44 | 45 | if (field == null) 46 | throw new IllegalArgumentException("Cannot find field '" + name + "' in the class hierarchy of " 47 | + target.getClass()); 48 | field.setAccessible(true); 49 | return (T) field.get(target); 50 | } 51 | 52 | @SuppressWarnings("unchecked") 53 | public static T callMethod(String name, Object target) throws Exception { 54 | Class> clazz = target.getClass(); 55 | Method method = ReflectionUtils.findMethod(clazz, name); 56 | 57 | if (method == null) 58 | throw new IllegalArgumentException("Cannot find method '" + method + "' in the class hierarchy of " 59 | + target.getClass()); 60 | method.setAccessible(true); 61 | return (T) ReflectionUtils.invokeMethod(method, target); 62 | } 63 | 64 | public static void setField(String name, Object target, Object value) throws Exception { 65 | Field field = null; 66 | Class> clazz = target.getClass(); 67 | do { 68 | try { 69 | field = clazz.getDeclaredField(name); 70 | } catch (Exception ex) { 71 | } 72 | 73 | clazz = clazz.getSuperclass(); 74 | } while (field == null && !clazz.equals(Object.class)); 75 | 76 | if (field == null) 77 | throw new IllegalArgumentException("Cannot find field '" + name + "' in the class hierarchy of " 78 | + target.getClass()); 79 | field.setAccessible(true); 80 | field.set(target, value); 81 | } 82 | 83 | @SuppressWarnings("unchecked") 84 | public static T callMethod(String name, Object target, Object[] args, Class>[] argsTypes) throws Exception { 85 | Class> clazz = target.getClass(); 86 | Method method = ReflectionUtils.findMethod(clazz, name, argsTypes); 87 | 88 | if (method == null) 89 | throw new IllegalArgumentException("Cannot find method '" + method + "' in the class hierarchy of " 90 | + target.getClass()); 91 | method.setAccessible(true); 92 | return (T) ReflectionUtils.invokeMethod(method, target, args); 93 | } 94 | 95 | } 96 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/python-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | 33 | 34 | @ 35 | ( 36 | ) 37 | 38 | # 39 | 40 | """ 41 | 42 | 43 | 44 | ''' 45 | 46 | 47 | 48 | " 49 | \ 50 | 51 | 52 | ' 53 | \ 54 | 55 | 56 | 0x 57 | l 58 | 59 | 60 | 61 | . 62 | 63 | e 64 | l 65 | 66 | 67 | 68 | and 69 | del 70 | from 71 | not 72 | while 73 | as 74 | elif 75 | global 76 | or 77 | with 78 | assert 79 | else 80 | if 81 | pass 82 | yield 83 | break 84 | except 85 | import 86 | print 87 | class 88 | exec 89 | in 90 | raise 91 | continue 92 | finally 93 | is 94 | return 95 | def 96 | for 97 | lambda 98 | try 99 | 100 | 101 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/ruby-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | # 33 | 34 | << 35 | 36 | 37 | 38 | " 39 | \ 40 | 41 | 42 | %Q{ 43 | } 44 | \ 45 | 46 | 47 | %/ 48 | / 49 | \ 50 | 51 | 52 | ' 53 | \ 54 | 55 | 56 | %q{ 57 | } 58 | \ 59 | 60 | 61 | 0x 62 | 63 | 64 | 65 | . 66 | e 67 | 68 | 69 | 70 | alias 71 | and 72 | BEGIN 73 | begin 74 | break 75 | case 76 | class 77 | def 78 | defined 79 | do 80 | else 81 | elsif 82 | END 83 | end 84 | ensure 85 | false 86 | for 87 | if 88 | in 89 | module 90 | next 91 | nil 92 | not 93 | or 94 | redo 95 | rescue 96 | retry 97 | return 98 | self 99 | super 100 | then 101 | true 102 | undef 103 | unless 104 | until 105 | when 106 | while 107 | yield 108 | 109 | 110 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/java-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | 33 | /** 34 | */ 35 | 36 | 37 | 38 | /* 39 | */ 40 | 41 | // 42 | 43 | " 44 | \ 45 | 46 | 47 | ' 48 | \ 49 | 50 | 51 | @ 52 | ( 53 | ) 54 | 55 | 56 | 0x 57 | 58 | 59 | 60 | . 61 | e 62 | f 63 | d 64 | l 65 | 66 | 67 | 68 | abstract 69 | boolean 70 | break 71 | byte 72 | case 73 | catch 74 | char 75 | class 76 | const 77 | continue 78 | default 79 | do 80 | double 81 | else 82 | extends 83 | final 84 | finally 85 | float 86 | for 87 | goto 88 | if 89 | implements 90 | import 91 | instanceof 92 | int 93 | interface 94 | long 95 | native 96 | new 97 | package 98 | private 99 | protected 100 | public 101 | return 102 | short 103 | static 104 | strictfp 105 | super 106 | switch 107 | synchronized 108 | this 109 | throw 110 | throws 111 | transient 112 | try 113 | void 114 | volatile 115 | while 116 | 117 | 118 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/c-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 29 | 30 | 31 | /** 32 | */ 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | /* 41 | */ 42 | 43 | // 44 | 45 | 46 | # 47 | \ 48 | 49 | 50 | 51 | 52 | " 53 | \ 54 | 55 | 56 | ' 57 | \ 58 | 59 | 60 | 0x 61 | ul 62 | lu 63 | u 64 | l 65 | 66 | 67 | 68 | . 69 | 70 | e 71 | ul 72 | lu 73 | u 74 | f 75 | l 76 | 77 | 78 | 79 | auto 80 | _Bool 81 | break 82 | case 83 | char 84 | _Complex 85 | const 86 | continue 87 | default 88 | do 89 | double 90 | else 91 | enum 92 | extern 93 | float 94 | for 95 | goto 96 | if 97 | _Imaginary 98 | inline 99 | int 100 | long 101 | register 102 | restrict 103 | return 104 | short 105 | signed 106 | sizeof 107 | static 108 | struct 109 | switch 110 | typedef 111 | union 112 | unsigned 113 | void 114 | volatile 115 | while 116 | 117 | 118 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/perl-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | # 33 | 34 | << 35 | ' 36 | " 37 | 38 | 39 | 40 | " 41 | \ 42 | 43 | 44 | ' 45 | \ 46 | 47 | 48 | 49 | 0x 50 | 51 | 52 | 53 | . 54 | 55 | 56 | 57 | 58 | if 59 | unless 60 | while 61 | until 62 | foreach 63 | else 64 | elsif 65 | for 66 | when 67 | default 68 | given 69 | 70 | caller 71 | continue 72 | die 73 | do 74 | dump 75 | eval 76 | exit 77 | goto 78 | last 79 | next 80 | redo 81 | return 82 | sub 83 | wantarray 84 | 85 | caller 86 | import 87 | local 88 | my 89 | package 90 | use 91 | 92 | do 93 | import 94 | no 95 | package 96 | require 97 | use 98 | 99 | bless 100 | dbmclose 101 | dbmopen 102 | package 103 | ref 104 | tie 105 | tied 106 | untie 107 | use 108 | 109 | and 110 | or 111 | not 112 | eq 113 | ne 114 | lt 115 | gt 116 | le 117 | ge 118 | cmp 119 | 120 | 121 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/html-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | a 17 | abbr 18 | address 19 | area 20 | article 21 | aside 22 | audio 23 | b 24 | base 25 | bdi 26 | blockquote 27 | body 28 | br 29 | button 30 | caption 31 | canvas 32 | cite 33 | code 34 | command 35 | col 36 | colgroup 37 | dd 38 | del 39 | dialog 40 | div 41 | dl 42 | dt 43 | em 44 | embed 45 | fieldset 46 | figcaption 47 | figure 48 | font 49 | form 50 | footer 51 | h1 52 | h2 53 | h3 54 | h4 55 | h5 56 | h6 57 | head 58 | header 59 | hr 60 | html 61 | i 62 | iframe 63 | img 64 | input 65 | ins 66 | kbd 67 | label 68 | legend 69 | li 70 | link 71 | map 72 | mark 73 | menu 74 | menu 75 | meta 76 | nav 77 | noscript 78 | object 79 | ol 80 | optgroup 81 | option 82 | p 83 | param 84 | pre 85 | q 86 | samp 87 | script 88 | section 89 | select 90 | small 91 | source 92 | span 93 | strong 94 | style 95 | sub 96 | summary 97 | sup 98 | table 99 | tbody 100 | td 101 | textarea 102 | tfoot 103 | th 104 | thead 105 | time 106 | title 107 | tr 108 | track 109 | u 110 | ul 111 | var 112 | video 113 | wbr 114 | xmp 115 | 116 | 117 | 118 | 119 | xsl: 120 | 121 | 122 | 123 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/overview.adoc: -------------------------------------------------------------------------------- 1 | [[spring-cloud-data-flow-overview]] 2 | == Spring Cloud Data Flow 3 | Spring Cloud Data Flow is a cloud-native orchestration service for composable data microservices on modern runtimes. With Spring Cloud Data Flow, developers can create and orchestrate data pipelines for common use cases such as data ingest, real-time analytics, and data import/export. 4 | 5 | The Spring Cloud Data Flow architecture consists of a server that deploys http://docs.spring.io/spring-cloud-dataflow/docs/{scdf-core-version}/reference/htmlsingle/#streams[Streams] and http://docs.spring.io/spring-cloud-dataflow/docs/{scdf-core-version}/reference/htmlsingle/#spring-cloud-task-overview[Tasks]. Streams are defined using a http://docs.spring.io/spring-cloud-dataflow/docs/{scdf-core-version}/reference/html/_dsl_syntax.html[DSL] or visually through the browser based designer UI. Streams are based on the http://cloud.spring.io/spring-cloud-stream/[Spring Cloud Stream] programming model while Tasks are based on the http://cloud.spring.io/spring-cloud-task/[Spring Cloud Task] programming model. The sections below describe more information about creating your own custom Streams and Tasks 6 | 7 | For more details about the core architecture components and the supported features, please review Spring Cloud Data Flow's http://docs.spring.io/spring-cloud-dataflow/docs/{scdf-core-version}/reference/htmlsingle/[core reference guide]. There're several https://github.com/spring-cloud/spring-cloud-dataflow-samples[samples] available for reference. 8 | 9 | [[spring-cloud-stream-overview]] 10 | == Spring Cloud Stream 11 | Spring Cloud Stream is a framework for building message-driven microservice applications. Spring Cloud Stream builds upon Spring Boot to create standalone, production-grade Spring applications, and uses Spring Integration to provide connectivity to message brokers. It provides opinionated configuration of middleware from several vendors, introducing the concepts of persistent publish-subscribe semantics, consumer groups, and partitions. 12 | 13 | For more details about the core framework components and the supported features, please review Spring Cloud Stream's http://docs.spring.io/spring-cloud-stream/docs/{scst-core-version}/reference/htmlsingle/[reference guide]. 14 | 15 | There's a rich ecosystem of Spring Cloud Stream http://docs.spring.io/spring-cloud-stream-app-starters/docs/{scst-starters-core-version}/reference/htmlsingle[Application-Starters] that can be used either as standalone data microservice applications or in Spring Cloud Data Flow. For convenience, we have generated RabbitMQ and Apache Kafka variants of these application-starters that are available for use from http://repo.spring.io/libs-snapshot/org/springframework/cloud/stream/app/[Maven Repo] and https://hub.docker.com/r/springcloudstream/[Docker Hub] as maven artifacts and docker images, respectively. 16 | 17 | Do you have a requirement to develop custom applications? No problem. Refer to this guide to create http://docs.spring.io/spring-cloud-stream-app-starters/docs/{scst-starters-core-version}/reference/htmlsingle/#_creating_custom_artifacts[custom stream applications]. There're several https://github.com/spring-cloud/spring-cloud-stream-samples[samples] available for reference. 18 | 19 | [[spring-cloud-task-overview]] 20 | == Spring Cloud Task 21 | 22 | Spring Cloud Task makes it easy to create short-lived microservices. We provide capabilities that allow short-lived JVM processes to be executed on demand in a production environment. 23 | 24 | For more details about the core framework components and the supported features, please review Spring Cloud Task's http://docs.spring.io/spring-cloud-task/{sct-core-version}/reference/htmlsingle/[reference guide]. 25 | 26 | There's a rich ecosystem of Spring Cloud Task http://docs.spring.io/spring-cloud-task-app-starters/docs/{sct-starters-core-version}/reference/htmlsingle[Application-Starters] that can be used either as standalone data microservice applications or in Spring Cloud Data Flow. For convenience, the generated application-starters are available for use from http://repo.spring.io/libs-snapshot/org/springframework/cloud/task/app/[Maven Repo]. There are several https://github.com/spring-cloud/spring-cloud-task/tree/master/spring-cloud-task-samples[samples] available for reference. -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/javascript-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | 33 | /* 34 | */ 35 | 36 | // 37 | 38 | " 39 | \ 40 | 41 | 42 | ' 43 | \ 44 | 45 | 46 | 0x 47 | 48 | 49 | 50 | . 51 | e 52 | 53 | 54 | 55 | break 56 | case 57 | catch 58 | continue 59 | default 60 | delete 61 | do 62 | else 63 | finally 64 | for 65 | function 66 | if 67 | in 68 | instanceof 69 | new 70 | return 71 | switch 72 | this 73 | throw 74 | try 75 | typeof 76 | var 77 | void 78 | while 79 | with 80 | 81 | abstract 82 | boolean 83 | byte 84 | char 85 | class 86 | const 87 | debugger 88 | double 89 | enum 90 | export 91 | extends 92 | final 93 | float 94 | goto 95 | implements 96 | import 97 | int 98 | interface 99 | long 100 | native 101 | package 102 | private 103 | protected 104 | public 105 | short 106 | static 107 | super 108 | synchronized 109 | throws 110 | transient 111 | volatile 112 | 113 | 114 | prototype 115 | 116 | Array 117 | Boolean 118 | Date 119 | Error 120 | EvalError 121 | Function 122 | Math 123 | Number 124 | Object 125 | RangeError 126 | ReferenceError 127 | RegExp 128 | String 129 | SyntaxError 130 | TypeError 131 | URIError 132 | 133 | decodeURI 134 | decodeURIComponent 135 | encodeURI 136 | encodeURIComponent 137 | eval 138 | isFinite 139 | isNaN 140 | parseFloat 141 | parseInt 142 | 143 | Infinity 144 | NaN 145 | undefined 146 | 147 | 148 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/cpp-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | 33 | /** 34 | */ 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | /* 43 | */ 44 | 45 | // 46 | 47 | 48 | # 49 | \ 50 | 51 | 52 | 53 | 54 | " 55 | \ 56 | 57 | 58 | ' 59 | \ 60 | 61 | 62 | 0x 63 | ul 64 | lu 65 | u 66 | l 67 | 68 | 69 | 70 | . 71 | 72 | e 73 | ul 74 | lu 75 | u 76 | f 77 | l 78 | 79 | 80 | 81 | 82 | auto 83 | _Bool 84 | break 85 | case 86 | char 87 | _Complex 88 | const 89 | continue 90 | default 91 | do 92 | double 93 | else 94 | enum 95 | extern 96 | float 97 | for 98 | goto 99 | if 100 | _Imaginary 101 | inline 102 | int 103 | long 104 | register 105 | restrict 106 | return 107 | short 108 | signed 109 | sizeof 110 | static 111 | struct 112 | switch 113 | typedef 114 | union 115 | unsigned 116 | void 117 | volatile 118 | while 119 | 120 | asm 121 | dynamic_cast 122 | namespace 123 | reinterpret_cast 124 | try 125 | bool 126 | explicit 127 | new 128 | static_cast 129 | typeid 130 | catch 131 | false 132 | operator 133 | template 134 | typename 135 | class 136 | friend 137 | private 138 | this 139 | using 140 | const_cast 141 | inline 142 | public 143 | throw 144 | virtual 145 | delete 146 | mutable 147 | protected 148 | true 149 | wchar_t 150 | 151 | 152 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/php-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | 33 | /** 34 | */ 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | /* 43 | */ 44 | 45 | // 46 | # 47 | 48 | " 49 | \ 50 | 51 | 52 | 53 | ' 54 | \ 55 | 56 | 57 | 58 | <<< 59 | 60 | 61 | 0x 62 | 63 | 64 | 65 | . 66 | e 67 | 68 | 69 | 70 | and 71 | or 72 | xor 73 | __FILE__ 74 | exception 75 | __LINE__ 76 | array 77 | as 78 | break 79 | case 80 | class 81 | const 82 | continue 83 | declare 84 | default 85 | die 86 | do 87 | echo 88 | else 89 | elseif 90 | empty 91 | enddeclare 92 | endfor 93 | endforeach 94 | endif 95 | endswitch 96 | endwhile 97 | eval 98 | exit 99 | extends 100 | for 101 | foreach 102 | function 103 | global 104 | if 105 | include 106 | include_once 107 | isset 108 | list 109 | new 110 | print 111 | require 112 | require_once 113 | return 114 | static 115 | switch 116 | unset 117 | use 118 | var 119 | while 120 | __FUNCTION__ 121 | __CLASS__ 122 | __METHOD__ 123 | final 124 | php_user_filter 125 | interface 126 | implements 127 | extends 128 | public 129 | private 130 | protected 131 | abstract 132 | clone 133 | try 134 | catch 135 | throw 136 | cfunction 137 | old_function 138 | true 139 | false 140 | 141 | namespace 142 | __NAMESPACE__ 143 | goto 144 | __DIR__ 145 | 146 | 147 | 148 | 149 | ?> 150 | <?php 151 | <?= 152 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/html.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 22 | 27 | 28 | 29 | 30 | 31 | 32 | 1 33 | 34 | 35 | 1 36 | 37 | 38 | 39 | 120 40 | images/callouts/ 41 | .png 42 | 43 | 44 | text/css 45 | 46 | text-align: left 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | , 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | Authors 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | # 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 39 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 40 | 41 | @REM set %HOME% to equivalent of $HOME 42 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 43 | 44 | @REM Execute a user defined script before this one 45 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 46 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 47 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 48 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 49 | :skipRcPre 50 | 51 | @setlocal 52 | 53 | set ERROR_CODE=0 54 | 55 | @REM To isolate internal variables from possible post scripts, we use another setlocal 56 | @setlocal 57 | 58 | @REM ==== START VALIDATION ==== 59 | if not "%JAVA_HOME%" == "" goto OkJHome 60 | 61 | echo. 62 | echo Error: JAVA_HOME not found in your environment. >&2 63 | echo Please set the JAVA_HOME variable in your environment to match the >&2 64 | echo location of your Java installation. >&2 65 | echo. 66 | goto error 67 | 68 | :OkJHome 69 | if exist "%JAVA_HOME%\bin\java.exe" goto init 70 | 71 | echo. 72 | echo Error: JAVA_HOME is set to an invalid directory. >&2 73 | echo JAVA_HOME = "%JAVA_HOME%" >&2 74 | echo Please set the JAVA_HOME variable in your environment to match the >&2 75 | echo location of your Java installation. >&2 76 | echo. 77 | goto error 78 | 79 | @REM ==== END VALIDATION ==== 80 | 81 | :init 82 | 83 | set MAVEN_CMD_LINE_ARGS=%* 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | 121 | set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar"" 122 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 123 | 124 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS% 125 | if ERRORLEVEL 1 goto error 126 | goto end 127 | 128 | :error 129 | set ERROR_CODE=1 130 | 131 | :end 132 | @endlocal & set ERROR_CODE=%ERROR_CODE% 133 | 134 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 135 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 136 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 137 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 138 | :skipRcPost 139 | 140 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 141 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 142 | 143 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 144 | 145 | exit /B %ERROR_CODE% 146 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/csharp-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | 33 | /** 34 | */ 35 | 36 | 37 | 38 | /// 39 | 40 | 41 | 42 | /* 43 | */ 44 | 45 | // 46 | 47 | 48 | [ 49 | ] 50 | ( 51 | ) 52 | 53 | 54 | 55 | # 56 | \ 57 | 58 | 59 | 60 | 61 | 62 | @" 63 | " 64 | \ 65 | 66 | 67 | 68 | " 69 | \ 70 | 71 | 72 | ' 73 | \ 74 | 75 | 76 | 0x 77 | ul 78 | lu 79 | u 80 | l 81 | 82 | 83 | 84 | . 85 | 86 | e 87 | ul 88 | lu 89 | u 90 | f 91 | d 92 | m 93 | l 94 | 95 | 96 | 97 | abstract 98 | as 99 | base 100 | bool 101 | break 102 | byte 103 | case 104 | catch 105 | char 106 | checked 107 | class 108 | const 109 | continue 110 | decimal 111 | default 112 | delegate 113 | do 114 | double 115 | else 116 | enum 117 | event 118 | explicit 119 | extern 120 | false 121 | finally 122 | fixed 123 | float 124 | for 125 | foreach 126 | goto 127 | if 128 | implicit 129 | in 130 | int 131 | interface 132 | internal 133 | is 134 | lock 135 | long 136 | namespace 137 | new 138 | null 139 | object 140 | operator 141 | out 142 | override 143 | params 144 | private 145 | protected 146 | public 147 | readonly 148 | ref 149 | return 150 | sbyte 151 | sealed 152 | short 153 | sizeof 154 | stackalloc 155 | static 156 | string 157 | struct 158 | switch 159 | this 160 | throw 161 | true 162 | try 163 | typeof 164 | uint 165 | ulong 166 | unchecked 167 | unsafe 168 | ushort 169 | using 170 | virtual 171 | void 172 | volatile 173 | while 174 | 175 | 176 | 177 | add 178 | alias 179 | from 180 | get 181 | global 182 | group 183 | into 184 | join 185 | orderby 186 | partial 187 | remove 188 | select 189 | set 190 | value 191 | where 192 | yield 193 | 194 | 195 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/css/manual.css: -------------------------------------------------------------------------------- 1 | @IMPORT url("highlight.css"); 2 | 3 | html { 4 | padding: 0pt; 5 | margin: 0pt; 6 | } 7 | 8 | body { 9 | color: #333333; 10 | margin: 15px 30px; 11 | font-family: Helvetica, Arial, Freesans, Clean, Sans-serif; 12 | line-height: 1.6; 13 | -webkit-font-smoothing: antialiased; 14 | } 15 | 16 | code { 17 | font-size: 16px; 18 | font-family: Consolas, "Liberation Mono", Courier, monospace; 19 | } 20 | 21 | :not(a)>code { 22 | color: #6D180B; 23 | } 24 | 25 | :not(pre)>code { 26 | background-color: #F2F2F2; 27 | border: 1px solid #CCCCCC; 28 | border-radius: 4px; 29 | padding: 1px 3px 0; 30 | text-shadow: none; 31 | white-space: nowrap; 32 | } 33 | 34 | body>*:first-child { 35 | margin-top: 0 !important; 36 | } 37 | 38 | div { 39 | margin: 0pt; 40 | } 41 | 42 | hr { 43 | border: 1px solid #CCCCCC; 44 | background: #CCCCCC; 45 | } 46 | 47 | h1,h2,h3,h4,h5,h6 { 48 | color: #000000; 49 | cursor: text; 50 | font-weight: bold; 51 | margin: 30px 0 10px; 52 | padding: 0; 53 | } 54 | 55 | h1,h2,h3 { 56 | margin: 40px 0 10px; 57 | } 58 | 59 | h1 { 60 | margin: 70px 0 30px; 61 | padding-top: 20px; 62 | } 63 | 64 | div.part h1 { 65 | border-top: 1px dotted #CCCCCC; 66 | } 67 | 68 | h1,h1 code { 69 | font-size: 32px; 70 | } 71 | 72 | h2,h2 code { 73 | font-size: 24px; 74 | } 75 | 76 | h3,h3 code { 77 | font-size: 20px; 78 | } 79 | 80 | h4,h1 code,h5,h5 code,h6,h6 code { 81 | font-size: 18px; 82 | } 83 | 84 | div.book,div.chapter,div.appendix,div.part,div.preface { 85 | min-width: 300px; 86 | max-width: 1200px; 87 | margin: 0 auto; 88 | } 89 | 90 | p.releaseinfo { 91 | font-weight: bold; 92 | margin-bottom: 40px; 93 | margin-top: 40px; 94 | } 95 | 96 | div.authorgroup { 97 | line-height: 1; 98 | } 99 | 100 | p.copyright { 101 | line-height: 1; 102 | margin-bottom: -5px; 103 | } 104 | 105 | .legalnotice p { 106 | font-style: italic; 107 | font-size: 14px; 108 | line-height: 1; 109 | } 110 | 111 | div.titlepage+p,div.titlepage+p { 112 | margin-top: 0; 113 | } 114 | 115 | pre { 116 | line-height: 1.0; 117 | color: black; 118 | } 119 | 120 | a { 121 | color: #4183C4; 122 | text-decoration: none; 123 | } 124 | 125 | p { 126 | margin: 15px 0; 127 | text-align: left; 128 | } 129 | 130 | ul,ol { 131 | padding-left: 30px; 132 | } 133 | 134 | li p { 135 | margin: 0; 136 | } 137 | 138 | div.table { 139 | margin: 1em; 140 | padding: 0.5em; 141 | text-align: center; 142 | } 143 | 144 | div.table table,div.informaltable table { 145 | display: table; 146 | width: 100%; 147 | } 148 | 149 | div.table td { 150 | padding-left: 7px; 151 | padding-right: 7px; 152 | } 153 | 154 | .sidebar { 155 | line-height: 1.4; 156 | padding: 0 20px; 157 | background-color: #F8F8F8; 158 | border: 1px solid #CCCCCC; 159 | border-radius: 3px 3px 3px 3px; 160 | } 161 | 162 | .sidebar p.title { 163 | color: #6D180B; 164 | } 165 | 166 | pre.programlisting,pre.screen { 167 | font-size: 15px; 168 | padding: 6px 10px; 169 | background-color: #F8F8F8; 170 | border: 1px solid #CCCCCC; 171 | border-radius: 3px 3px 3px 3px; 172 | clear: both; 173 | overflow: auto; 174 | line-height: 1.4; 175 | font-family: Consolas, "Liberation Mono", Courier, monospace; 176 | } 177 | 178 | table { 179 | border-collapse: collapse; 180 | border-spacing: 0; 181 | border: 1px solid #DDDDDD !important; 182 | border-radius: 4px !important; 183 | border-collapse: separate !important; 184 | line-height: 1.6; 185 | } 186 | 187 | table thead { 188 | background: #F5F5F5; 189 | } 190 | 191 | table tr { 192 | border: none; 193 | border-bottom: none; 194 | } 195 | 196 | table th { 197 | font-weight: bold; 198 | } 199 | 200 | table th,table td { 201 | border: none !important; 202 | padding: 6px 13px; 203 | } 204 | 205 | table tr:nth-child(2n) { 206 | background-color: #F8F8F8; 207 | } 208 | 209 | td p { 210 | margin: 0 0 15px 0; 211 | } 212 | 213 | div.table-contents td p { 214 | margin: 0; 215 | } 216 | 217 | div.important *,div.note *,div.tip *,div.warning *,div.navheader *,div.navfooter *,div.calloutlist * 218 | { 219 | border: none !important; 220 | background: none !important; 221 | margin: 0; 222 | } 223 | 224 | div.important p,div.note p,div.tip p,div.warning p { 225 | color: #6F6F6F; 226 | line-height: 1.6; 227 | } 228 | 229 | div.important code,div.note code,div.tip code,div.warning code { 230 | background-color: #F2F2F2 !important; 231 | border: 1px solid #CCCCCC !important; 232 | border-radius: 4px !important; 233 | padding: 1px 3px 0 !important; 234 | text-shadow: none !important; 235 | white-space: nowrap !important; 236 | } 237 | 238 | .note th,.tip th,.warning th { 239 | display: none; 240 | } 241 | 242 | .note tr:first-child td,.tip tr:first-child td,.warning tr:first-child td 243 | { 244 | border-right: 1px solid #CCCCCC !important; 245 | padding-top: 10px; 246 | } 247 | 248 | div.calloutlist p,div.calloutlist td { 249 | padding: 0; 250 | margin: 0; 251 | } 252 | 253 | div.calloutlist>table>tbody>tr>td:first-child { 254 | padding-left: 10px; 255 | width: 30px !important; 256 | } 257 | 258 | div.important,div.note,div.tip,div.warning { 259 | margin-left: 0px !important; 260 | margin-right: 20px !important; 261 | margin-top: 20px; 262 | margin-bottom: 20px; 263 | padding-top: 10px; 264 | padding-bottom: 10px; 265 | } 266 | 267 | div.toc { 268 | line-height: 1.2; 269 | } 270 | 271 | dl,dt { 272 | margin-top: 1px; 273 | margin-bottom: 0; 274 | } 275 | 276 | div.toc>dl>dt { 277 | font-size: 32px; 278 | font-weight: bold; 279 | margin: 30px 0 10px 0; 280 | display: block; 281 | } 282 | 283 | div.toc>dl>dd>dl>dt { 284 | font-size: 24px; 285 | font-weight: bold; 286 | margin: 20px 0 10px 0; 287 | display: block; 288 | } 289 | 290 | div.toc>dl>dd>dl>dd>dl>dt { 291 | font-weight: bold; 292 | font-size: 20px; 293 | margin: 10px 0 0 0; 294 | } 295 | 296 | tbody.footnotes * { 297 | border: none !important; 298 | } 299 | 300 | div.footnote p { 301 | margin: 0; 302 | line-height: 1; 303 | } 304 | 305 | div.footnote p sup { 306 | margin-right: 6px; 307 | vertical-align: middle; 308 | } 309 | 310 | div.navheader { 311 | border-bottom: 1px solid #CCCCCC; 312 | } 313 | 314 | div.navfooter { 315 | border-top: 1px solid #CCCCCC; 316 | } 317 | 318 | .title { 319 | margin-left: -1em; 320 | padding-left: 1em; 321 | } 322 | 323 | .title>a { 324 | position: absolute; 325 | visibility: hidden; 326 | display: block; 327 | font-size: 0.85em; 328 | margin-top: 0.05em; 329 | margin-left: -1em; 330 | vertical-align: text-top; 331 | color: black; 332 | } 333 | 334 | .title>a:before { 335 | content: "\00A7"; 336 | } 337 | 338 | .title:hover>a,.title>a:hover,.title:hover>a:hover { 339 | visibility: visible; 340 | } 341 | 342 | .title:focus>a,.title>a:focus,.title:focus>a:focus { 343 | outline: 0; 344 | } 345 | 346 | .mediaobject img { 347 | max-width: 100%; 348 | } 349 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/checkstyle/checkstyle.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 59 | 60 | 61 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 152 | 153 | 154 | 166 | 167 | 168 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/docbook/xsl/xslthl/css-hl.xml: -------------------------------------------------------------------------------- 1 | 2 | 32 | 33 | 34 | /* 35 | */ 36 | 37 | 38 | " 39 | \ 40 | 41 | 42 | 43 | ' 44 | \ 45 | 46 | 47 | 48 | . 49 | 50 | 51 | 52 | @charset 53 | @import 54 | @media 55 | @page 56 | 57 | 58 | 59 | - 60 | azimuth 61 | background-attachment 62 | background-color 63 | background-image 64 | background-position 65 | background-repeat 66 | background 67 | border-collapse 68 | border-color 69 | border-spacing 70 | border-style 71 | border-top 72 | border-right 73 | border-bottom 74 | border-left 75 | border-top-color 76 | border-right-color 77 | border-bottom-color 78 | border-left-color 79 | border-top-style 80 | border-right-style 81 | border-bottom-style 82 | border-left-style 83 | border-top-width 84 | border-right-width 85 | border-bottom-width 86 | border-left-width 87 | border-width 88 | border 89 | bottom 90 | caption-side 91 | clear 92 | clip 93 | color 94 | content 95 | counter-increment 96 | counter-reset 97 | cue-after 98 | cue-before 99 | cue 100 | cursor 101 | direction 102 | display 103 | elevation 104 | empty-cells 105 | float 106 | font-family 107 | font-size 108 | font-style 109 | font-variant 110 | font-weight 111 | font 112 | height 113 | left 114 | letter-spacing 115 | line-height 116 | list-style-image 117 | list-style-position 118 | list-style-type 119 | list-style 120 | margin-right 121 | margin-left 122 | margin-top 123 | margin-bottom 124 | margin 125 | max-height 126 | max-width 127 | min-height 128 | min-width 129 | orphans 130 | outline-color 131 | outline-style 132 | outline-width 133 | outline 134 | overflow 135 | padding-top 136 | padding-right 137 | padding-bottom 138 | padding-left 139 | padding 140 | page-break-after 141 | page-break-before 142 | page-break-inside 143 | pause-after 144 | pause-before 145 | pause 146 | pitch-range 147 | pitch 148 | play-during 149 | position 150 | quotes 151 | richness 152 | right 153 | speak-header 154 | speak-numeral 155 | speak-punctuation 156 | speak 157 | speech-rate 158 | stress 159 | table-layout 160 | text-align 161 | text-decoration 162 | text-indent 163 | text-transform 164 | top 165 | unicode-bidi 166 | vertical-align 167 | visibility 168 | voice-family 169 | volume 170 | white-space 171 | widows 172 | width 173 | word-spacing 174 | z-index 175 | 176 | 177 | -------------------------------------------------------------------------------- /mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven2 Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # 58 | # Look for the Apple JDKs first to preserve the existing behaviour, and then look 59 | # for the new JDKs provided by Oracle. 60 | # 61 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then 62 | # 63 | # Apple JDKs 64 | # 65 | export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home 66 | fi 67 | 68 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then 69 | # 70 | # Apple JDKs 71 | # 72 | export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 73 | fi 74 | 75 | if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then 76 | # 77 | # Oracle JDKs 78 | # 79 | export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 80 | fi 81 | 82 | if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then 83 | # 84 | # Apple JDKs 85 | # 86 | export JAVA_HOME=`/usr/libexec/java_home` 87 | fi 88 | ;; 89 | esac 90 | 91 | if [ -z "$JAVA_HOME" ] ; then 92 | if [ -r /etc/gentoo-release ] ; then 93 | JAVA_HOME=`java-config --jre-home` 94 | fi 95 | fi 96 | 97 | if [ -z "$M2_HOME" ] ; then 98 | ## resolve links - $0 may be a link to maven's home 99 | PRG="$0" 100 | 101 | # need this for relative symlinks 102 | while [ -h "$PRG" ] ; do 103 | ls=`ls -ld "$PRG"` 104 | link=`expr "$ls" : '.*-> \(.*\)$'` 105 | if expr "$link" : '/.*' > /dev/null; then 106 | PRG="$link" 107 | else 108 | PRG="`dirname "$PRG"`/$link" 109 | fi 110 | done 111 | 112 | saveddir=`pwd` 113 | 114 | M2_HOME=`dirname "$PRG"`/.. 115 | 116 | # make it fully qualified 117 | M2_HOME=`cd "$M2_HOME" && pwd` 118 | 119 | cd "$saveddir" 120 | # echo Using m2 at $M2_HOME 121 | fi 122 | 123 | # For Cygwin, ensure paths are in UNIX format before anything is touched 124 | if $cygwin ; then 125 | [ -n "$M2_HOME" ] && 126 | M2_HOME=`cygpath --unix "$M2_HOME"` 127 | [ -n "$JAVA_HOME" ] && 128 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 129 | [ -n "$CLASSPATH" ] && 130 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 131 | fi 132 | 133 | # For Migwn, ensure paths are in UNIX format before anything is touched 134 | if $mingw ; then 135 | [ -n "$M2_HOME" ] && 136 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 137 | [ -n "$JAVA_HOME" ] && 138 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 139 | # TODO classpath? 140 | fi 141 | 142 | if [ -z "$JAVA_HOME" ]; then 143 | javaExecutable="`which javac`" 144 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 145 | # readlink(1) is not available as standard on Solaris 10. 146 | readLink=`which readlink` 147 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 148 | if $darwin ; then 149 | javaHome="`dirname \"$javaExecutable\"`" 150 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 151 | else 152 | javaExecutable="`readlink -f \"$javaExecutable\"`" 153 | fi 154 | javaHome="`dirname \"$javaExecutable\"`" 155 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 156 | JAVA_HOME="$javaHome" 157 | export JAVA_HOME 158 | fi 159 | fi 160 | fi 161 | 162 | if [ -z "$JAVACMD" ] ; then 163 | if [ -n "$JAVA_HOME" ] ; then 164 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 165 | # IBM's JDK on AIX uses strange locations for the executables 166 | JAVACMD="$JAVA_HOME/jre/sh/java" 167 | else 168 | JAVACMD="$JAVA_HOME/bin/java" 169 | fi 170 | else 171 | JAVACMD="`which java`" 172 | fi 173 | fi 174 | 175 | if [ ! -x "$JAVACMD" ] ; then 176 | echo "Error: JAVA_HOME is not defined correctly." >&2 177 | echo " We cannot execute $JAVACMD" >&2 178 | exit 1 179 | fi 180 | 181 | if [ -z "$JAVA_HOME" ] ; then 182 | echo "Warning: JAVA_HOME environment variable is not set." 183 | fi 184 | 185 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 186 | 187 | # For Cygwin, switch paths to Windows format before running java 188 | if $cygwin; then 189 | [ -n "$M2_HOME" ] && 190 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 191 | [ -n "$JAVA_HOME" ] && 192 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 193 | [ -n "$CLASSPATH" ] && 194 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 195 | fi 196 | 197 | # traverses directory structure from process work directory to filesystem root 198 | # first directory with .mvn subdirectory is considered project base directory 199 | find_maven_basedir() { 200 | local basedir=$(pwd) 201 | local wdir=$(pwd) 202 | while [ "$wdir" != '/' ] ; do 203 | if [ -d "$wdir"/.mvn ] ; then 204 | basedir=$wdir 205 | break 206 | fi 207 | wdir=$(cd "$wdir/.."; pwd) 208 | done 209 | echo "${basedir}" 210 | } 211 | 212 | # concatenates all lines of a file 213 | concat_lines() { 214 | if [ -f "$1" ]; then 215 | echo "$(tr -s '\n' ' ' < "$1")" 216 | fi 217 | } 218 | 219 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} 220 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 221 | 222 | # Provide a "standardized" way to retrieve the CLI args that will 223 | # work with both Windows and non-Windows executions. 224 | MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" 225 | export MAVEN_CMD_LINE_ARGS 226 | 227 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 228 | 229 | exec "$JAVACMD" \ 230 | $MAVEN_OPTS \ 231 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 232 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 233 | ${WRAPPER_LAUNCHER} "$@" 234 | 235 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | 203 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | spring-cloud-dataflow-server-mesos-docs 5 | 1.1.0.BUILD-SNAPSHOT 6 | 7 | org.springframework.cloud 8 | spring-cloud-dataflow-server-mesos-parent 9 | 1.1.0.BUILD-SNAPSHOT 10 | 11 | spring-cloud-dataflow-server-mesos-docs 12 | 13 | ${basedir}/.. 14 | 15 | 16 | 17 | org.springframework.cloud 18 | spring-cloud-dataflow-server-mesos 19 | ${project.version} 20 | 21 | 22 | 23 | 24 | full 25 | 26 | 27 | 28 | org.apache.maven.plugins 29 | maven-javadoc-plugin 30 | 2.10.1 31 | 32 | 33 | attach-javadocs 34 | 35 | jar 36 | 37 | prepare-package 38 | 39 | true 40 | 41 | ${project.groupId}:* 42 | 43 | false 44 | true 45 | ${basedir}/src/main/javadoc/spring-javadoc.css 46 | 47 | http://docs.spring.io/spring-framework/docs/${spring.version}/javadoc-api/ 48 | http://docs.spring.io/spring-shell/docs/current/api/ 49 | 50 | 51 | 52 | 53 | 54 | 55 | org.asciidoctor 56 | asciidoctor-maven-plugin 57 | 1.5.3 58 | 59 | index.adoc 60 | book 61 | 62 | true 63 | warn 64 | ${project.version} 65 | ${project.artifactId} 66 | ${version-type-lowercase} 67 | ${spring-cloud-dataflow.version} 68 | ${dataflow-version-type-lowercase} 69 | 70 | 71 | 72 | 73 | generate-docbook 74 | generate-resources 75 | 76 | process-asciidoc 77 | 78 | 79 | index.adoc 80 | docbook5 81 | book 82 | 83 | true 84 | 85 | 86 | 87 | 88 | generate-html5 89 | generate-resources 90 | 91 | process-asciidoc 92 | 93 | 94 | html5 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | com.agilejava.docbkx 104 | docbkx-maven-plugin 105 | 2.0.15 106 | 107 | ${basedir}/target/generated-docs 108 | 109 | 0 110 | index.xml 111 | true 112 | false 113 | ${basedir}/src/main/docbook/xsl/pdf.xsl 114 | 1 115 | 1 116 | 1 117 | ${basedir}/src/main/docbook/xsl/xslthl-config.xml 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | net.sf.xslthl 127 | xslthl 128 | 2.1.0 129 | 130 | 131 | net.sf.docbook 132 | docbook-xml 133 | 5.0-all 134 | resources 135 | zip 136 | runtime 137 | 138 | 139 | 140 | 141 | html-single 142 | 143 | generate-html 144 | 145 | generate-resources 146 | 147 | ${basedir}/src/main/docbook/xsl/html-singlepage.xsl 148 | ${basedir}/target/docbook/htmlsingle 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | html 166 | 167 | generate-html 168 | 169 | generate-resources 170 | 171 | ${basedir}/src/main/docbook/xsl/html-multipage.xsl 172 | ${basedir}/target/docbook/html 173 | true 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | pdf 191 | 192 | generate-pdf 193 | 194 | generate-resources 195 | 196 | ${basedir}/src/main/docbook/xsl/pdf.xsl 197 | ${basedir}/target/docbook/pdf 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | epub 211 | 212 | generate-epub3 213 | 214 | generate-resources 215 | 216 | ${basedir}/src/main/docbook/xsl/epub.xsl 217 | ${basedir}/target/docbook/epub 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | org.apache.maven.plugins 238 | maven-antrun-plugin 239 | 1.8 240 | 241 | 242 | ant-contrib 243 | ant-contrib 244 | 1.0b3 245 | 246 | 247 | ant 248 | ant 249 | 250 | 251 | 252 | 253 | org.apache.ant 254 | ant-nodeps 255 | 1.8.1 256 | 257 | 258 | org.tigris.antelope 259 | antelopetasks 260 | 3.2.10 261 | 262 | 263 | 264 | 265 | package-and-attach-docs-zip 266 | package 267 | 268 | run 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | setup-maven-properties 281 | validate 282 | 283 | run 284 | 285 | 286 | true 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | org.codehaus.mojo 314 | build-helper-maven-plugin 315 | 1.9.1 316 | 317 | 318 | attach-zip 319 | 320 | attach-artifact 321 | 322 | 323 | 324 | 325 | ${project.build.directory}/${project.artifactId}-${project.version}.zip 326 | zip;zip.type=docs;zip.deployed=false 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/javadoc/spring-javadoc.css: -------------------------------------------------------------------------------- 1 | /* Javadoc style sheet */ 2 | /* 3 | Overall document style 4 | */ 5 | 6 | @import url('resources/fonts/dejavu.css'); 7 | 8 | body { 9 | background-color:#ffffff; 10 | color:#353833; 11 | font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; 12 | font-size:14px; 13 | margin:0; 14 | } 15 | a:link, a:visited { 16 | text-decoration:none; 17 | color:#4A6782; 18 | } 19 | a:hover, a:focus { 20 | text-decoration:none; 21 | color:#bb7a2a; 22 | } 23 | a:active { 24 | text-decoration:none; 25 | color:#4A6782; 26 | } 27 | a[name] { 28 | color:#353833; 29 | } 30 | a[name]:hover { 31 | text-decoration:none; 32 | color:#353833; 33 | } 34 | pre { 35 | font-family:'DejaVu Sans Mono', monospace; 36 | font-size:14px; 37 | } 38 | h1 { 39 | font-size:20px; 40 | } 41 | h2 { 42 | font-size:18px; 43 | } 44 | h3 { 45 | font-size:16px; 46 | font-style:italic; 47 | } 48 | h4 { 49 | font-size:13px; 50 | } 51 | h5 { 52 | font-size:12px; 53 | } 54 | h6 { 55 | font-size:11px; 56 | } 57 | ul { 58 | list-style-type:disc; 59 | } 60 | code, tt { 61 | font-family:'DejaVu Sans Mono', monospace; 62 | font-size:14px; 63 | padding-top:4px; 64 | margin-top:8px; 65 | line-height:1.4em; 66 | } 67 | dt code { 68 | font-family:'DejaVu Sans Mono', monospace; 69 | font-size:14px; 70 | padding-top:4px; 71 | } 72 | table tr td dt code { 73 | font-family:'DejaVu Sans Mono', monospace; 74 | font-size:14px; 75 | vertical-align:top; 76 | padding-top:4px; 77 | } 78 | sup { 79 | font-size:8px; 80 | } 81 | /* 82 | Document title and Copyright styles 83 | */ 84 | .clear { 85 | clear:both; 86 | height:0px; 87 | overflow:hidden; 88 | } 89 | .aboutLanguage { 90 | float:right; 91 | padding:0px 21px; 92 | font-size:11px; 93 | z-index:200; 94 | margin-top:-9px; 95 | } 96 | .legalCopy { 97 | margin-left:.5em; 98 | } 99 | .bar a, .bar a:link, .bar a:visited, .bar a:active { 100 | color:#FFFFFF; 101 | text-decoration:none; 102 | } 103 | .bar a:hover, .bar a:focus { 104 | color:#bb7a2a; 105 | } 106 | .tab { 107 | background-color:#0066FF; 108 | color:#ffffff; 109 | padding:8px; 110 | width:5em; 111 | font-weight:bold; 112 | } 113 | /* 114 | Navigation bar styles 115 | */ 116 | .bar { 117 | background-color:#4D7A97; 118 | color:#FFFFFF; 119 | padding:.8em .5em .4em .8em; 120 | height:auto;/*height:1.8em;*/ 121 | font-size:11px; 122 | margin:0; 123 | } 124 | .topNav { 125 | background-color:#4D7A97; 126 | color:#FFFFFF; 127 | float:left; 128 | padding:0; 129 | width:100%; 130 | clear:right; 131 | height:2.8em; 132 | padding-top:10px; 133 | overflow:hidden; 134 | font-size:12px; 135 | } 136 | .bottomNav { 137 | margin-top:10px; 138 | background-color:#4D7A97; 139 | color:#FFFFFF; 140 | float:left; 141 | padding:0; 142 | width:100%; 143 | clear:right; 144 | height:2.8em; 145 | padding-top:10px; 146 | overflow:hidden; 147 | font-size:12px; 148 | } 149 | .subNav { 150 | background-color:#dee3e9; 151 | float:left; 152 | width:100%; 153 | overflow:hidden; 154 | font-size:12px; 155 | } 156 | .subNav div { 157 | clear:left; 158 | float:left; 159 | padding:0 0 5px 6px; 160 | text-transform:uppercase; 161 | } 162 | ul.navList, ul.subNavList { 163 | float:left; 164 | margin:0 25px 0 0; 165 | padding:0; 166 | } 167 | ul.navList li{ 168 | list-style:none; 169 | float:left; 170 | padding: 5px 6px; 171 | text-transform:uppercase; 172 | } 173 | ul.subNavList li{ 174 | list-style:none; 175 | float:left; 176 | } 177 | .topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { 178 | color:#FFFFFF; 179 | text-decoration:none; 180 | text-transform:uppercase; 181 | } 182 | .topNav a:hover, .bottomNav a:hover { 183 | text-decoration:none; 184 | color:#bb7a2a; 185 | text-transform:uppercase; 186 | } 187 | .navBarCell1Rev { 188 | background-color:#F8981D; 189 | color:#253441; 190 | margin: auto 5px; 191 | } 192 | .skipNav { 193 | position:absolute; 194 | top:auto; 195 | left:-9999px; 196 | overflow:hidden; 197 | } 198 | /* 199 | Page header and footer styles 200 | */ 201 | .header, .footer { 202 | clear:both; 203 | margin:0 20px; 204 | padding:5px 0 0 0; 205 | } 206 | .indexHeader { 207 | margin:10px; 208 | position:relative; 209 | } 210 | .indexHeader span{ 211 | margin-right:15px; 212 | } 213 | .indexHeader h1 { 214 | font-size:13px; 215 | } 216 | .title { 217 | color:#2c4557; 218 | margin:10px 0; 219 | } 220 | .subTitle { 221 | margin:5px 0 0 0; 222 | } 223 | .header ul { 224 | margin:0 0 15px 0; 225 | padding:0; 226 | } 227 | .footer ul { 228 | margin:20px 0 5px 0; 229 | } 230 | .header ul li, .footer ul li { 231 | list-style:none; 232 | font-size:13px; 233 | } 234 | /* 235 | Heading styles 236 | */ 237 | div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { 238 | background-color:#dee3e9; 239 | border:1px solid #d0d9e0; 240 | margin:0 0 6px -8px; 241 | padding:7px 5px; 242 | } 243 | ul.blockList ul.blockList ul.blockList li.blockList h3 { 244 | background-color:#dee3e9; 245 | border:1px solid #d0d9e0; 246 | margin:0 0 6px -8px; 247 | padding:7px 5px; 248 | } 249 | ul.blockList ul.blockList li.blockList h3 { 250 | padding:0; 251 | margin:15px 0; 252 | } 253 | ul.blockList li.blockList h2 { 254 | padding:0px 0 20px 0; 255 | } 256 | /* 257 | Page layout container styles 258 | */ 259 | .contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { 260 | clear:both; 261 | padding:10px 20px; 262 | position:relative; 263 | } 264 | .indexContainer { 265 | margin:10px; 266 | position:relative; 267 | font-size:12px; 268 | } 269 | .indexContainer h2 { 270 | font-size:13px; 271 | padding:0 0 3px 0; 272 | } 273 | .indexContainer ul { 274 | margin:0; 275 | padding:0; 276 | } 277 | .indexContainer ul li { 278 | list-style:none; 279 | padding-top:2px; 280 | } 281 | .contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { 282 | font-size:12px; 283 | font-weight:bold; 284 | margin:10px 0 0 0; 285 | color:#4E4E4E; 286 | } 287 | .contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { 288 | margin:5px 0 10px 0px; 289 | font-size:14px; 290 | font-family:'DejaVu Sans Mono',monospace; 291 | } 292 | .serializedFormContainer dl.nameValue dt { 293 | margin-left:1px; 294 | font-size:1.1em; 295 | display:inline; 296 | font-weight:bold; 297 | } 298 | .serializedFormContainer dl.nameValue dd { 299 | margin:0 0 0 1px; 300 | font-size:1.1em; 301 | display:inline; 302 | } 303 | /* 304 | List styles 305 | */ 306 | ul.horizontal li { 307 | display:inline; 308 | font-size:0.9em; 309 | } 310 | ul.inheritance { 311 | margin:0; 312 | padding:0; 313 | } 314 | ul.inheritance li { 315 | display:inline; 316 | list-style:none; 317 | } 318 | ul.inheritance li ul.inheritance { 319 | margin-left:15px; 320 | padding-left:15px; 321 | padding-top:1px; 322 | } 323 | ul.blockList, ul.blockListLast { 324 | margin:10px 0 10px 0; 325 | padding:0; 326 | } 327 | ul.blockList li.blockList, ul.blockListLast li.blockList { 328 | list-style:none; 329 | margin-bottom:15px; 330 | line-height:1.4; 331 | } 332 | ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { 333 | padding:0px 20px 5px 10px; 334 | border:1px solid #ededed; 335 | background-color:#f8f8f8; 336 | } 337 | ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { 338 | padding:0 0 5px 8px; 339 | background-color:#ffffff; 340 | border:none; 341 | } 342 | ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { 343 | margin-left:0; 344 | padding-left:0; 345 | padding-bottom:15px; 346 | border:none; 347 | } 348 | ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { 349 | list-style:none; 350 | border-bottom:none; 351 | padding-bottom:0; 352 | } 353 | table tr td dl, table tr td dl dt, table tr td dl dd { 354 | margin-top:0; 355 | margin-bottom:1px; 356 | } 357 | /* 358 | Table styles 359 | */ 360 | .overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { 361 | width:100%; 362 | border-left:1px solid #EEE; 363 | border-right:1px solid #EEE; 364 | border-bottom:1px solid #EEE; 365 | } 366 | .overviewSummary, .memberSummary { 367 | padding:0px; 368 | } 369 | .overviewSummary caption, .memberSummary caption, .typeSummary caption, 370 | .useSummary caption, .constantsSummary caption, .deprecatedSummary caption { 371 | position:relative; 372 | text-align:left; 373 | background-repeat:no-repeat; 374 | color:#253441; 375 | font-weight:bold; 376 | clear:none; 377 | overflow:hidden; 378 | padding:0px; 379 | padding-top:10px; 380 | padding-left:1px; 381 | margin:0px; 382 | white-space:pre; 383 | } 384 | .overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, 385 | .useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, 386 | .overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, 387 | .useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, 388 | .overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, 389 | .useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, 390 | .overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, 391 | .useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { 392 | color:#FFFFFF; 393 | } 394 | .overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, 395 | .useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { 396 | white-space:nowrap; 397 | padding-top:5px; 398 | padding-left:12px; 399 | padding-right:12px; 400 | padding-bottom:7px; 401 | display:inline-block; 402 | float:left; 403 | background-color:#F8981D; 404 | border: none; 405 | height:16px; 406 | } 407 | .memberSummary caption span.activeTableTab span { 408 | white-space:nowrap; 409 | padding-top:5px; 410 | padding-left:12px; 411 | padding-right:12px; 412 | margin-right:3px; 413 | display:inline-block; 414 | float:left; 415 | background-color:#F8981D; 416 | height:16px; 417 | } 418 | .memberSummary caption span.tableTab span { 419 | white-space:nowrap; 420 | padding-top:5px; 421 | padding-left:12px; 422 | padding-right:12px; 423 | margin-right:3px; 424 | display:inline-block; 425 | float:left; 426 | background-color:#4D7A97; 427 | height:16px; 428 | } 429 | .memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { 430 | padding-top:0px; 431 | padding-left:0px; 432 | padding-right:0px; 433 | background-image:none; 434 | float:none; 435 | display:inline; 436 | } 437 | .overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, 438 | .useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { 439 | display:none; 440 | width:5px; 441 | position:relative; 442 | float:left; 443 | background-color:#F8981D; 444 | } 445 | .memberSummary .activeTableTab .tabEnd { 446 | display:none; 447 | width:5px; 448 | margin-right:3px; 449 | position:relative; 450 | float:left; 451 | background-color:#F8981D; 452 | } 453 | .memberSummary .tableTab .tabEnd { 454 | display:none; 455 | width:5px; 456 | margin-right:3px; 457 | position:relative; 458 | background-color:#4D7A97; 459 | float:left; 460 | 461 | } 462 | .overviewSummary td, .memberSummary td, .typeSummary td, 463 | .useSummary td, .constantsSummary td, .deprecatedSummary td { 464 | text-align:left; 465 | padding:0px 0px 12px 10px; 466 | width:100%; 467 | } 468 | th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, 469 | td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ 470 | vertical-align:top; 471 | padding-right:0px; 472 | padding-top:8px; 473 | padding-bottom:3px; 474 | } 475 | th.colFirst, th.colLast, th.colOne, .constantsSummary th { 476 | background:#dee3e9; 477 | text-align:left; 478 | padding:8px 3px 3px 7px; 479 | } 480 | td.colFirst, th.colFirst { 481 | white-space:nowrap; 482 | font-size:13px; 483 | } 484 | td.colLast, th.colLast { 485 | font-size:13px; 486 | } 487 | td.colOne, th.colOne { 488 | font-size:13px; 489 | } 490 | .overviewSummary td.colFirst, .overviewSummary th.colFirst, 491 | .overviewSummary td.colOne, .overviewSummary th.colOne, 492 | .memberSummary td.colFirst, .memberSummary th.colFirst, 493 | .memberSummary td.colOne, .memberSummary th.colOne, 494 | .typeSummary td.colFirst{ 495 | width:25%; 496 | vertical-align:top; 497 | } 498 | td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { 499 | font-weight:bold; 500 | } 501 | .tableSubHeadingColor { 502 | background-color:#EEEEFF; 503 | } 504 | .altColor { 505 | background-color:#FFFFFF; 506 | } 507 | .rowColor { 508 | background-color:#EEEEEF; 509 | } 510 | /* 511 | Content styles 512 | */ 513 | .description pre { 514 | margin-top:0; 515 | } 516 | .deprecatedContent { 517 | margin:0; 518 | padding:10px 0; 519 | } 520 | .docSummary { 521 | padding:0; 522 | } 523 | 524 | ul.blockList ul.blockList ul.blockList li.blockList h3 { 525 | font-style:normal; 526 | } 527 | 528 | div.block { 529 | font-size:14px; 530 | font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; 531 | } 532 | 533 | td.colLast div { 534 | padding-top:0px; 535 | } 536 | 537 | 538 | td.colLast a { 539 | padding-bottom:3px; 540 | } 541 | /* 542 | Formatting effect styles 543 | */ 544 | .sourceLineNo { 545 | color:green; 546 | padding:0 30px 0 0; 547 | } 548 | h1.hidden { 549 | visibility:hidden; 550 | overflow:hidden; 551 | font-size:10px; 552 | } 553 | .block { 554 | display:block; 555 | margin:3px 10px 2px 0px; 556 | color:#474747; 557 | } 558 | .deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, 559 | .overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, 560 | .seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { 561 | font-weight:bold; 562 | } 563 | .deprecationComment, .emphasizedPhrase, .interfaceName { 564 | font-style:italic; 565 | } 566 | 567 | div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, 568 | div.block div.block span.interfaceName { 569 | font-style:normal; 570 | } 571 | 572 | div.contentContainer ul.blockList li.blockList h2{ 573 | padding-bottom:0px; 574 | } 575 | 576 | 577 | 578 | /* 579 | Spring 580 | */ 581 | 582 | pre.code { 583 | background-color: #F8F8F8; 584 | border: 1px solid #CCCCCC; 585 | border-radius: 3px 3px 3px 3px; 586 | overflow: auto; 587 | padding: 10px; 588 | margin: 4px 20px 2px 0px; 589 | } 590 | 591 | pre.code code, pre.code code * { 592 | font-size: 1em; 593 | } 594 | 595 | pre.code code, pre.code code * { 596 | padding: 0 !important; 597 | margin: 0 !important; 598 | } 599 | 600 | -------------------------------------------------------------------------------- /spring-cloud-dataflow-server-mesos-docs/src/main/asciidoc/getting-started.adoc: -------------------------------------------------------------------------------- 1 | = Getting Started 2 | 3 | == Deploying Streams and Tasks on Apache Mesos and Marathon/Chronos 4 | 5 | In this getting started the Data Flow Server is running as a Docker container in Marathon and so are all the dependent services like a relational database for stream and task repositories, a message bus for stream apps and the key value store for analytics. 6 | 7 | . Deploy a Mesos and Marathon cluster. 8 | + 9 | The https://open.mesosphere.com/getting-started/tools/[Mesosphere getting started guide] provides a number of options for you to deploy a cluster. There is also a number of options listed on Mesosphere's https://dcos.io/install/[Install DC/OS] page. In <> we describe how we configured a local test cluster using the DC/OS Vagrant project. 10 | + 11 | NOTE: The more recent DC/OS versions include Marathon version 3.0 which has changed the API endpoints. The 1.2 version of Spring Cloud Deployer for Mesos now support this Chronos 3.0 version but it is no longer compatible with older Chronos versions. 12 | + 13 | The rest of this getting started guide assumes that you have a working Mesos and Marathon cluster and know the Marathon endpoint URL. 14 | + 15 | We are using the Marathon endpoint URL of http://m1.dcos/service/marathon[http://m1.dcos/service/marathon] for this document. 16 | + 17 | . Create a MySQL service on the Mesos cluster. 18 | + 19 | The `mysql` service will be used for storing stream and task definitions in the stream and task repositories. There is a sample https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow-server-mesos/{git-branch-tag}/src/etc/marathon/mysql.json[application JSON file for MySQL] in the `spring-cloud-dataflow-server-mesos` repository that you can use as a starting point. The service discovery mechanism is currently disabled so you need to look up the host and port to use for the connection. Depending on how large your cluster is, you may want to tweak the CPU and/or memory values. 20 | + 21 | Using the above JSON file and an Mesos and Marathon cluster installed you can deploy a Rabbit MQ application instance by issuing the following command 22 | + 23 | ``` 24 | curl -X POST http://m1.dcos/service/marathon/v2/apps -d @mysql.json -H "Content-type: application/json" 25 | ``` 26 | + 27 | NOTE: Note the `@` symbol to reference a file input for the `curl` command. 28 | + 29 | . Create a Rabbit MQ service on the Mesos cluster. 30 | + 31 | The `rabbitmq` service will be used for messaging between applications in the stream. There is a sample https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow-server-mesos/{git-branch-tag}/src/etc/marathon/rabbitmq.json[application JSON file for Rabbit MQ] in the `spring-cloud-dataflow-server-mesos` repository that you can use as a starting point. The service discovery mechanism is currently disabled so you need to look up the host and port to use for the connection. Depending on how large your cluster is, you may want to tweak the CPU and/or memory values. 32 | + 33 | Using the above JSON file and an Mesos and Marathon cluster installed you can deploy a Rabbit MQ service instance by issuing the following command 34 | + 35 | ``` 36 | curl -X POST http://m1.dcos/service/marathon/v2/apps -d @rabbitmq.json -H "Content-type: application/json" 37 | ``` 38 | + 39 | . Create a Redis service on the Mesos cluster. 40 | + 41 | The `redis` service will be used for counters as part of the analytics. There is a sample https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow-server-mesos/{git-branch-tag}/src/etc/marathon/redis.json[application JSON file for Redis] in the `spring-cloud-dataflow-server-mesos` repository that you can use as a starting point. The service discovery mechanism is currently disabled so you need to look up the host and port to use for the connection. Depending on how large your cluster is, you may want to tweak the CPU and/or memory values. 42 | + 43 | Using the above JSON file and an Mesos and Marathon cluster installed you can deploy a Redis service instance by issuing the following command 44 | + 45 | ``` 46 | curl -X POST http://m1.dcos/service/marathon/v2/apps -d @redis.json -H "Content-type: application/json" 47 | ``` 48 | + 49 | Using the Marathon and Mesos UIs you can verify that `mysql`, `rabbitmq` and `redis` services are running on the cluster. 50 | + 51 | . Install Chronos on the Mesos cluster. 52 | + 53 | The https://mesos.github.io/chronos/[Chronos] service will be used for running task. If you haven't already installed Chronos, this is the time to do it. You can install Chronos using the DC/OS UI (under the Universe section) or from the `dcos` command line: 54 | + 55 | ``` 56 | dcos package install chronos 57 | ``` 58 | + 59 | . Download the Marathon application JSON for the Spring Cloud Data Flow Server. 60 | + 61 | Use the following command to download the Marathon application JSON file used to deploy Spring CLoud Data Flow Server for Mesos. 62 | + 63 | [source,subs="attributes"] 64 | ---- 65 | $ wget https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow-server-mesos/{git-branch-tag}/src/etc/marathon/scdf-server.json 66 | ---- 67 | + 68 | We will need to modify the Docker image tag, API endpoints and host and port settings based on the current deployment environment. We hope to eliminiate most of this in future releases and instead rely on service discovery mechanisms. For now we do have to make the modifications manually. The downloaded file should look like this: 69 | + 70 | [source,subs="attributes"] 71 | ---- 72 | include::../../../../src/etc/marathon/scdf-server.json[] 73 | ---- 74 | + 75 | First we need to modify the Docker image to use the tag `{docker-tag}`. It should be: 76 | + 77 | [source,subs="attributes"] 78 | ---- 79 | "image": "springcloud/spring-cloud-dataflow-server-mesos:{docker-tag}", 80 | ---- 81 | + 82 | In the `env` section there are several environment variables that we need to adjust. We need to provide the following properties for accessing Marathon and Chronos APIs: 83 | + 84 | ``` 85 | "MESOS_MARATHON_URI": "http://m1.dcos/service/marathon", 86 | "MESOS_CHRONOS_URI": "http://m1.dcos/service/chronos", 87 | ``` 88 | + 89 | Here we did set them to the defaults for a local Vagrant DC/OS installation. 90 | + 91 | {nbsp} 92 | + 93 | We also need to provide the database configuration properties. Look up the database host and port from the Marathon UI. For the `mysql` service that we just installed, they were `192.168.65.111:5769`. 94 | + 95 | ``` 96 | "JDBC_URL": "jdbc:mysql://192.168.65.111:5769/test", 97 | "JDBC_DRIVER": "org.mariadb.jdbc.Driver", 98 | "JDBC_USERNAME": "spring", 99 | "JDBC_PASSWORD": "secret", 100 | ``` 101 | + 102 | Next, we need to provide the message bus configuration properties. Look up the host and port for the `rabbitmq` service. In our case they were `192.168.65.121:5261`. 103 | + 104 | ``` 105 | "RABBITMQ_HOST": "192.168.65.121", 106 | "RABBITMQ_PORT": "5261", 107 | ``` 108 | + 109 | Finally we need to do the same for the key value store properties. Look up the host and port for the `redis` service. In our case they were `192.168.65.111:19902`. 110 | + 111 | ``` 112 | "REDIS_HOST": "192.168.65.111", 113 | "REDIS_PORT": "19902", 114 | ``` 115 | + 116 | You can add properties to the `SPRING_APPLICATION_JSON` property as well. You might want to set default values for memory and cpu resource request. For example `\"spring.cloud.deployer.mesos.marathon.memory\"=\"768\"` will by default allocate additional memory for the application vs. the default value of 512. You can see all the available options in the https://raw.githubusercontent.com/spring-cloud/spring-cloud-deployer-mesos/{scde-mesos-git}/src/main/java/org/springframework/cloud/deployer/spi/mesos/marathon/MarathonAppDeployerProperties.java[MarathonAppDeployerProperties.java] file. 117 | + 118 | NOTE: DC/OS in secured mode requires an Authorization header with a token when accessing the Marathon and Chronos REST end-points. To accommodate this you need to provide this token when deploying the Spring Cloud Data Flow server to a DC/OS secured cluster. See below for instructions. 119 | + 120 | If you are using a secured DC/OS cluster then you will need to add the authorization token to the above configuration. First, log in using `dcos auth login` command and enter the authentication token you get after authenticating with DC/OS web interface with the provided link. Next, run the `dcos config show core.dcos_acs_token` command to display the authorization token we need for our configuration. Copy and paste this token in the following environment variable that you add to the above application JSON: 121 | + 122 | ``` 123 | "DCOS_TOKEN": "", 124 | ``` 125 | We also need to add the `spring.cloud.deployer.mesos.dcos.authorizationToken` property to the `SPRING_APPLICATION_JSON` entry. Insert the following as another property entry: 126 | + 127 | ``` 128 | ,\"spring.cloud.deployer.mesos.dcos.authorizationToken\":\"${DCOS_TOKEN}\" 129 | ``` 130 | + 131 | . Now, deploy the Spring Cloud Data Flow Server for Mesos and Marathon/Chronos using the above modified application JSON. 132 | + 133 | [source,subs="attributes"] 134 | ---- 135 | curl -X POST http://m1.dcos/service/marathon/v2/apps -d @scdf-server.json -H "Content-type: application/json" 136 | ---- 137 | + 138 | Verify that the `spring-cloud-data-flow` application is running before proceeding. 139 | + 140 | . Download and run the Spring Cloud Data Flow shell. 141 | + 142 | [source,subs="attributes"] 143 | ---- 144 | $ wget http://repo.spring.io/{dataflow-version-type-lowercase}/org/springframework/cloud/spring-cloud-dataflow-shell/{dataflow-project-version}/spring-cloud-dataflow-shell-{dataflow-project-version}.jar 145 | 146 | $ java -jar spring-cloud-dataflow-shell-{dataflow-project-version}.jar 147 | ---- 148 | + 149 | Lookup the host and port for the `spring-cloud-data-flow` application in the Marathon UI. Use those values to configure the server URI for the shell: 150 | + 151 | ``` 152 | dataflow:>dataflow config server --uri http://192.168.65.111:20043 153 | ``` 154 | + 155 | . By default, the application registry will be empty. If you would like to register all out-of-the-box stream applications built with the RabbitMQ binder in bulk, you can with the following command. For more details, review how to link:http://docs.spring.io/spring-cloud-dataflow/docs/{scdf-core-version}/reference/html/spring-cloud-dataflow-register-apps.html[register applications]. 156 | + 157 | ``` 158 | dataflow:>app import --uri http://bit.ly/stream-applications-rabbit-docker 159 | ``` 160 | + 161 | . Deploy a simple stream in the shell 162 | + 163 | NOTE: If you need to specify any of the app specific configuration properties then you must use "long-form" of them including the app specific prefix like `--jdbc.tableName=TEST_DATA`. This is due to the server not being able to access the metadata for the Docker based starter apps. You will also not see the configuration properties listed when using the `app info` command or in the Dashboard GUI. 164 | + 165 | ``` 166 | dataflow:>stream create --name ticktock --definition "time | log" --deploy 167 | ``` 168 | + 169 | In the Mesos UI you can then look at the logs for the log sink. Look for a Mesos task with the name `log-0.log.ticktock`. 170 | + 171 | ``` 172 | 2016-04-26 18:13:03.001 INFO 1 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 173 | 2016-04-26 18:13:03.004 INFO 1 --- [ main] o.s.c.s.a.l.s.r.LogSinkRabbitApplication : Started LogSinkRabbitApplication in 7.766 seconds (JVM running for 8.24) 174 | 2016-04-26 18:13:54.443 INFO 1 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet' 175 | 2016-04-26 18:13:54.445 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started 176 | 2016-04-26 18:13:54.459 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 14 ms 177 | 2016-04-26 18:14:09.088 INFO 1 --- [time.ticktock-1] log.sink : 04/26/16 18:14:09 178 | 2016-04-26 18:14:10.077 INFO 1 --- [time.ticktock-1] log.sink : 04/26/16 18:14:10 179 | 2016-04-26 18:14:11.080 INFO 1 --- [time.ticktock-1] log.sink : 04/26/16 18:14:11 180 | 2016-04-26 18:14:12.083 INFO 1 --- [time.ticktock-1] log.sink : 04/26/16 18:14:12 181 | 2016-04-26 18:14:13.090 INFO 1 --- [time.ticktock-1] log.sink : 04/26/16 18:14:13 182 | 2016-04-26 18:14:14.091 INFO 1 --- [time.ticktock-1] log.sink : 04/26/16 18:14:14 183 | 2016-04-26 18:14:15.093 INFO 1 --- [time.ticktock-1] log.sink : 04/26/16 18:14:15 184 | 2016-04-26 18:14:16.095 INFO 1 --- [time.ticktock-1] log.sink : 04/26/16 18:14:16 185 | ``` 186 | + 187 | . Destroy the stream 188 | + 189 | ``` 190 | dataflow:>stream destroy --name ticktock 191 | ``` 192 | + 193 | . Register a task application using the shell 194 | + 195 | ``` 196 | dataflow:>app register --name timestamp --type task --uri docker:springcloudtask/timestamp-task:latest 197 | ``` 198 | + 199 | . Create and launch the task using the shell 200 | + 201 | ``` 202 | dataflow:>task create testtask --definition "timestamp" 203 | dataflow:>task launch testtask 204 | ``` 205 | + 206 | In the Mesos UI you can then look at the logs for the `testtask` task. Look for a Mesos task with the name `ChronosTask:testtask`. 207 | + 208 | ``` 209 | Starting task ct:1472062219364:0:testtask: 210 | 211 | . ____ _ __ _ _ 212 | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ 213 | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 214 | \\/ ___)| |_)| | | | | || (_| | ) ) ) ) 215 | ' |____| .__|_| |_|_| |_\__, | / / / / 216 | =========|_|==============|___/=/_/_/_/ 217 | :: Spring Boot :: (v1.3.5.RELEASE) 218 | 219 | 2016-08-24 18:10:45.957 INFO 1 --- [ main] o.s.c.t.a.t.TimestampTaskApplication : Starting TimestampTaskApplication v1.0.2.BUILD-SNAPSHOT on a2.dcos with PID 1 (/maven/timestamp-task.jar started by root in /) 220 | 2016-08-24 18:10:45.960 INFO 1 --- [ main] o.s.c.t.a.t.TimestampTaskApplication : No active profile set, falling back to default profiles: default 221 | 2016-08-24 18:10:46.003 INFO 1 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@788c6159: startup date [Wed Aug 24 18:10:46 GMT 2016]; root of context hierarchy 222 | 2016-08-24 18:10:47.051 INFO 1 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executing SQL script from class path resource [org/springframework/cloud/task/schema-mysql.sql] 223 | 2016-08-24 18:10:47.062 INFO 1 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executed SQL script from class path resource [org/springframework/cloud/task/schema-mysql.sql] in 11 ms. 224 | 2016-08-24 18:10:47.207 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 225 | 2016-08-24 18:10:47.211 INFO 1 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0 226 | 2016-08-24 18:10:47.238 INFO 1 --- [ main] TimestampTaskConfiguration$TimestampTask : 2016-08-24 18:10:47.238 227 | 2016-08-24 18:10:47.249 INFO 1 --- [ main] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@788c6159: startup date [Wed Aug 24 18:10:46 GMT 2016]; root of context hierarchy 228 | 2016-08-24 18:10:47.250 INFO 1 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Stopping beans in phase 0 229 | 2016-08-24 18:10:47.252 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown 230 | 2016-08-24 18:10:47.261 INFO 1 --- [ main] o.s.c.t.a.t.TimestampTaskApplication : Started TimestampTaskApplication in 1.62 seconds (JVM running for 2.018)``` 231 | ``` 232 | + 233 | . Destroy the task 234 | + 235 | ``` 236 | dataflow:>task destroy --name testtask 237 | ``` 238 | --------------------------------------------------------------------------------
'
"