Background
The purpose of this document is to describe the necessary set of steps needed to assist a developer reach a functional grouper deployment from the grouper source tree.
Requirements
1. The environment must have the Java Development Toolkit installed. Ensure that JAVA_HOME is set to the JDK installation folder. JDK 6~8 should all work.
2. The environment must have Apache Tomcat installed. Ensure that CATALINA_HOME is set to the Tomcat installation folder. Tomcat 6 is the preferred version.
Source Checkout
Checkout the grouper source from the project source repository:
git checkout git@github.com:Internet2/grouper.git
Build
1. Navigate to grouper-ui\webapp\WEB-INF\build.properties and specify the path to your Tomcat installation folder.
... domain=/Users/apache-tomcat/webapps serverhome=/Users/apache-tomcat
2. From the grouper root directory, execute:
ant all
The result will be GroupsManager.war that will exist inside the ${domain} directory.
Test
1. Modify your ${server}/conf/tomcat-users.xml file to include the following snippet:
<role rolename="grouper_user"/> <user username="GrouperSystem" password="GrouperSystem" roles="grouper_user"/>
2. Open up a command prompt, and navigate to grouper/grouper directory and execute:
start-hsql.[sh|bat]
This will spin up an HSQL database instance. Keep this running in the background.
3. Navigate to http://localhost:8080/GroupsManager, authenticate with GrouperSystem/GrouperSystem and you should see the grouper home page.
Debugging
1. In your Tomcat\bin directory, locate the startup.[bat|sh] and include the following lines at the top:
set JPDA_ADDRESS=8000 set JPDA_TRANSPORT=dt_socket
2. In your IDE (Eclipse or IntelliJ IDEA) set up a remote debugger that would connect to port 8000. Here is a snapshot of what it would look like in IDEA:
3. Restart Tomcat. In the tomcat log, you should see an entry that says:
Listening for transport dt_socket at address: 8000 ...
4. In your IDE, attach the debugger to the new remote debugger (Tomcat above) you created by starting a new debug session.
5. Set breakpoints and interact with grouper. The debugger should halt on each breakpoint.