CVRG Waveform Server Configuration

From CVRG Wiki

Jump to: navigation, search

Contents

Waveform Server Configuration

System Requirements

Below you will find a list of technologies used in the Waveform Server Configuration.

Software Type Vendor/Name Minimum Required Version
Application Server Tomcat 7.0.27
Build Mechanism Ant 1.7.0
Build Mechanism Maven 3.2.5
Deployment Tool Jenkins latest version
Development Language C++ (gcc) 4.4.7
Development Language Java 1.7
Relational Database PostgreSQL Latest Version
Server Operating System CentOS 7.2
Web Portal Liferay 6.1.1 GA2


Installing the Liferay Environment

The instructions will guide the user in the manual installation of the Waveform3 web application developed by the CVRG.
It is assumed that the user is comfortable with the Linux environment and has sudo privileges.
It is also assumed the user knows when and how to use sudo.
If you do not have sudo privileges or are not fully confident in the Linux environment, please seek assistance.

Uninstall OpenJDK 1.7+ and install OracleJDK 1.7

By default CentOS comes with OpenJDK. Liferay 6.1.1 requires OracleJDK 1.7. So you have to do the following:

  1. Get rid of OpenJDK (yum -y remove java*)
  2. Check that all OpenJDKs are gone (rpm -qa | grep java)
  3. Obtain the jdk-7u80-linux-x64.rpm from Oracle (wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.rpm)
  4. Put the rpm into the local yum install (yum localinstall jdk-7u80-linux-x64.rpm)
  5. Install OracleJDK 1.7 (yum install java)

Open Ports/Download Liferay

  1. Open port 8080 with the command firewall-cmd --zone=public --add-port=8080/tcp --permanent
  2. Do the same for port 8585.
  3. Reload the firewall changes with firewall-cmd --reload
  4. Create a user to run all the web servers and services (useradd tomcat and passwd tomcat)
  5. Change to the new user (su - tomcat)
  6. Download the following bundles:

Create the Liferay Folder Structure

  1. Create folder /opt/liferay
  2. Change the ownership of the liferay folder to the created user (e.g., tomcat).
  3. Copy the two zip files downloaded earlier from the Download folder to /opt/liferay
  4. Unzip the file liferay-portal-tomcat-6.1.1-ce-ga2-20120731132656558.zip (unzip liferay-portal-tomcat-6.1.1-ce-ga2-20120731132656558.zip)
    Note: Do not delete the zip file!
  5. Rename the resulting folder to waveform3 (mv liferay-portal-6.1.1-ce-ga2 waveform3)
  6. Unzip the file liferay-plugins-sdk-6.1.1-ce-ga2-20121004092655026.zip (unzip liferay-plugins-sdk-6.1.1-ce-ga2-20121004092655026.zip)
  7. The resulting folder, liferay-plugins-sdk-6.1.1, should be at the same level as the Liferay/Tomcat bundle (waveform3).


 -opt
   -liferay
           -liferay-plugins-sdk-6.1.1
           -waveform3

Configure the Plugins SDK

  1. In the plugins SDK folder, create a new file called build.[name_of_the_user_running_the_services].properties (e.g., build.tomcat.properties)
    This file corresponds to the user which will call the ANT script and start the server, if you have more than one user to do these tasks, please add a copy of this file for each user. (i.e. Jenkins generally builds the ANT script, so you have to create a build.jenkinsuser.properties)
  2. Paste the following text into the file:

    app.server.portal.dir = /opt/liferay/waveform3/tomcat-7.0.27/webapps/ROOT
    app.server.lib.global.dir = /opt/liferay/waveform3/tomcat-7.0.27/lib/ext
    app.server.deploy.dir = /opt/liferay/waveform3/tomcat-7.0.27/webapps
    app.server.type = tomcat
    app.server.dir = /opt/liferay/waveform3/tomcat-7.0.27


    Verify that this folder structure does, in fact, match the structure you’ve created.

  3. Save the file.
  4. Obtain copies of the modified build-common-plugin.xml and the build-common.xml files from the following Basecamp link: build files
  5. Paste these files into the SDK folder, overwriting the originals.
  6. Create the folder /opt/liferay/portlet-ext
  7. Create the folder /opt/liferay/portlet-opt
  8. Create the folder /opt/liferay/utility-jars
  9. Create the folder /opt/liferay/utility-builds

