Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


Note the coding standards: Grouper developers coding standards

General tips

  • You should be using Eclipse, but you can also use the IDE of your choice
    • You should have webtools with tomcat 8.5
  • For profiling we use YourKit

  • Checkout the git repo for GROUPER_2_5_BRANCH (main)
  • Install mysql (or whatever database you want, probably better to not use hsql, though you could)
  • Dbeaver
    • Make sure to set to not do uppercase (doesnt work on mysql linux)


  • You can use as a maven project, or ant project
  • Do an ant build
  • Configure the for database
  • Do a gsh -registry -runscript
  • Start GSH and run some commands
  • Have the UI include a source folder from the API for source and conf
  • Add a tomcat to eclipse
  • Do an "ant dev" in the UI to get the libs in WEB-INF/lib
  • Download the required tomcat version (e.g. tomcat 8.5)
  • Make sure API has all libs exported
  • ui and ws (and others) have a project dependency on grouper)
  • Map the webapp dir to tomcat, UI should start
  • Add tomcat users for GrouperSystem and test.subject.0, set your password
  • Do an "ant dev" in the WS to get the libs in WEB-INF/lib


Code Block
 cd /tmp
 mkdir grouper
 cd grouper
 mkdir src
 cd src
 unzip /opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/grouper.jar
 ### note, might want to delete all other source and class files except the one you need ###
 emacs edu/internet2/middleware/grouper/app/loader/

 javac -cp .:/opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/subject.jar:/opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/commons-lang.jar:/opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/log4j.jar:/opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/hibernate.jar:/opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/commons-logging.jar:/opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/DdlUtils.jar:/opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/quartz.jar:/opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/commons-collections.jar:/opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/lib/grouper.jar -sourcepath . edu/internet2/middleware/grouper/app/loader/

 mkdir /opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/classes/edu/internet2
 mkdir /opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/classes/edu/internet2/middleware
 mkdir /opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/classes/edu/internet2/middleware/grouper
 mkdir /opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/classes/edu/internet2/middleware/grouper/app
 mkdir /opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/classes/edu/internet2/middleware/grouper/app/loader
 cp edu/internet2/middleware/grouper/app/loader/GrouperLoaderType* /opt/appserv/tomcat_3c/webapps/fastGrouperProdDaemon/WEB-INF/classes/edu/internet2/middleware/grouper/app/loader

See also 

Grouper Coding Standards 

Page down here for a section on Guidelines for Contribs to Grouper