Modular+Specs+Installation+Guide

include component="page" wikiName="siframework" page="ModularSpecTabs" =NOTE:=

More updated install instructions for PDTI can be found in the README at []. The code repository has been relocated to GitHub. = = = = =Introduction=

The purpose of this guide is to detail the steps required to install, and configure the Provider Directories Test Implementation (PDTI) version 1.0. PDTI consists of the following components:
 * Server - The server implements the Provider Directories specification, and uses an Apache DS LDAP backend.
 * Test Client - The test client is a simple web application that can be used to query any specified Provider Directory instance, and display the results.
 * Test Tool - The test tool runs a battery of SoapUI tests against a specified Provider Directory instance, ensuring that the instance is compliant with the relevant specification.

=Dependencies=
 * **Name** || **Minimum Version** ||
 * Mercurial client || 2.2 ||
 * Java JDK + JRE || 7 (Oracle or OpenJDK) ||
 * Apache Maven || 3.04 ||
 * Apache Tomcat || 7.0 ||
 * Apache Directory Studio || 1.5.x ||

=Source Installation=

Clone the Mercurial repository
code hg clone https://code.google.com/p/pdti/ ~/pdti code Build the Maven projects + deploy the webapps (Tomcat) code cd ~/pdti mvn -Dtomcat.manager.password= clean install tomcat7:deploy code Build the Maven projects + deploy the webapps manually code cd ~/pdti mvn clean install code Manually deploy the built pdti-server and pdti-client WAR files: code ~/pdti/pdti-server/target/pdti-server.war ~/pdti/pdti-client/target/pdti-client.war code

Windows Build Known Issue
When building on Windows, there is a known issue. Four references to XSDs in one of the pom.xml files must be modified. The file pdti/pdti-ws/pom.xml contains four elements that point to an XSD: code file:${project.basedir}/src/schema/DSML/DSMLv2.xsd [2 of these lines] file:${project.basedir}/src/schema/HPD/HPD.xsd file:${project.basedir}/src/schema/HPD_Plus/HPD_Plus.xsd code The portion of the lines "${project.basedir}" needs to be changed to "pdti-ws", as shown: code file:pdti-ws/src/schema/DSML/DSMLv2.xsd [2 of these lines] file:pdti-ws/src/schema/HPD/HPD.xsd file:pdti-ws/src/schema/HPD_Plus/HPD_Plus.xsd code Note: This looks to be similar to a bug in the Maven exec plugin: MEXEC-81

LDAP Testing Data Installation
After installing Apache Directory Studio, and creating an LDAP server, create a partition with the suffix o=dev.provider-directories.com,dc=hpd. After creating the partition, import the LDAP schemas as LDIF files, in this order:


 * ~/pdti/pdti-ldap/src/main/resources/META-INF/ldap/schema/hc.ldif
 * ~/pdti/pdti-ldap/src/main/resources/META-INF/ldap/schema/pkcs9.ldif
 * ~/pdti/pdti-ldap/src/main/resources/META-INF/ldap/schema/hpd_plus.ldif

After the schemas are loaded, import the testing data LDIF file:


 * ~/pdti/pdti-ldap/src/test/resources/META-INF/ldap/data/hpd_plus_test_data_1.ldif

Server Configuration
The following JVM (System) properties are used to configure the pdti-server module. They should be passed into the web application container itself (ex. set in the JAVA_OPTS or CATALINA_OPTS environment variables when invoking a Tomcat instance).
 * **Name** || **Value Type** || **Required?** || **Default Value** || **Description** ||
 * pdti.context.config.data.directory || Spring resource path || no || /META-INF/data/directory/*.xml || Path to the Spring XML context files containing the Directory configuration to use. ||
 * pdti.context.config.data.ldap || Spring resource path || no || /META-INF/data/ldap/*.xml || Path to the Spring XML context files containing the LDAP data source configuration to use. ||
 * pdti.context.config.data.federation || Spring resource path || no || /META-INF/data/federation/*.xml || Path to the Spring XML context files containing the federated Directory configuration to use. ||
 * pdti.context.config.ws.service || Spring resource path || no || /META-INF/ws/service/*.xml || Path to the Spring XML context files containing the web service configuration to use. ||
 * pdti.debug || boolean String ("true", "false") || no || false || Flag for turning on debugging features. If enabled, currently only adds error exception stacktraces to error web service responses. ||
 * pdti.log.dir || filesystem path || yes |||| Path to the directory in which to create/use log files. ||
 * pdti.log.file.basename || String || yes |||| Base name of the log file to use. Actual log file name incorporates the date. ||

Client Configuration
Prior to building the pdti-client.war file, system configuration changes can be made by editing the values in the ~/pdti/pdti-client/src/resources/pdti-client.properties file. The two properties of interest are:
 * **Name** || **Value Type** || **Required** || **Default Value** || **Description** ||
 * provider.directory.wsdl.url || URL || yes || http://localhost:8080/pdti-server/Hpd_Plus_ProviderInformationDirectoryService?wsdl || URL for the default webservice WSDL. This is the webservice that will be utilized by default, if no URL is specified in the Override WSDL URL textfield. ||
 * dn || LDAP DN || yes || o=dev.provider-directories.com,dc=hpd || The base DN for all LDAP searches by the PDTI server that the client is communicating with. ||

Once the configuration changes have been applied, simply rebuild the project, and deploy the generated pdti-client.war file. Once deployed, the PDTI client can be accessed at http:// : /pdti-client.

Test Tool Deployment
The test tool artifact is the pdti-testtool.war file, and it should just be deployed to Tomcat as-is, as it requires no configuration. After deployment, the tool can be accessed at http:// : /pdti-testtool.