Remove Demo and Prepackaged data

  1. Navigate to /opt/liferay/waveform3/data/hsql
  2. Delete all files in this folder.
  3. Navigate to /opt/liferay/waveform3/tomcat-7.0.27/webapps
  4. Delete the welcome-theme and marketplace-portlet folders.

Add Necessary .jar Files (found in Dropbox\maven\Libs\)

There is a set of jar files that are necessary to support the portlets being used with CVRG resources. Obtain copies of these files and put them in /opt/liferay/waveform3/tomcat-7.0.27/lib/ext.
  • antlr-2.7.7.jar
  • axis.jar
  • backport-util-concurrent-3.1.jar
  • c3p0-0.9.2.1.jar
  • commons-codec-1.3.jar
  • commons-discovery-0.2.jar
  • commons-fileupload-1.3.jar
  • commons-httpclient-3.1.jar
  • commons-io-2.4.jar
  • commons-logging-1.1.1.jar
  • cvrg-authenticator.jar
  • dom4j-1.6.1.jar
  • hibernate-c3p0-4.2.8.Final.jar
  • hibernate-commons-annotations-4.0.2.Final.jar
  • hibernate-core-4.2.8.Final.jar
  • hibernate-jpa-2.0-api-1.0.1.Final.jar
  • java-nexus-client.jar
  • javassist-3.18.1-GA.jar
  • jaxrpc.jar
  • jboss-logging-3.1.0.GA.jar
  • jdom-1.1.jar
  • json-java.jar
  • log4j-1.2.17.jar
  • mchange-commons-java-0.2.3.4.jar
  • neethi-2.0.4.jar
  • woden-api-1.0M8.jar
  • wsdl4j-1.6.2.jar
  • xmldb-1.0.jar <-- may not need anymore
  • xmlpull-1.1.3.1.jar
  • XmlSchema-1.4.2.jar

Similarly, a set of .jar files should be placed in the /opt/liferay/portlet-ext folder, obtain this list in the same way as above.
  • axiom-api-1.2.7.jar
  • axiom-impl-1.2.7.jar
  • axis2-1.4.1.jar
  • axis2-kernel-1.4.1.jar
  • jboss-el-2.0.0.GA.jar
  • jboss-transaction-api_1.1_spec-1.0.1.Final.jar
  • jsf-api-2.1.3-b02.jar
  • jsf-impl-2.1.3-b02.jar
  • liferay-faces-bridge-api-3.1.0-rc2.jar
  • liferay-faces-bridge-impl-3.1.0-rc2.jar
  • liferay-faces-portal-3.1.0-rc2.jar
  • liferay-faces-util-3.1.0-rc2.jar
  • primefaces-4.0.jar

Installing and Configuring the Database

The database being used for this implementation is a PostgreSQL database. This is connected to Liferay and serves as the backend for Liferay configurations and settings. The commands below assumes you're installing version 9.1 but you should change them to fit the latest available stable version of PostgreSQL. First check to see if PostgreSQL is already installed by using the command psql. If the response is "psql: FATAL: role "<your username>" does not exist" then PostgreSQl is installed. If it isn't, follow the steps below.

Installing PostgreSQL

  1. Download the PostgreSQL .rpm file and install it using the command: sudo rpm -ivh http://yum.postgresql.org/9.1/redhat/rhel-6-x86_64/pgdg-centos91-9.1-4.noarch.rpm
  2. Install PostgreSQL using the command: sudo yum install postgresql91-server.x86_64
  3. Initialize the cluster using the command: sudo service postgresql-9.1 initdb


PostgreSQL is now installed on your CentOS 6 machine and can be started and stopped as a service.

  • Start postgreSQL: service postgresql-9.1 start
  • Stop postgreSQL: service postgresql-9.1 stop
  • Restart postgreSQL: service postgresql-9.1 restart


