Versions Compared

Key

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

...

Developers should understand how it works since it is a little involved

Note, if using Java 17, pass this argument to tests and tomcat

Code Block
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.sql/java.sql=ALL-UNNAMED


Troubleshooting


Expand


IssueResolution

3rd party class not found

Something not compiling

Config not found

Grouper-parent clean and install

Run the maven copy dependencies (if webapp)

Refresh project

Project → clean (in eclipse), select applicable project

Class not found in webapp
for command line program
Java Build Path → Libraries → Add external class folder: webapp/WEB-INF/classes
Still having issues

Look where things compile in file explorer in your OS, and see that all classes and configs are there

Make sure all linked source configs are right

Linked source already existsThe name conflicts with existing or previous folder.  Cancel out and delete the folder in the project which used to link.
Or give it a different name
CrashingAdd more memory?  Should have at least 3 gigs for eclipse


Grouper dev env high level diagram

...

Expand

Git for source code version control

  1. Install Git

    1. (Mac) Command line installs

      1. $ brew install git

      2. https://github.com/fabriziocucci/git-bash-for-mac

      3. Or Install from package https://git-scm.com/downloads

    2. Eclipse IDE plugin
      1. https://www.eclipse.org/egit/
    3. Github Desktop is also handy

Java - Grouper runs on Java

  1. Install OpenJDK 8 exact version (not above or below). Grouper runs on Java.

    1. https://aws.amazon.com/corretto/
  2. Note: do not use Java language features above Java 8 for most of Grouper - grouper, grouper-ui, grouper-ws, etc. The grouperClient code must be compliant with Java 6.

Apache Tomee - Grouper runs in Tomee

  1. Download and unpack Tomee webprofile 7.0.7.  Note: Grouper runs in tomcat 8.5, which is what tomee 7.07 has
    1. https://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.7/apache-tomee-7.0.7-webprofile.tar.gz

Database

  • One option: Docker Desktop - to run our development database
  1. Install Docker Desktop. We’ll use this to run our development database.
    1. https://www.docker.com/products/docker-desktop
  • or  You could just use hsql
  • or Install mysql or postgres or use external database (external will be slow)

Eclipse - Grouper development happens in Eclipse (or your favorite IDE)

  1. Install Eclipse IDE for Enterprise Java Developers or similar IDE
    1. https://www.eclipse.org/downloads/packages/
  2. Make sure you have the latest eclipse (2020) or upgrade your current eclipse
  3. Make sure the eclipse ini has at least 3 gig memory

If you get errors on the client about deprecated libraries, you might need to adjust your compiler errors/warnings


Line endings should be unix


Image Added


If you get errors on maven lifecycle set this:

Image Added


Clone the Grouper Source Repository

...

Expand

Run the maven grouper-parent clean and install (you can right click in eclipse on the pom and run as: maven clean, then install).  you might need to delete .m2/repository/* if it is corrupt.

You might need to bump up memory to 512MB to get maven to build


Code Block


[INFO] Reactor Summary for Grouper 2.5.0-SNAPSHOT:
[INFO] 
[INFO] Grouper ............................................ SUCCESS [  1.632 s]
[INFO] Grouper Client ..................................... SUCCESS [  3.659 s]
[INFO] Grouper API ........................................ SUCCESS [  9.454 s]
[INFO] Grouper SCIM ....................................... SUCCESS [  0.256 s]
[INFO] Grouper UI ......................................... SUCCESS [  2.295 s]
[INFO] Grouper WS Parent .................................. SUCCESS [  0.063 s]
[INFO] Grouper WS ......................................... SUCCESS [  3.129 s]
[INFO] Grouper WS Generated Client ........................ SUCCESS [  5.320 s]
[INFO] Grouper WS Manual Client ........................... SUCCESS [  0.825 s]
[INFO] Grouper WS Test .................................... SUCCESS [  0.098 s]
[INFO] Grouper Installer .................................. SUCCESS [  8.198 s]
[INFO] Grouper AMQ ........................................ SUCCESS [  0.853 s]
[INFO] Grouper Rabbitmq ................................... SUCCESS [  6.950 s]
[INFO] Grouper AWS Messaging .............................. SUCCESS [  9.099 s]
[INFO] Grouper PSP-NG ..................................... SUCCESS [  0.389 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS


If there are problems in a project, you might need to right click, and do Maven → Update project

When you do that, the first time, check the box to update project configuration.  In all subsequent times, do NOT have the box checked to update project configuration from pom, or your settings will get undone

All the projects should now be open and compiled.


...

Expand

This is one of the main tricks.  In my eclipse, the "conf" dir is excluded due to the pom.xml in maven


Image Modified

Link the conf dir (even though its already a source folder) in java build path

  • ${PROJECT_LOC}/conf   →   GROUPER_CLIENT_CONF


...