Hammurapi Java Code Review Tool
Hammurapi Java Code Review Tool
Company Confidential
Introduction
Company Confidential
How does it work
Company Confidential
How does it work- continued…
HSQL DB
(Scan Objects)
1. Parses the source
SRC
Mesapotamia
4. Iterates over source (Scan Objects, Violations, Warnings & Metrics are stored here)
units and language Hammurapi 3. Get scan objects from DB
elements
8. Render review results
Inspector
Company Confidential
Download
Company Confidential
Configure databse
Hammurapi bundle comes with hsql databse to keep its review results
Create a folder named db in c:\hammurapi
Inside c:\hammurapi\db folder create following three files:-
##-------runManager.bat---------##
start javaw -Xmx800m -classpath ..\lib\hsqldb.jar
org.hsqldb.util.DatabaseManagerSwing --driver org.hsqldb.jdbcDriver --url
jdbc:hsqldb:hsql://localhost --user mesopotamia
##-------runServer.bat---------##
start java -Xmx512m -classpath ..\lib\hsqldb.jar org.hsqldb.Server %1 %2
%3 %4 %5 %6 %7 %8 %9
##-------server.properties----##
server.database.0=file:data/Mesopotamia
server.silent=true
Company Confidential
Initialize database
Company Confidential
Set path of source code to be reviewed
Company Confidential
Start the Jboss
10
Company Confidential
Review the code
Go to c:\hammurapi
Type following command
ant
11
Company Confidential
Where is more information
http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/system/analysis
User Guide can be downloaded from here:-
http://www.hammurapi.biz/hammurapi-biz/system/fileactions/get/76
12
Company Confidential
Some theory
13
Company Confidential
Thank You
Advance Topic
Write your own rules
Company Confidential
Your own custom Inspector class
package com.birlasoft.customrules.blrules;
import biz.hammurapi.review.Inspector;
import org.mesopotamia.SourceUnit;
import org.mesopotamia.lang.java.MethodCall;
import org.mesopotamia.lang.java.StringConstant;
import biz.hammurapi.review.Violation;
post(new Violation(methodCall));
}
17
Company Confidential
Inspector configuration File
<ruleset type="biz.hammurapi.config.ElementNameDomConfigurableContainer">
<handle-manager type="biz.hammurapi.rules.KnowledgeMaximizingHandleManager"/>
<collection-manager type="biz.hammurapi.rules.PojoCollectionManager">
<collectionType>biz.hammurapi.rules.KnowledgeMaximizingSet</collectionType>
</collection-manager>
<rules type="biz.hammurapi.review.ReviewRulesContainer">
<rule type="com.birlasoft.customrules.blrules.StringComparisionInspector">
<name>StringComparisionInspector</name>
<description>Inspector under development</description>
<severity>3</severity>
</rule>
</rules>
</ruleset>
bundled Inspector
18
Company Confidential
Use your custom rule
19 customrule.jar Inspectors.xml
Company Confidential
How to create environment variable
Go back
20
Company Confidential
Setting JAVA_HOME
Go back
21
Company Confidential
Getting report offline
22
Company Confidential