To configure PostgreSQL to startup automatically when the server starts, enter the following command: chkconfig postgresql-9.1 on

Configure postgres account

As part of the installation of PostgreSQL on the system, a new account called “postgres” was created in the Linux environment. It is necessary to use this account to access the PostgreSQL database. The account exists, but cannot be used until it is assigned a password.

  1. Use the command: sudo passwd postgres
  2. You will be prompted to enter a password. Keep track of the password you have entered as it will be needed elsewhere.

Create the Liferay User Account

Now it is possible to use this account to access PostgreSQL. It is necessary to create an account specifically for Liferay to access the database.

  1. Create the account in Linux with the following command: sudo adduser liferay
  2. Set the password for that account with the following command: sudo passwd liferay
  3. Keep track of the password you set.

Create the DB Liferay account and Liferay Database

  1. Switch to the postgres account with the following command: su postgres
  2. Enter the PostgreSQL database client with the following command: psql
  3. Create liferay account in PostgreSQL with the following command: CREATE USER liferay WITH PASSWORD ‘<use the password you set for the liferay account>’;
    1. Postgres should respond with "CREATE ROLE".
    2. Note: Must have semi-colon at the end of the each PostgresSQL command line, else it will fail and just return to the prompt with no error message.
  4. Create the database with the following command:CREATE DATABASE lportal;
    1. Postgres should respond with "CREATE DATABASE".
  5. Give full access to that database to the liferay account with the following command: GRANT ALL PRIVILEGES ON DATABASE lportal TO liferay;
    1. Postgres should respond with "GRANT".
  6. Exit PostgreSQL with the following command: \q

Configure PostgreSQL to Accept Local Connections

  1. While still working as user postgres, use the vi editor to change the configuration file with the following command: vi /var/lib/pgsql/9.1/data/pg_hba.conf
  2. Under the commented section, make it look like this:
    # TYPE DATABASE USER ADDRESS METHOD
    # "local" is for Unix domain socket connections only
    local all all trust
    # IPv4 local connections:
    host all all 127.0.0.1/32 trust
    # IPv6 local connections:
    host all all  ::1/128 trust
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local replication postgres trust
    #host replication postgres 127.0.0.1/32 trust
    #host replication postgres  ::1/128 trust
  3. Restart PostgreSQL with the following command: /usr/bin/systemctl restart postgresql.service

Run Database Creation Scripts

In the project cvrg-dataStorage on the CVRG GitHub repository is a series of .sql scripts that will need to be run as user postgres. Please follow the instructions provided in the project readme file.

Setting up Liferay itself for work with Waveform3

Start Liferay

  1. Navigate to /opt/liferay/waveform3/tomcat-7.0.27/bin
  2. Run the startup script by running the command ./startup.sh
    It is useful to observe the catalina log output during startup to view any errors that may occur.
  3. To view the log, enter the command tail –f ../logs/catalina.out
    Once the Tomcat startup is complete, you have to open manually your local browser to the server URL, port 8080, and the Liferay configuration page will display. Here, you can enter the basic information for the Administrator account to be used with the portal. Simply enter the appropriate information into the fields to set up your first name, last name and E-mail address.
  4. Under the Database section, click the “change” link.
    Liferay Database
  5. Make it look like this (again, use the password that you set for the liferay account.):
    Liferay Database Entry Screen
  6. Click “Finish Configuration”

Set Logo in Liferay

For your instance of Liferay to have a different logo, you need to add one to the portal.

  1. Log into Liferay as the administrative user you created when you started Liferay up.
  2. Under the Go To drop-down menu in the upper right-hand corner, select Control Panel.
  3. In the list on the left-hand side of the screen, select Site Pages, under the Liferay heading.
  4. In the panel that appears, click the Logo link on the right-hand side.
  5. In the center of the panel, click the choose file button and browse for a picture file (e.g, PNG, JPG, etc.).
  6. Click Save and you should see a logo in the center of the frame.
  7. When you return to the main screen, the logo should be the picture file you uploaded.


