From 6507055ba1df63ef280200fda9e9f33563e3243e Mon Sep 17 00:00:00 2001 From: Sebastien Goasguen Date: Sat, 15 Dec 2012 23:27:32 +0100 Subject: [PATCH] Change in Dev Guide to add Maven and Tools Chapter --- ...elopers_Guide.ent => Developers_Guide.ent} | 0 ...elopers_Guide.xml => Developers_Guide.xml} | 6 +- docs/en-US/building-devcloud.xml | 32 +++++++++ docs/en-US/building-prerequisites.xml | 66 ++++++++++++++++++ docs/en-US/building-with-maven-deploy.xml | 39 +++++++++++ docs/en-US/building-with-maven-steps.xml | 33 +++++++++ docs/en-US/building-with-maven.xml | 32 +++++++++ docs/en-US/devcloud-usage-mode.xml | 60 ++++++++++++++++ docs/en-US/devcloud.xml | 38 ++++++++++ docs/en-US/developer-introduction.xml | 2 +- docs/en-US/images/DevCloud-hostonly.png | Bin 0 -> 39311 bytes docs/en-US/images/DevCloud.png | Bin 0 -> 33529 bytes docs/en-US/marvin.xml | 32 +++++++++ docs/en-US/source-build.xml | 49 +++++++++++++ docs/en-US/tools.xml | 29 ++++++++ docs/publican-devguide.cfg | 2 +- 16 files changed, 416 insertions(+), 4 deletions(-) rename docs/en-US/{API_Developers_Guide.ent => Developers_Guide.ent} (100%) rename docs/en-US/{API_Developers_Guide.xml => Developers_Guide.xml} (85%) create mode 100644 docs/en-US/building-devcloud.xml create mode 100644 docs/en-US/building-prerequisites.xml create mode 100644 docs/en-US/building-with-maven-deploy.xml create mode 100644 docs/en-US/building-with-maven-steps.xml create mode 100644 docs/en-US/building-with-maven.xml create mode 100644 docs/en-US/devcloud-usage-mode.xml create mode 100644 docs/en-US/devcloud.xml create mode 100644 docs/en-US/images/DevCloud-hostonly.png create mode 100644 docs/en-US/images/DevCloud.png create mode 100644 docs/en-US/marvin.xml create mode 100644 docs/en-US/source-build.xml create mode 100644 docs/en-US/tools.xml diff --git a/docs/en-US/API_Developers_Guide.ent b/docs/en-US/Developers_Guide.ent similarity index 100% rename from docs/en-US/API_Developers_Guide.ent rename to docs/en-US/Developers_Guide.ent diff --git a/docs/en-US/API_Developers_Guide.xml b/docs/en-US/Developers_Guide.xml similarity index 85% rename from docs/en-US/API_Developers_Guide.xml rename to docs/en-US/Developers_Guide.xml index c691ad02cf6..6c09354f6a8 100644 --- a/docs/en-US/API_Developers_Guide.xml +++ b/docs/en-US/Developers_Guide.xml @@ -24,14 +24,14 @@ - &PRODUCT; API Developer's Guide + &PRODUCT; Developer's Guide Apache CloudStack 4.0.0-incubating - How to integrate with &PRODUCT; using the &PRODUCT; API. + This guide shows how to develop &PRODUCT;, use the API for operation and integration, access the usage data and use &PRODUCT; specific tools to ease development, testing and integration. @@ -45,10 +45,12 @@ + + diff --git a/docs/en-US/building-devcloud.xml b/docs/en-US/building-devcloud.xml new file mode 100644 index 00000000000..5f792c375a2 --- /dev/null +++ b/docs/en-US/building-devcloud.xml @@ -0,0 +1,32 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Building DevCloud + The DevCloud appliance can be downloaded from the wiki at . It can also be built from scratch. Code is being developed to provide this alternative build. It is based on veewee, Vagrant and Puppet. + The goal is to automate the DevCloud build and make this automation capability available to all within the source release of &PRODUCT; + This is under heavy development. The code is located in the source tree under tools/devcloud + A preliminary wiki page describes the build at https://cwiki.pache.org/CLOUDSTACK/building-devcloud.html + +
diff --git a/docs/en-US/building-prerequisites.xml b/docs/en-US/building-prerequisites.xml new file mode 100644 index 00000000000..d97ca40f2a3 --- /dev/null +++ b/docs/en-US/building-prerequisites.xml @@ -0,0 +1,66 @@ + + +%BOOK_ENTITIES; +]> + + + + +
+ Build Procedure Prerequisites + In this section we will assume that you are using the Ubuntu Linux distribution with the Advanced Packaging Tool (APT). If you are using a different distribution or OS and a different packaging tool, adapt the following instructions to your environment. To build &PRODUCT; you will need: + + + git, http://git-scm.com + sudo apt-get install git-core + + + maven, http://maven.apache.org + sudo apt-get install maven + Make sure that you installed maven 3 + $ mvn --version +Apache Maven 3.0.4 +Maven home: /usr/share/maven +Java version: 1.6.0_24, vendor: Sun Microsystems Inc. +Java home: /usr/lib/jvm/java-6-openjdk-amd64/jre +Default locale: en_US, platform encoding: UTF-8 +OS name: "linux", version: "3.2.0-33-generic", arch: "amd64", family: "unix" + + + java + set the JAVA_HOME environment variable + $ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk + + + + In addition, to deploy and run &PRODUCT; in a development environment you will need: + + + Mysql + sudo apt-get install mysql-server-5.5 + Start the mysqld service and create a cloud user with cloud as a password + + + Tomcat 6 + sudo apt-get install tomcat6 + + + +
diff --git a/docs/en-US/building-with-maven-deploy.xml b/docs/en-US/building-with-maven-deploy.xml new file mode 100644 index 00000000000..e4b9801aa30 --- /dev/null +++ b/docs/en-US/building-with-maven-deploy.xml @@ -0,0 +1,39 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Deployment and Testing Steps + Deploying the &PRODUCT; code that you compiled is a two step process: + + If you have not configured the database or modified its properties do: + mvn -P developer -pl developer -Ddeploydb + + Then you need to run the &PRODUCT; management server. To attach a debugger to it, do: + export MAVEN_OPTS="-Xmx1024 -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n" + mvn -pl :cloud-client-ui jetty:run + + + When dealing with the database, remember that you may wipe it entirely and lose any data center configuration that you may have set previously. +
+ diff --git a/docs/en-US/building-with-maven-steps.xml b/docs/en-US/building-with-maven-steps.xml new file mode 100644 index 00000000000..319654fb290 --- /dev/null +++ b/docs/en-US/building-with-maven-steps.xml @@ -0,0 +1,33 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Building Steps + &PRODUCT; uses git for source version control, first make sure you have the source code by pulling it: + git clone https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git + Several Project Object Models (POM) are defined to deal with the various build targets of &PRODUCT;. Certain features require some packages that are not compatible with the Apache license and therefore need to be downloaded on your own. Check the wiki for additional information https://cwiki.apache.org/CLOUDSTACK/building-with-maven.html. In order to build all the open source targets of &PRODUCT; do: + mvn clean install + The resulting jar files will be in the target directory of the subdirectory of the compiled module. +
+ diff --git a/docs/en-US/building-with-maven.xml b/docs/en-US/building-with-maven.xml new file mode 100644 index 00000000000..5363b1d754a --- /dev/null +++ b/docs/en-US/building-with-maven.xml @@ -0,0 +1,32 @@ + + +%BOOK_ENTITIES; +]> + + + + + Using Maven to Build &PRODUCT; + + + + + + diff --git a/docs/en-US/devcloud-usage-mode.xml b/docs/en-US/devcloud-usage-mode.xml new file mode 100644 index 00000000000..bb65f904ccd --- /dev/null +++ b/docs/en-US/devcloud-usage-mode.xml @@ -0,0 +1,60 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ DevCloud Usage Mode + DevCloud can be used in several different ways: + + + Full sandbox. Where &PRODUCT; is run within the DevCloud instance started in Virtual Box. + In this mode, the &PRODUCT; management server runs within the instance and nested virtualization allows instantiation of tiny VMs within DevCloud itself. &PRODUCT; code modifications are done within DevCloud. + The following diagram shows the architecture of the SandBox mode. + + + + + + DevCloud.png: Schematic of the DevCloud SandBox architecture + + + + + A deployment environment. Where &PRODUCT; code is developed in the localhost of the developer and the resulting build is deployed within DevCloud + This mode was used in the testing procedure of &PRODUCT; 4.0.0 incubating release. See the following screencast to see how: http://vimeo.com/54621457 + + + A host-only mode. Where DevCloud is used only as a host. &PRODUCT; management server is run in the localhost of the developer + This mode makes use of a host-only interface defined in the Virtual Box preferences. Check the following screencast to see how: http://vimeo.com/54610161 + The following schematic shows the architecture of the Host-Only mode. + + + + + + DevCloud-hostonly.png: Schematic of the DevCloud host-only architecture + + + + +
diff --git a/docs/en-US/devcloud.xml b/docs/en-US/devcloud.xml new file mode 100644 index 00000000000..677818700ae --- /dev/null +++ b/docs/en-US/devcloud.xml @@ -0,0 +1,38 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ DevCloud + DevCloud is the &PRODUCT; sandbox. It is provided as a Virtual Box appliance. It is meant to be used as a development environment to easily test new &PRODUCT; development. It has also been used for training and &PRODUCT; demos since it provides a Cloud in a box. + + DevCloud is provided as a convenience by community members. It is not an official &PRODUCT; release artifact. + The &PRODUCT; source code however, contains tools to build your own DevCloud. + + + DevCloud is under development and should be considered a Work In Progress (WIP), the wiki is the most up to date documentation: + + + + +
diff --git a/docs/en-US/developer-introduction.xml b/docs/en-US/developer-introduction.xml index bb5251b4f26..9d54f31dae9 100644 --- a/docs/en-US/developer-introduction.xml +++ b/docs/en-US/developer-introduction.xml @@ -23,7 +23,7 @@ --> - Introduction for Developers + Introduction to the &PRODUCT; API diff --git a/docs/en-US/images/DevCloud-hostonly.png b/docs/en-US/images/DevCloud-hostonly.png new file mode 100644 index 0000000000000000000000000000000000000000..111f93ac70024a0ce90358531af19d512982f8ef GIT binary patch literal 39311 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 literal 0 HcmV?d00001 diff --git a/docs/en-US/images/DevCloud.png b/docs/en-US/images/DevCloud.png new file mode 100644 index 0000000000000000000000000000000000000000..5e83ca946c7092e12ba9f345e562dbf5ec434d47 GIT binary patch literal 33529 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 literal 0 HcmV?d00001 diff --git a/docs/en-US/marvin.xml b/docs/en-US/marvin.xml new file mode 100644 index 00000000000..062616ac888 --- /dev/null +++ b/docs/en-US/marvin.xml @@ -0,0 +1,32 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Marvin + Marvin is the &PRODUCT; automation framework. It originated as a tool for integration testing but is now also used to build DevCloud as well as to provide a Python &PRODUCT; API binding. + + Marvin's complete documenation is on the wiki at https://cwiki.apache.org/CLOUDSTACK/testing-with-python.html + The source code is located at tools/marvin + +
diff --git a/docs/en-US/source-build.xml b/docs/en-US/source-build.xml new file mode 100644 index 00000000000..33218962174 --- /dev/null +++ b/docs/en-US/source-build.xml @@ -0,0 +1,49 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Building &PRODUCT; from Source + + Prior to the 4.0.0 incubating release, Ant was used to build &PRODUCT;. Starting with 4.0.0 a migration to Maven is underway. + The website and the wiki contain up to date information on the build procedure at: + + https://cwiki.apache.org/CLOUDSTACK/building-with-maven.html + http://incubator.apache.org/cloudstack/develop/environment.html + + + The overarching steps to build &PRODUCT; are:. + + Install the prerequisites and setup your environment + Understand that various Maven profiles and build targets + Deploy and test your build + If needed, learn how to build binaries + + + + Learning Maven is outside the scope of this documentation. + Go to the Maven website at http://maven.apache.org/guides/getting-started/index.html + + +
+ diff --git a/docs/en-US/tools.xml b/docs/en-US/tools.xml new file mode 100644 index 00000000000..66fe894e171 --- /dev/null +++ b/docs/en-US/tools.xml @@ -0,0 +1,29 @@ + + +%BOOK_ENTITIES; +]> + + + + + Tools + + + diff --git a/docs/publican-devguide.cfg b/docs/publican-devguide.cfg index 006c0d16d00..a8e28aea37b 100644 --- a/docs/publican-devguide.cfg +++ b/docs/publican-devguide.cfg @@ -20,7 +20,7 @@ xml_lang: en-US type: Book -docname: API_Developers_Guide +docname: Developers_Guide brand: cloudstack chunk_first: 1 chunk_section_depth: 1