You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Developer workflow

packagingDeveloperWorkflow

Maven central jars

On each commit, snapshots will be committed

packagingSnapshot

On tag, release the jars

packagingMavenRelease


Build container

packagingContainerBuild


Maven tasks

Compile and jar will be done in maven.  Jars will be housed in maven central.  

Maven is not needed by anyone except the CI/CD or script that maven compiles and stores jars to maven central.  devs dont need it.  container doesnt need it.  plugin devs need to get jars from maven.  institutions running grouper dont need maven.

TaskDescriptionProgress
no snapshots

build versions
  1. when certain type of tag, e.g. GROUPER_RELEASE_2_5_0 (tags can have dots right?  or underscore?), it would make the real release jars
    1. e.g. grouper-2.5.0.jar
    2. automatic ci/cd based on tag format (low priority)
  2. publish to maven central automatically (low priority)

build jars

Each project should have

  1. normal classfile jar
  2. source jar (low priority)
  3. test jar (low priority)
  4. test source jar (low priority)
  5. javadoc jar? (low priority)

notificationcan there be a notification if build breaks? (low priority)
what needs to change after build?

can we have a script to change things in git after version?  need to change poms?  something in java or resource? 
dont want to forget something, script would be nice

or... can all poms use a variable from the parent pom so we change the version in one place?


maven grouperParent
  1. should build everything in grouper, using local filesystem builds as dependencies
  2. e.g. if something in grouper is dependent on something in grouper client, and that isnt in maven yet, the build should succeed

maven grouperClient

get maven working on client jars.  ant currently works for this, see build.xml

  1. src/ext should be compiled with jars in lib dir (and not the client source)
  2. src/java should be compiled with src/ext on classpath and no jars
  3. src/extMore should be compiled with src/java and src/ext on classpath, nothing else
  4. src/testSource can use all of above and jars
  5. low priority, see if shade can easily (not take a lot of time to get working),
    manage the "ext" source jars to be put in the same classpath (since used elsewhere)

maven grouper

get maven making the grouper jars

  1. grouper depends on client
  2. source dir and test dir, pretty simple

maven grouper ui

get maven working for ui jars

  1. ui depends on grouper (and transitively, client)
  2. source dir and test dir, pretty simple

maven grouper ws

get maven working for ws jars

  1. classfile jar has source from: src/grouper-ws, src/grouper-ws_v2_0, ... , src/grouper-ws_v2_4 (not there yet but will be)  all the src dirs
  2. test jar has source from: src/test, (low priority) grouper-ws-java-generated-client/src?, (low priority) grouper-ws-java-manaual-client/src/java-manual-client?, (low priority) grouper-ws-test/src/test?

maven grouper scim

this is grouper-ws/grouper-ws-scim, get maven working for jars

  1. source and test dir, not too complicated
  2. add dependent jars to project

maven pspngshould be ready to go right?
maven box connector

maven installernote, we should just move this to the client, right?
maven duo connector

maven activemq messaging connector

maven aws messaging connector

maven rabbitmq messaging connector

maven remedy connector

maven vootmove this into ws?


Ant tasks

Ant can be used for various minimal tasks and for packaging up tarballs.  Maven is used for compile/jar

Ant taskDescriptionAll projects or just some
checkDependenciessee if grouper, grouper client, or whatever dependencies are theremost
devcopy jars to webapp/WEB-INF/libwebapps
makeContainermake the dir for grouper api.  download jars from maven central with ant-maven plugin (grouper jars and third party jars).  make the uber webapp dir that contains everything.  should be ready for docker container.  assume everything is checked out from git.
java2wsdltake javabeans make ws wsdlws
  • No labels