Add Users in Liferay

In order to run the web services, there is a service account that needs to be added in Liferay (e.g. axis2)

  1. Log into Liferay as the administrative user you created when you started Liferay up.
  2. Under the Go To drop-down menu in the upper right-hand corner, select Control Panel.
  3. In the list on the left-hand side of the screen, select Users and Organizations, under the Portal heading.
  4. In the panel that appears, click the Add drop-down and select User.
  5. In the Screen Name field, type axis2.
  6. In the E-mail address field, type an arbitrary value (e.g., axis2@liferay.com).
  7. In the First Name field, type axis2.
  8. Click Save
  9. You will then be prompted for a password to enter twice. Retain the password for use later in the service.properties file.
  10. In the list on the right-hand side of the screen, select Roles under the User Information heading.
  11. Under the Regular Roles heading in the center of the screen, click the Select link.
  12. In the pop-up, select the Power User link.
  13. Click Save and you should see the user listing with the axis2 user added

Physionet Applications

To set WFDB features on your machine. Follow the steps below:

  1. Download(wget) the WFDB Application source from http://www.physionet.org/physiotools/wfdb.tar.gz, and save in a temporary folder.
  2. Extract the tarball using the command
    sudo tar -xvf wfdb.tar.gz
  3. Navigate to the new folder extracted from the tarball.
  4. Create the file /etc/profile.d/wfdb.sh and add the following line to it:
    export PATH=$PATH:/opt/wfdb/bin
  5. Create the file /etc/ld.so.conf.d/wfdb.conf and add the following lines to it:
    /opt/wfdb/lib64
    /opt/wfdb/lib
  6. Restart the server to make the change take effect.
  7. Run:
    sudo ./configure --prefix=/opt/wfdb-$version_number
    sudo make
    sudo make install
    sudo ldconfig
  8. Create a symbolic link to the installation directory:
    ln -s /opt/wfdb-$version_number /opt/wfdb
  9. To check your installation, make sure that bin, database, include, lib, lib64 and share folders have been created in /opt/wfdb directory.
  10. From the extracted wfdb temporary folder, try to execute the following command:
    sampfreq -H data/100s
    The result should be output:360
  11. If so, the install was successful.

