Clone and build entire XLcloud project

Unknown macro: toctreeview


The following components must be installed and configured on your system:

  • Java
  • Git
  • Apache Maven 3

We won't cover the installation process of these components.

Git structure

There are two different repositories. XLcloud repository with its submodules, with read only permission and it is forbidden to push commits into this repository. Second one is a clone of the main repository XLcloud Continuous Integration where developers can push commits and those are pushed into main repository by continuous integration builds.

Each repository is divided into several submodules:

Diagram below shows submodules structure base on XLcloud repository

Cloning XLcloud repository and initializing submodules

Script shows how to clone Continuous Integration repository using http protocol with its address:

To clone main respository use address: git:// or according to protocol.

tadamcze@tadamcze:~/test$ git clone xlc
tadamcze@tadamcze:~/test$ cd xlc/
tadamcze@tadamcze:~/test/xlc$ chmod +x *.sh
tadamcze@tadamcze:~/test/xlc$ ./
tadamcze@tadamcze:~/test/xlc$ ./ 

If you want to clone and checkout into specific branch (example based on milestone1) instead of development tree do:
tadamcze@tadamcze:~/test/xlc$ git submodule update --init (or: ./
tadamcze@tadamcze:~/test/xlc$ git submodule foreach 'git checkout milestone1' (or: ./

Environment configuration
Basing on prepare your own properties file for your environment. Then add new profile to Maven's settings.xml as follows:


Configure XMS properties

Defaut properties file is placed inside main directory of the project with name This contains configuration for appropriate environment and user should overwite this properites. It is higly recomended not to modify this file, but to configure those properties inside different file and use path to this filemaven profile configuration.

SectionName of the parameterDescriptionDefault valueWhere to get it

XLcloud Web Console

xlcloud.webConsole.idApplication namexlcloud-consoleChose one, for example xlcloud-console
xlcloud.webConsole.hostHost which web console is installed ontoolcloudShould be your domain name or IP
xlcloud.webConsole.urlHow you will be able to access the web consolehttp://${}:8090/${}Change the port to 8080 
xlcloud.webConsole.saml2Address of a login-related servlethttps://${}:8181/${}/saml2Change the port if you configured secure http listener in your GlassFish installation (by default GlassFish has http-listener-2 using port 8181, so you can leave the default value)
xlcloud.webConsole.showStackTraceDebug parameterfalseWhen show details of the error set true, on production set false.
xlcloud.webConsole.showBuildInfoDisplays information about build timetrueWhen show details of the build set true, on production set false.
oauth2.client.passwordThe password to connect to OAuth2passwordSecret password for OAuth2 client

XLcloud Management Service

xlcloud.mgmtService.urlHow you will be able to access the XMS APIhttp://toolcloud:8090/xlcloud-xmsShould be: http://your-domain-name-or-ip:8080/xlcloud-xms


Debug parameterfalseWhen show details of the error set true, on production set false.

MySQL configuration

xmsComes from MySQL Database configuration
xlcloud.mgmtService.projectBroker.templateName of the template used to start broker stackmcollective-broker.templateLeave default value
XLcloud XSAxlcloud.xsa.urlHow you will be able to access XSAhttp://toolcloud:8090/xlcloud-xsa(ignore this property)
Heat templates directory for XMStemplateRepositoryPathPath on your local drive to the heat templates directory/home/xlcloud/heat-templatesComes from the GIT repo that you pulled, so for example: ~/xlcloud-ci/heat-resources/templates

IAM main administrator of OpenAMamadminLeave it to amadmin main administrator of OpenAM passwordadmin123Password of the amAdmin used in installation of the IAM the encrypted value of the password.AQIC0qluZU5xbgFzdIEpHr6Mw/nS8/QaFQ0LFill in after OpenAM is installed from the configuration 
am.encryption.pwdPassword encryption keyvpzFH8wkqaQ1D8u1dQxPo8Sf7gp+JXD7
openam.baseDirBase directory for the OpenAM configuration installation/opt/openam-configValid directory where user has rwx rights
openam.protocolProtocol of the openamhttpsLeave default value
openam.hostHostname of the openamiam.toolcloud.bullComes from OpenAM installation - depending on what domain you set in the hosts file
openam.cookie.domainCookie domain for the sso session.toolcloud.bullThe domain where the openam is installed.
openam.portPort of the server where OpenAM is depolyed8082Comes from OpenAM installation - depending on what domain you set in the hosts file
openam.deploymentDescriptorName of the openam application/openamLeave default value
openam.urlHow to access OpenAM${openam.protocol}://${}:${openam.port}${openam.deploymentDescriptor}
IAM Installationssl.cacertsTruststore used by OpenAM configurer in script/home/xlcloud/.ssl/xlc-cacertsComes from truststore configuration

User Repository

datastore.sunIdRepoClassThe Java class used to connect to the LDAPorg.xlcloud.iam.repo.SynchroRepoWrapperLeave defaul value. When data shoud not be synchronized with keystone use: com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo
datastore.userRepository.urlWhere to find the LDAPlocalhost:1389Comes from OpenDJ installation - connections port for LDAP clients
datastore.userRepository.passwordThe password to connect to the LDAP serveradmin123Comes from OpenDJ installation - initial root user password


How to connect to OpenStack hostname/ip address of the Openstack Installation
Openstack Keystone

keystone.publicPortPort used to connect to Keystone as a client5000Comes from the installation of Keystone
keystone.adminPortPort used to connect to Keystone as an admin35357
keystonePublicUrlURL used to connect to Keystone as a clienthttp://${}:${keystone.publicPort}/v2.0Leave default value 
keystoneAdminUrlURL used to connect to Keystone as an adminhttp://${}:${keystone.adminPort}/v2.0
encryptionServiceKeyKey used to secure the connection with KeystoneYTdoeS1qYTQ0Lm5iZzE5MA==Key used to secure user password
technicalTenantNameName of the technical tenant used by Xlcloud AdministratorAMGCreate technical tenant after installation of Keystone
technicalUserLoginUser name of the technical user of Xlcloud Administratorvcms-adminCreate technical user inside technical tenant with administrator role.
technicalUserPasswordUser password of the technical user of Xlcloud Administratorxlcloud2012Create technical user inside technical tenant with administrator role.
Openstack NovanovaUrlURL used to connect to Novahttp://${}:8774/v2Comes from installation of the OpenStack
Openstack HeatheatUrlURL used to connect to Heathttp://${}:8004/v1
Openstack GlanceglanceUrlURL used to connect to Glancehttp://${}:9292/v1
Openstack NeutronneutronUrlURL used to connect to Neutronhttp://
Openstack CeilometerceilometerUrlURL used to connect to Ceilometerhttp://${}:8777/v2
ceilometerIgnoreIndicates if metrics from XMS should be send to CeilometerfalseSet to true if metrics should not be send
Openstack ClimateclimateUrlURL used to connect to Climatehttp://${}:1234/v1Comes from installation of the OpenStack created lease will start this many milliseconds later, in order to account for any delays, and avoid creating leases with start dates in the past.60000Leave default value
Openstack SwiftswiftPublicUrlURL used to connect to Swifthttp://${}:${swift.port}/v1/Comes from installation of the OpenStack
swift.portPort used to connect to Swift8888
Openstack Networkxlcloud.mgmtService.quantum.publicNetwork.uuidUnique ID of the network usedde94a473-de8d-4f4a-bdde-f67355d15df6Comes from installation of Quantum/Neutron
xlcloud.mgmtService.quantum.publicNetwork.cidrThe CIDR used10.192.174.0/24
xlcloud.mgmtService.quantum.dnsNameServersComma-separated list of DNS server names that will be used for all quantum subnets10.197.217.62,
MCollectivemcollectiveDirectoryThe location of mcollective scripts/home/xlcloud/scripts/mcollective/The directory where you will place MCollective scripts
Data Setup  defaultAdminNameThe name of the default platform administrator created during installationxlcadminYou can change to a desired platform administrator name
defaultAdminPasswordPassword of the default platform administratoradmin123Change it to your preferences
defaultAdminIdXMS id of the default user1Use default value

Name of the groups where the default platform administrator belongs

xms_adminsYou may change it according to you preferences
adminsGroupIdId of the admins group in LDAP2Use default value
heatTemplatesDirectoryDirectory in which heat templates will be stored by XMS./tmp/heat-templatesValid path to the directory wher user has rwx rights
OthercacheControl.defaultMaxAgeHow long entities will be stored in cache (in minutes)300Leave default value
cookbookParser.maxFileSizeMaximum size of cookbook metadata.json files2097152
XLcloud Integration Tests propertiesEvery parameter in this sectionDevelopers' configuration 

Building all modules

You can build entire project using profile profile_name. This configuration allows to build project based on properties file described above. Profile hpc includes hpc extension for XSA package.
tadamcze@tadamcze:~/test/xlc$ mvn clean install -P{profile_name} -Phpc

The following artifacts will be ready to deploy on application server:
tadamcze@tadamcze:~/test/xlc$ ll xms/impl/target/xlcloud-xms.war
tadamcze@tadamcze:~/test/xlc$ ll xms/console/web/target/xlcloud-console.war
tadamcze@tadamcze:~/test/xlc$ ll vca/core/target/xlcloud-vca.war

This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 5.4.6 - Documentation - Legal Notice

Site maintained by