Just Enough Developed Infrastructure

Tinypm - Web Based Agile Planning Tool - on Tomcat 6.x in 10 Steps

For organizing our new project we were on the lookout for a light weight Agile Planning Tool. We came across a good list of Scrum Tools compiled by Boris Gloger and we finally selected TinyPM and like it so far.
There is also a review of TinyPM available on the same site. We had to make to some adjustments to the install procedure to make it run on Tomcat 6.x. This is our installation procedure (we assume you allready have a tomcat setup).
Step 1: Download the source and extract
We went for the 1.2 version named tinypm-1.2-tomcat5.5.zip

mkdir tinypm-1.2
cd tinypm-1.2
unzip ../tinypm-1.2-tomcat5.5.zip

Step 2: Setup the database
Create a database tinydb with user tinyuser and password tinypassword

mysql -u youraccount -p
mysql> create database tinydb character set = 'utf8' COLLATE= 'utf8_general_ci'
mysql> grant select, update, insert, delete on tinydb.* to 'tinyuser'@'localhost' IDENTIFIED BY 'tinypassword';
mysql> FLUSH PRIVILEGES;

Step 3: Load the schema and data into the database

cd database/mysql
mysql -u youraccount -p
mysql> \u tinydb
mysql> . create_schema-1.2.sql
mysql> . create_data-1.2.sql
cd ../..

Step 4 : Extract the war in the tomcat dir
Unzip tinypm.war to your %CATALINA_HOME%/webapps/tinypm
Step 5: Configure the username, database, password in the application

%CATALINA_HOME%/webapps/tinypm/META-INF/context.xml


<Context>
    <Resource name="jdbc/tinypmDatasource" auth="Container"
        type="javax.sql.DataSource"
        maxActive="100"
        maxIdle="30"
        maxWait="10000"
        username="tinyuser"
        password="tinypassword"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/tinydb"
        testWhileIdle="true"
        validationQuery="SELECT 1;" />
</Context>
Step 6: Copy the required jars to the tomcat directory
Copy the jars located in the dependencies dir to the library of your tomcat install

cd dependencies
cp activation.jar mail.jar naming-factory-dbcp.jar %CATALINA_HOME%/lib

Download the MySQL Connector/J 5.1.x (the JDBC driver for MySQL Server) fro http://dev.mysql.com/downloads/connector/j


cp mysql-connector-java-5.1.7-bin.jar %CATALINA_HOME%/lib
Step 7: Remove jars from the war (to make it actually work)
Up until now, everything was straight out of the tinyPM install manual. If you would start tomcat right now you would face some errors.

error 1: all JSP pages would fail with a null pointer in the jspInit

the reason is that tinypm bundles the jsp-api.jar file and overrides the tomcat jsp-api.jar with that. So we have to remove the one in


$ find %CATALINA_HOME% -name jsp-api.jar
./apache-tomcat-6.0.18/webapps/tinypm/WEB-INF/lib/jsp-api.jar
./apache-tomcat-6.0.18/lib/jsp-api.jar
$ rm apache-tomcat-6.0.18/webapps/tinypm/WEB-INF/lib/jsp-api.jar

error 2: "java.lang.LinkageError: loader constraint violation"


$ find %CATALINA_HOME% -name el-api.jar
./apache-tomcat-6.0.18/webapps/tinypm/WEB-INF/lib/el-api.jar
./apache-tomcat-6.0.18/lib/el-api.jar
$ rm apache-tomcat-6.0.18/webapps/tinypm/WEB-INF/lib/el-api.jar
Step 8: (re-)Startup tomcat

%CATALINA_HOME%/bin/start.sh
Step 9: Install License
In order to obtain a free license you have to create an account for this and then you can request a free license. This will give you a license file tinyPM-1.0.CE.lic
To install the license login as admin/admin, and go to the tinyPM settings page to install it.
Step 10: De-activate the Admin user
TinyPM's free license allows up to 5 users. By default admin counts for 1 user. What you can do is to disable the user admin and give another user admin privileges.