In addition to WFDB it is necessary to install the PNN/PNNList application.

  1. Download(wget) the pNNx binaries from: http://www.physionet.org/physiotools/pNNx/pNNx.i386-linux.tar.gz
  2. Go to download folder and extract the file:
    tar xfvz pNNx.i386-linux.tar.gz
  3. Create a pNNx folder in /opt directory:
    sudo mkdir /opt/pNNx
  4. Change the folder owner user:
    sudo chown -R tomcat /opt/pNNx
  5. Copy the content from the temporary(pNNx.i386-linux) folder to /opt/pNNx:
    sudo cp pNNx.i386-linux/* /opt/pNNx
  6. Create a soft links:
    sudo ln -s /opt/pNNx/pNNx /usr/bin/pNNx
    sudo ln -s /opt/pNNx/pnnlist /usr/bin/pnnlist
  7. To check your install, execute the command below:
    pNNx -h
  8. If the output works, the install was successful.

Chesnokov Application

Chesnokov is an Windows application and to execute it on Linux environment, you have to install the Wine Application.

Wine Install

First of all, we need to Enable & Install the EPEL Repo (Extra Packages for Enterprise Linux Repository)

  1. Go to temporary directory: cd /tmp
  2. Download the EPEL Repo install file: wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  3. Install the EPEL Repo: sudo rpm -ivh epel-release-6-8.noarch.rpm
  4. Run the following: yum repolist | grep epel
  5. And this is the expected output:
    epel Extra Packages for Enterprise Linux 6 - x86_64

With the EPEL Repo installed, you can install Wine. Install use yum. The installer might take up-to 20-30 minutes.

  1. Run the following command: sudo yum install wine* --enablerepo=epel
  2. Check installation: wine
  3. And this is the expected output:
    Usage: wine PROGRAM [ARGUMENTS...] Run the specified program
    wine --help Display this help and exit
    wine --version Output version information and exit

Chesnokov Install

  1. Create the /opt/autoqrs directory: sudo mkdir /opt/autoqrs
  2. Change the folder owner: sudo chown –R tomcat /opt/autoqrs
  3. Download the chesnokov zip file.
  4. Extract the zip file to autoqrs folder: sudo unzip Chesnokov_XML_Release.zip -d /opt/autoqrs
  5. Verify that the Release folder has been created inside the autoqrs folder
  6. To test use this command, inside Release folder: wine ecg.exe filters [dat file]

Chesnokov Linux version Install

  1. Download the Chesnokov Linux executable into the /opt/autoqrs/Release directory created earlier.
  2. Rename the Chesnokov Linux executable to "chesnokov" if it is not already named that.
  3. Set to permissions to "chesnokov" to executable.
  4. To test that the file is executable type "chesnokov" with no parameters.
    1. The console output should be a list of 4 argv inputs and the usage instructions.
  5. To test the function of this command, inside Release folder: ./chesnokov ./filters/ [dat file] [output XML filename]
    1. The console output should be a list of 4 argv inputs and a summary of each lead's meta-data. The output file should be created containing the complete XML results.
  6. Insert an entry for Chesnokov Linux into the "algorithm" table in the waveform3 database containing at minimum serviceid, uiName, and serviceMethod. Preferably also insert completeDescription and resultformat. Do not insert algorithmid, because it is auto-incrementing e.g.
INSERT INTO algorithm(serviceid, "uiName", "shortDescription", "serviceMethod" )
   VALUES (1, 'QT screening Linux', 'Chesnokov QT Screening algorithm, converted to GCC on Linux.', 'chesnokovunixWrapperType2');
  1. Insert an entry for the algorithm into the AlgorithmReference table in the waveform3 database containing at minimum algorithmid (generated by previous insert), licence and referenceurl. e.g.
INSERT INTO algorithmreference(algorithmid, 
	"versionAlgorithm", "dateAlgorithm",
	"versionWebService", "dateWebService", 
	licence, referenceurl)
    VALUES (68, 
	1.0, '2015-04-30', 
	1.0, '2015-04-30', 
	'n/a', 'http://wiki.cvrgrid.org/index.php/ECG_Gadget_User_Guide#QT_Screening_Algorithm_Results_File_Example');

Axis2 Environment

The cvrg-services project handle all web services from Waveform which run using the Axis 2 framework.

Axis2 install

To set up the Axis2 environment it is necessary to deploy the axis2 WAR file.

  1. Get the Axis 2 zip from their website (wget 'http://archive.apache.org/dist/axis/axis2/java/core/1.7.3/axis2-1.7.3-war.zip')
  2. Open the downloaded war file and find the axis2.war file. (unzip axis2-1.7.3-war.zip)
  3. Move axis2.war file to /opt/liferay/waveform3/tomcat-7.0.27/webapps
  4. Start the server. And check if the axis2 folder has been created inside webapps folder. If so the install was successful.
  5. Verify that you now see the Axis2 Welcome page when you navigating to this URL: <server IP address>:8080/axis2/

Install Continuous Integration

At this time, the preferred CI provider is Jenkins.

Jenkins Install

To install, run the following commands in a terminal window.

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

sudo yum install jenkins

Open the Jenkins configuration file for editing at /etc/sysconfig/jenkins and configure the following:


JENKINS_PORT="8585"
JENKINS_AJP_PORT="8010"
JENKINS_USER to match the id you are using to run the liferay server.
You will change the ownership of /var/log/jenkins /var/cache/jenkins and /var/lib/jenkins to match JENKINS_USER

Start the Jenkins service /usr/bin/systemctl start jenkins.service

**NOTE: Before configuring new builds in Maven be sure to set up the necessary plugins (see below).**

Install Apache Maven

Go ahead and download the latest Maven binary (wget http://www.webhostingjams.com/mirror/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz)

After downloading the tarball, go to the download location and execute the following commands:

$ sudo tar -xzf apache-maven-3.2.5-bin.tar.gz -C /opt

$ sudo ln -s /opt/apache-maven-3.2.5 /opt/maven

Next, set up the Maven path:

Create the maven.sh file in /etc/profile.d/ location.

$ sudo vi /etc/profile.d/maven.sh

And insert the lines below into the new file:

export M2_HOME=/opt/maven

export PATH=${M2_HOME}/bin:${PATH}

Finally, log out and log in again to activate the above environment variables.

To verify successful installation of maven, check the version of maven:

$ mvn -version

Set the Maven waveform repository

To get the latest artifacts releases from waveform project you have to set the Waveform artifacts repository on Maven. Just follow the steps below:

  1. Using the user who will run the Maven goals in Jenkins (the same user who starts the Jenkins app)
  2. Create a copy of M2_HOME/conf/settings.xml file to /home/USER_NAME/.m2 location (e.g., /home/tomcat/.m2) and add the content below, then reboot the server:
  • At the servers tag

  <server>
     <id>nexus-releases</id>
     <username>USER</username>
     <password>PASSWORD</password>
  </server>
  <server>
     <id>nexus-snapshots</id>
     <username>USER</username>
     <password>PASSWORD</password>
  </server>
  <server>
     <id>nexus-3rdParty</id>
     <username>USER</username>
     <password>PASSWORD</password>
  </server>

  • At the profile tag:

  <profile>
     <id>Repository Proxy</id>
     <activation>
        <activeByDefault>true</activeByDefault>
     </activation>
     <repositories>
        <repository>
           <id>nexus-releases</id>
           <url>http://128.220.76.138:8081/nexus/content/repositories/releases</url>
           <releases>
              <enabled>true</enabled>
           </releases>
           <snapshots>
              <enabled>false</enabled>
           </snapshots>
        </repository>
        <repository>
           <id>nexus-snapshots</id>
           <url>http://128.220.76.138:8081/nexus/content/repositories/snapshots</url>
           <releases>
              <enabled>false</enabled>
           </releases>
           <snapshots>
              <enabled>true</enabled>
           </snapshots>
        </repository>
        <repository>
           <id>nexus-3rdParty</id>
           <url>http://128.220.76.138:8081/nexus/content/repositories/thirdparty/</url>
           <releases>
              <enabled>true</enabled>
           </releases>
           <snapshots>
              <enabled>false</enabled>
           </snapshots>
        </repository>
     </repositories>
  </profile>

Setup Maven plugin on Jenkins

  1. At the main Jenkins page click at Manage Jenkins : <server IP address>:8585.
  2. At the right area click at Configure System.
  3. In the Maven area click at Add Maven.
  4. Set the maven name (i.e. Maven #versionNumber).
  5. If you not have Maven installed in your machine you should go at Maven Install section and do it.
  6. Uncheck Install automatically and set your local maven location at M2_HOME (e.g., /opt/maven).
  7. Click at Save button to apply.

Note: If you do not want to perform the Maven Install, you can check the Install automatically. The maven will be installed at the first execution of a Maven Project job.

Install Apache Ant

To install the ANT in CentOS using its binary distribution from the official Apache web site, follow the bellow commands:

$ wget http://www.us.apache.org/dist/ant/binaries/apache-ant-1.9.7-bin.tar.gz
$ sudo tar xvfz apache-ant-1.9.7-bin.tar.gz -C /opt
$ sudo ln -s /opt/apache-ant-1.9.7 /opt/ant

You then have to set up ANT_HOME environment variable, and include Ant binary in your path, as follows.
$ sudo sh -c 'echo ANT_HOME=/opt/ant >> /etc/environment'
$ sudo ln -s /opt/ant/bin/ant /usr/bin/ant

Log out and log back in, to reload the environment variables defined in /etc/environment.

Finally, verify that Apache Ant is successfully installed.

$ ant -version
Apache Ant(TM) version 1.9.7 compiled on April 9 2016

Setup Ant plugin on Jenkins

  1. At the main Jenkins page click at Manage Jenkins.
  2. At the right area click at Configure System.
  3. In the Ant area click at Add Ant.
  4. Set the Ant name (i.e., Ant #versionNumber).
  5. Uncheck Install automaticallyand set your local Ant location at ANT_HOME (e.g., /opt/ant).
  6. Click at Save button to apply.

Note: If you do not want to perform the Ant Install, you can check the Install automatically. The Ant will be installed at the first execution of an Ant build.

Install Git

To install Git in centos, run the following command in a terminal window.

sudo yum install git

Setup GitHub plugin on Jenkins

  1. At the main Jenkins page click at Manage Jenkins.
  2. In the right area click at Manage Plugins.
  3. Select the Available tab.
  4. Find by GitHub Plugin at the plugins list and check the checkbox.
  5. Click the Install without restart button to start the installation process.
  6. Wait for all pending tasks to finish processing.
  7. To finish the plugin install, manually restart Jenkins.
  8. At the main Jenkins page click Manage Jenkins.
  9. At the right area click Configure System.
  10. In the Git area click Add Git.
  11. Set the Git executable location. (i.e. /usr/bin/git)
  12. Click the Save button to apply.

Workspace Setup

To set up the maven workspace, make sure that you have created the default workspace folder: /opt/liferay/utility-builds

Go ahead and import all Git projects below into your workspace. (Be sure to use the specified branch):

Note: All projects should be located in the workspace folder except the PORTLETS and EXTENSION project.
* The PORTLETS projects should be placed in /opt/liferay/liferay-plugins-sdk-6.1.1/portlets
* The EXTENSION project should be placed in /opt/liferay/liferay-plugins-sdk-6.1.1/ext

Also, Ownership Permissions on any directory which Jenkins will need to write files to should be changed to the 'Jenkins' user created by Linux during Jenkins install as that user will control processes triggered by Jenkins during the compilation of JARS, Web Services, Portlets and Extensions.

Pull Projects/Plugins from Github (projectName [branch])

The CVRG plugin respository is at <undisclosed location>

GENERAL

  • maven-parents [master]
  • waveform3-config-files [master] <-- does not need to be built in Jenkins

JARS

  • jsierraecg [master]
  • Philips1.04 [master]
  • schiller-data [master]
  • hl7aECG [master]
  • ECG_Converter4 [master]
  • cvrg-annotations [master]
  • cvrg-analysisHub [master]
  • cvrg-dataStorage [master]
  • waveform-utilities [master]
  • cvrg-filestore [master]
  • liferay-ws-client [master]

WEB SERVICE

  • cvrg-services [master]

PORTLETS

  • analyze-portlet [master]
  • download-portlet [master]
  • visualize-portlet [master]
  • upload-portlet [master]
  • welcome-portlet [master]

EXTENSION

  • cvrg-ext [master]
  • cvrg_authenticator [master]
  • Globus-Nexus-Java-Client [master]

To import a project from Github, you have to configure a Jenkins Job:

Setting up a Jenkins Job

The build order is:

  • jsierraecg
  • schiller-data
  • hl7aECG
  • Philips1.04
  • cvrg-dataStorge
  • cvrg-analysisHub
  • cvrg-annotations
  • liferay-ws-client
  • ECG_Converter4
  • cvrg_authenticator
  • Globus-Nexus-Java-Client
  • cvrg-ext
  • waveform-utilities
  • cvrg-services
  • cvrg-filestore
  • welcome-portlet
  • analyze-portlet
  • download-portlet
  • upload-portlet
  • visualize-portlet
  • maven-parents
  1. Go to Jenkin's main page and click at New Item.
  2. Choose a name for the Job and...
    1. For GENERAL, JARS and WEB SERVICE you have to select the Maven Project option and click OK.
    2. For PORTLETS and EXTENSIONS you have to select the Freestyle project option and click OK.
  3. Check the Discard Old Builds checkbox and choose the Log Rotation strategy to keep builds up to 30 days.
  4. Set the GitHub project URL. (i.e. <undisclosed_location>/PROJECT_NAME/)
  5. At the Source Code Management area, choose Git
  6. Set the Repository URL (i.e. <undisclosed_location>/PROJECT_NAME.git) and the Branches to build (i.e. */master), please check the list above to set the correct branch to each project.
  7. At the Build Triggers area:
    1. Check the Build whenever a SNAPSHOT dependency is built option, to deploy the referenced jobs. (only for Maven projects)
    2. Check the Poll SCM option and fill with H * * * *, to verify new commits on the SCM at each hour.
  8. At the Build area:
    Note: PORTLETS and EXTENSIONS are not Maven Project, so you have to use ANT build to compile.
    1. For GENERAL, JARS and WEB SERVICE set the project POM location on Root POM, Goals and options. Please verify the project structure to refer the correct POM file and goals/options is set to clean install.
    2. For PORTLETS and EXTENSIONS click at Add build step combo box and select Invoke Ant. Set the correct Targets, PORTLETS uses all and EXTENSIONS uses direct-deploy
    3. Click Advanced
    4. Check the Use custom workspace, to set the project Directory in our default folder (i.e. /opt/liferay/utility-builds/PROJECT_NAME)
      Remember all projects should be located at /opt/liferay/utility-builds folder, except:
      * PORTLETS - /opt/liferay/liferay-plugins-sdk-6.1.1/portlets
      * EXTENSIONS - /opt/liferay/liferay-plugins-sdk-6.1.1/ext
      Note: For Freestyle projects, this configuration is located at Advanced Project Options.
    5. At the same area set the maven Settings file to use the USER_FOLDER/.m2/settings.xml. (only for Maven projects)
  9. If you need to notify someone about the integration of this JOB. Plase check the E-mail Notification checkbox at Build Settings area and inform which mail should be notified.
  10. At the end click on Save button to apply and you will be ready to build your project.

Note: To check if occurred any errors at your build, you can see it on Console Output based in the selected build number.

Properties, Database and Test Files

After you checkout all projects by the correct branch, we have to check all properties files, database structure and maven test files.

Properties files 
To make sure that you have the correct properties which waveform needs, check the files in waveform3-config-files in the GitHub repository. There you will find all required properties for liferay and waveform, except the liferay admin, axis transfer and database credentials.
Database Structure 
It the cvrg-dataStorage project, you will find the sql folder at ../cvrg-dataStorage/src/main/sql. In this folder you will find all the instructions to set a new database, or the creation SQL scripts to check if your entities are OK.
Maven Test files 
There is a folder called /maven/mavenTestResources in dropbox. Copy this folder to /opt/liferay/ to avoid errors on maven tests. This folder contains sample of ECG files to perform testing at cvrg-analysisHub, cvrg-annotations and ECG_Converter4 projects.


Build on Jenkins

Now, it's time to compile all JARS, Web Services, Portlets and Extension.

The JARS and the WEB SERVICE use the Maven to compile, PORTLETS and the EXTENSION use the native liferay Ant script.

To build all Maven Projects, you should go over the maven-parents project and click in Build Now.
Note: This action will compile all maven project internally the maven-parents project at the correct hierarchy. If you don't, you can go one by one, clicking at the Build Now icon. The build action will start the others build according to their hierarchy.

To build the others projects (PORTLETS and EXTENSION), so go on one by one clicking in the Build Now icon.

Install Liferay Globus Nexus Authentication

Install Custom Authentication Extension

  1. The cvrg-ext plugin project contains the Globus Nexus Authentication, maybe you already configure this at the above section.
  2. Build the project. Your Liferay SDK should already be configured to automatically deploy to your Liferay instance.

Restart Liferay and Configure Authentication

  1. Run the following command under /opt/liferay/waveform3/tomcat-7.0.27/bin: sudo ./shutdown.sh
  2. Once Tomcat has completely shut down, run the following command under /opt/liferay/waveform3/tomcat-7.0.27/bin: sudo ./startup.sh
Personal tools
Project Infrastructures